1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311
|
This is Joe's Own Editor. See the INFO file if you don't know what this is.
A preformatted man page is in joe.man. Joe.1 is an nroff formatted man
page.
=-=-=-=-=-=-=-=-=-=-=-=
Installation proceedure
=-=-=-=-=-=-=-=-=-=-=-=
Edit the Makefile to change the following options:
Where joe's keymap initialization files, global termcap file and
terminfo source file will go if not /usr/local/lib.
Where joe will be placed when you do 'make install'
if not /usr/local/bin.
Where joe's man page will be placed, if not /usr/man/man1.
If you want to use the terminfo database instead of termcap.
Some systems require a few other changes (notably Xenix). Check
out the comments in the Makefile.
Type 'make' to create joe. You can then try it by typing ./joe.
Then log into root and type 'make install' to install joe.
Type 'make clean' eliminate the .o files
Set the baud rate properly (see below).
See special notes below for dealing with broken terminals.
See special notes below for 'JPICO'
See special notes below for using joe within shell scripts.
If you want 8-bit characters to get through, you will have to play
with your stty settings:
On Posix/SysV try this command: stty -istrip -iexten -inpck
USEAGE: joe filenames
Optionally preceed each filename with +nnn to start at specified
line number.
Options:
-mid Cursor is recentered when scrolling is necessary
-marking Text between ^KB and cursor is highlighted (use with -lightoff)
-asis Characters 128 - 255 shown as-is
-force Force final newline when files are saved
-nobackups If you don't want backup files to be created
-lightoff Turn off highlighting after block copy or move
-exask ^KX always confirms file name
-beep Beep on errors and when cursor goes past extremes
-nosta Disable top-most status line
-keepup %k and %c status line escape sequences updated frequently
-pg nnn No. lines to keep for PgUp/PgDn
-csmode ^KF after a pervious search does a ^L instead
-backpath path Directory to store backup files
-nonotice Disable copyright notice
-noxon Attempt to turn off ^S/^Q processing
-orphan Put extra files given on command line in orphaned buffers
instead of in windows
-dopadding Output pad characters (for when there is no tty handshaking)
-lines nnn Set no. screen lines
-baud nnn Set baud rate for terminal optimizations
-columns nnn Set no. screen columns
-help Start with help on
-skiptop nnn Don't use top nnn lines of the screen
Options before each file name:
-wordwrap Wordwrap
-autoindent Auto indent
-overwrite Overtype mode
-lmargin nnn Left margin
-rmargin nnn Right margin
-tab nnn Tab width
-indentc nnn Indentation character (32 for space, 9 for tab)
-istep nnn Number of indentation columns
-french One space after '.', '?' and '!' for wordwrap
and paragraph reformat instead of two. Joe
does not change the spacing you give, but
sometimes it must put spacing in itself. This
selects how much is inserted.
-spaces TAB inserts spaces instead of tabs.
-linums Enable line numbers on each line
-rdonly File is read-only
-crlf File is uses CR-LF at ends of lines (MS-DOS files)
These options can also be set in the joerc file. The NOXON, LINES,
COLUMNS, DOPADDING and BAUD options can also be set with environment
variables.
The JOETERM environment variable can be set to override the TERM
environment variable.
** IMPORTANT **
The baud rate must be correctly set or either typeahead will not interrupt
the screen update and scrolling wont be used or there will be annoying
delays in the screen update. If you can't set the baud rate correctly with
'stty', give a numeric value in the environment variable 'BAUD' or to the
command line options '-baud'.
The baud rate '38400' or 'extb' means infinite to joe. Use it for X windows
and hardware console ttys. No delays will be generated and scrolling will
not be used.
The baud rate '19200' or 'exta' means that joe will use scrolling, but will
not delay.
Use the LINES and COLUMNS environment variables or the -lines and -columns
command line options if you need the terminal size to be different than
whatever the termcap entry or stty reports.
Since most people use terminal emulators, JOE does not send out pad
characters. If you're using a real terminal and the padding matters, set
the environment variable DOPADDING or give the command line option
-dopadding.
If you want joe to try to disable ^S/^Q processing, set the environment
variable NOXON or command line option -noxon.
A termcap file is included with JOE. You might consider updating your own
termcap file with the entries in it, particularly if you use ANSI/VT100ish
terminals. JOE understands some capabilities which are not usually supplied
in normal termcap (see below).
VARIATIONS
=-=-=-=-=-
Termcap/Terminfo
=-=-=-=-=-=-=-=-
JOE prefers to use the termcap terminal capability database. It
attempts to find this file in:
$HOME/.termcap Personal .termcap in your home directory
/usr/local/lib/termcap Joe's termcap file
/etc/termcap Normal system termcap file
Joe coppies its own termcap file to /usr/local/lib/termcap (or
wherever the system-wide joerc file is going to go) when 'make install' is
run.
Termcap is better than terminfo because it is a more open standard.
Programs can directly access the termcap database and future versions of
terminfo may require programs to use curses. The only argument in
terminfo's favour is that it is faster than termcap. To fix this problem,
JOE will use a termcap index file if it exists and if it is up to date.
This is the proceedure to make the termcap index file:
make termidx
./termidx </etc/termcap >/etc/termcap.idx
The /etc/termcap.idx is a text file which you can look at if you're
curious.
JOE supports the GNU extensions to the termcap language and also
understands several new capabilities:
AL DL IC DC RI LE UP DO SF SR
Versions of the standard capabilities which accept
an argument. For example, RI with and argument of
7 should move the cursor 7 positions to the right.
rr
Set this flag if the cursor is restricted to move
only within the scrolling regions. This is an optional
mode on vt220s and several clones assume that this
mode is always on.
cV
Like the 'cv' capability, but the cursor goes to the
beginning of the specified line. Like 'ESC [ n H' in
ansi/vt100.
But if you really must use the terminfo database see the
instructions in the Makefile. Also a terminfo version of the included
termcap file is provided, in case you want it added to the terminfo database
with 'tic'.
VOID trouble
=-=-=-=-=-=-
If you're using an old C compiler which doesn't like the 'void'
type, uncomment the '#define void int' line from the config.h file.
JPICO
=-=-=
If you want JPICO to act more like real pico when you hit ^X (I.E., to have
it ask before saving), change the line:
exsave ^X Exit
to:
ask,query,lose,query,abortbuf ^X Exit
BROKEN TERMINALS
=-=-=-=-=-=-=-=-
"Joe does not update the screen correctly in Procomm"
"My Xenix console does not scroll correctly"
Old versions of Procomm, many other DOS comm programs and nearly every
PC-UNIX console (with the exception of Linux) does not emulate VT100s
properly. There are usually one or more problems:
1) Tabs are destructive
2) Tabs are destructive when inverse mode is set
3) Scrolling regions are not supported
4) Cursor positioning is scrolling region relative instead of
screen relative.
5) Some other program set the tab-stops to something other than
one tab stop every 8 columns.
6) The erase commands (ESC [ J and ESC [ K) fill with inverse
video blanks instead of plain blanks when inverse mode is set.
7) Backspace is destructive
Procomm 2.3 works fine- but make sure you have DEC VT100 selected, not 'ANSI
BBS' and also that backspace (BS) is set to 'non-destructive'. If you must
use an old version of Procomm, try using the 'ansisys' or 'nansisys' termcap
entry. Unix consoles usually do not have scrolling regions, but instead
have insert and delete line commands. The 'fansi' entry and ones derived
from it will work correctly. These termcap entries are provided in the
termcap file which came with joe. If at all possible have your sysadmin
install these entries in '/etc/termcap'. Even if your system normally uses
the terminfo database, you can copy Joe's termcap file into
/etc/termcap.
"I don't have root access and can't update the system's termcap file. How
do I get only Joe to use a different termcap entry?"
"My system uses terminfo. How do I get only Joe to use a different termcap
entry?"
What you should do is copy the termcap file which is provided with joe into
'.termcap' of your home directory. Now suppose you want Joe to use the
'fansi' termcap entry:
If you use csh or tcsh, place this in your .cshrc file:
setenv JOETERM fansi
If you use sh, ksh or bash, place this in your .profile file:
JOETERM=fansi; export JOETERM
"I don't have root access and can't update the system's termcap file. How
do I get all of my programs to use one of Joe's termcap entries?"
Again, copy termcap into '.termcap' in your home directory, but set the
environment variables like this:
setenv TERMCAP $HOME/.termcap
setenv TERM fansi
"My system uses terminfo... how do I get all of my programs to use one of
Joe's termcap entries?"
First, compile joe for terminfo. You then have to 'tic' the terminfo
version of joe's termcap file into your account. These are the commands for
doing this:
1) cd
2) mkdir .info
3) setenv TERMINFO $HOME/.info
(or
TERMINFO=$HOME/.info; export TERMINFO
if you use bash, sh or ksh)
4) tic joe/terminfo
Then put the 'setenv TERMINFO $HOME/.info' line into your .login file or
'TERMINFO=$HOME/.info; export TERMINFO' in your .profile. Now all of your
programs should look up the 'TERM' in your own personal terminfo database.
USING JOE IN A SHELL SCRIPT
=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joe used to use /dev/tty to access the terminal. This caused a problem with
idle-session killers (they would kill joe because the real tty device was
not being accessed for a long time), so now joe only uses /dev/tty if you
need to pipe a file into joe, as in: echo "hi" | joe -
If you want to use joe in a shell script which has its stdin/stdout
redirected, but you don't need to do 'joe -', you should simply redirect
joe's stdin/stdout to /dev/tty:
joe filename </dev/tty >/dev/tty
|