e.g: {Ctrl+Shift+F7} calls function MatchIndentUp
┌─────────────────╥──────────────────┬──────────────────┬──────────────────┬──────────────────┐
│ ║F1} │F2} │F3} │F4} │
│ ║ │ │ │ │
│{ ║ Help │ Do │ BlockUp │ BlockDown │
│{Shift+ ║ FindAllHelp │ ScriptByName │ SectionUp │ SectionDown │
│{Ctrl+ ║ RemoveHelpFold │ ScriptByFunc │ SentenceUp │ SentenceDown │
│{Alt+ ║ │ │ │ │
│{Ctrl+Shift+ ║ Note │ Cut │ Copy │ Paste │
│{Shift+Alt+ ║ │ CumulativeCut │ CumulativeCopy │ │
│{Ctrl+Shift+Alt+ ║ │ CutTabular │ CutRectangle │ PasteRectangle │
│ ║ │ │ │ │
│ ║ │ │ │ │
├─────────────────╫──────────────────┼──────────────────┼──────────────────┼──────────────────┤
│ ║F5} │F6} │F7} │F8} │
│ ║ │ │ │ │
│{ ║ Substitute │ Insert │ FindBack │ FindNext │
│{Shift+ ║ Remove │ Overwrite │ SubsThenFindPv │ SubsThenFindNx │
│{Ctrl+ ║ SubstituteAgain │ InsertAgain │ FindBackAgain │ FindNextAgain │
│{Alt+ ║ │ │ │ │
│{Ctrl+Shift+ ║ MatchAngleLeft │ MatchAngleRight │ MatchIndentUp │ MatchIndentDown │
│{Shift+Alt+ ║ MatchParenLeft │ MatchParenRight │ MatchMarkupLeft │MatchMarkupRight │
│{Ctrl+Shift+Alt+ ║ MatchCurlyLeft │ MatchCurlyRight │ MatchSquareLeft │MatchSquareRight │
│ ║ │ │ │ │
│ ║ │ │ │ │
├─────────────────╫──────────────────┼──────────────────┼──────────────────┼──────────────────┤
│ ║F9} │F10} │F11} │F12} │
│ ║ │ │ │ │
│{ ║ FindExact │ Again │ │ │
│{Shift+ ║ FindExactBack │ AgainExhaustive │ │ │
│{Ctrl+ ║ SetFindString │ │ │ │
│{Alt+ ║ AppendLeftPrev │ AppendRightNext │ │ │
│{Ctrl+Shift+ ║ IndentFromPrev │ IndentFromNext │ │ │
│{Shift+Alt+ ║ JoinLeftPrev │ JoinRightNext │ │ │
│{Ctrl+Shift+Alt+ ║ │ │ │ │
└─────────────────╨──────────────────┴──────────────────┴──────────────────┴──────────────────┘
┌─────────────────╥──────────────────┬──────────────────┬──────────────────┐
│ ║Insert} │Home} │Page Up} │
│ ║ │ │ │
│{ ║ Paste │ Note │ ScreenPrev │
│{Shift+ ║ │ │ │
│{Ctrl+ ║ │ │ │
│{Alt+ ║ PasteRectangle │ │ │
│{Ctrl+Shift+ ║ │ │ │
│{Ctrl+Alt+ ║ │ │ PopupScreenPrev │
│{Shift+Alt+ ║ │ │ │
│{Ctrl+Shift+Alt+ ║ │ │ │
│ ║ │ │ │
├─────────────────╫──────────────────┼──────────────────┼──────────────────┤
│ ║Delete} │End} │Page Down} │
│ ║ │ │ │
│{ ║ Cut │ Copy │ ScreenNext │
│{Shift+ ║ CumulativeCut │ CumulativeCopy │ │
│{Ctrl+ ║ CutTabular │ │ │
│{Alt+ ║ CutRectangle │ │ │
│{Ctrl+Shift+ ║ │ │ │
│{Ctrl+Alt+ ║ │ │ PopupScreenNext │
│{Shift+Alt+ ║ │ │ │
│{Ctrl+Shift+Alt+ ║ │ │ │
└─────────────────╨──────────────────┴──────────────────┴──────────────────┘
┌─────────────────╖ ┌──────────────────┐
│ ║ │UpArrow} │
│ ║ │ │
│{ ║ │ Up │
│{Shift+ ║ │ WordUp │
│{Ctrl+ ║ │ NewWordUp │
│{Alt+ ║ │ │
│{Ctrl+Shift+ ║ │ ViewUp │
│{Ctrl+Alt+ ║ │ WindowShrink │
│{Shift+Alt+ ║ │ │
│{Ctrl+Shift+Alt+ ║ │ │
├─────────────────╫──────────────────┼──────────────────┼──────────────────┐
│ ║LeftArrow} │DownArrow} │RightArrow} │
│ ║ │ │ │
│{ ║ Left │ Down │ Right │
│{Shift+ ║ WordLeft │ WordDown │ WordRight │
│{Ctrl+ ║ LineLeft │ NewWordDown │ LineRight │
│{Alt+ ║ DeleteChrLeft │ │ DeleteChrRight │
│{Ctrl+Shift+ ║ ViewLeft │ ViewDown │ ViewRight │
│{Ctrl+Alt+ ║ DeleteLineLeft │ WindowStretch │ DeleteLineRight │
│{Shift+Alt+ ║ DeleteWordLeft │ │ DeleteWordRight │
│{Ctrl+Shift+Alt+ ║ RestoreChrLeft │ │ RestoreChrRight │
└─────────────────╨──────────────────┴──────────────────┴──────────────────┘
It is suggested these be helpfully mapped to either digits 0-9 etc. or the various cursor-control functions (depending on the the num-lock state). Hence, to work as described here, these must be set up with the xmodmap command - see X-windows setup .
Windows users should find that it works as advertised without any special setup.
The key {KP_0} - {KP_9} are set up to call functions <<Macro0>> - <<Macro9>>, these functions not defined by the startup script - some scripts define these, or you may define your own functions.
┌───────────────┬─────────────────┬─────────────────┬─────────────────┬─────────────────┐
│ │ {NumLock}│/ {KP_Divide}│* {KP_Multiply}│- {KP_Subtract}│
│ │ │ │ │ │
│ │ │ │ │ │
│{Ctrl+ │ │ │ │ │
│{Ctrl+Alt+ │ │ │ │ │
├───────────────┼─────────────────┼─────────────────┼─────────────────┴─────────────────┤
│ │7 {KP_7}│8 {KP_8}│9 {KP_9}│+ {KP_Add}│
│ │ │ │ │ │
│ │ Macro7 │ Macro8 │ Macro9 │ │
│{Ctrl+ │ │UpRegardless │ │ │
│{Ctrl+Alt+ │LineNW │LineN │LineNE │ │
├───────────────┼─────────────────┼─────────────────┼─────────────────┤ │
│ │4 {KP_4}│5 {KP_5}│6 {KP_6}│ │
│ │ │ │ │ │
│ │ Macro4 │ Macro5 │ Macro6 │ │
│{Ctrl+ │Left │ │RightRegardless │ │
│{Ctrl+Alt+ │LineE │BoxText │LineW │ │
├───────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┤
│ │1 {KP_1}│2 {KP_2}│3 {KP_3}│ {KP_Enter}│
│ │ │ │ │ │
│ │ Macro1 │ Macro2 │ Macro3 │ Enter │
│{Ctrl+ │ │DownRegardless │ │ │
│{Ctrl+Alt+ │LineSW │LineS │LineSE │ │
├───────────────┼─────────────────┼─────────────────┼─────────────────┤ │
│ │0 {KP_0}│ │. {KP_Decimal}│ │
│ │ │ │ │ │
│ │ Macro0 │ │Again │ │
│{Ctrl+ │ │ │ │ │
│{Ctrl+Alt+ │ │ │ │ │
└───────────────┴─────────────────┴─────────────────┴─────────────────┴─────────────────┘
The following functions are not bound to any function keys
The following escape sequences are duplicated for users with no numeric keypad or for cases where the normal function-key combination is not available.
These are basic commands recognized by the editor, you can type these straight into the console area, hit return and it will be done.
\ Reverse status command
( O! %A %D
) O# %C %G
, O% %E %Q %I
? O& Query system %L
O* %M Query linux %O
A O+ %X query windows %R
B O- Query wd %U
C O. %S Query screen %W
E O/ %S=case Query time %%
F O< %S=commandmode Query date %~
G O= %S=commandcounter Query env
H O> %S=trace Query pid
I O? %s=tracedefault Query stack
J O@ %S=setenv Query tabstops
K O| %S=verbose Query backtrace
M O~ %S=guardband Query buffer
N OA %S=tab Query samesinceio
P OB %S=commandstring Query samesinceindexed
Q OC %s=mousemask Query sameflag1
R OX %S=recoverymode Query case
S OF %S=copy Query inview
T OG %S=paste Query commandmode
V OI %s=setmouse Query version
Y OK %s=console Query dir
Z OL Query file
OM %B Query keys
ON %B=unrestricted Query tags
OO %B=readonly Query heap
OR %b=writeifchanged Query history
OS %b=leftoffset Query verify
OU %b=tabstops
OW %b=header %H
OZ %b=unicode %H=create
%b=pathname %H=newjump
%b=sameflag1 %H=addjump
%b=tagtype %H=jump
%b=addtag %H=call
%b=remove_tag %H=fix
%B=sort %H=destroy
%B=TabSort %H=testkey
%b=codepage
- exit jot - see %C or %A
- move the cursor Left or Right - see R and OR
- cut/Paste - see N , A and H
- break or Join lines - see B or J respectively
- change case of ASCII alphabetical characters - see C
- remove a given number of characters - see E
- search (Find) a string in text - see F and %X
- replace (Substitute) the current substring with some other string - see S
- pick up new lines or characters from the user - see G OG OO I and %G
- remove lines - see K (Kill)
- move to a nearby line - see M and Y
- add bookmarks in a session? - see ViewSave and ViewAgain
- do arithmetic or logical processing - see Stack operations
- Arithmetic - see O+ , O- , O~ , O* , O/ , O% , O= , O< , O> , OL
- bitwise logical - see O| , O& , O!
- housekeeping - see O# , OK , O@ , OS , o? , query windows , query linux , Query screen and query stack
- Read/set buffer state - see OB , OX , OF , OC , ON , OU , OA , O.
- Read/set values in the text - see OI , OG , OO , OV , OQ
- Do controlled movement in the text - see OZ , OM and or
- force the editor to display a line in the console area - see P
- check the text at the current-character position - see V and Q
- force the window to be redrawn - see %W =refresh and %L
- edit a binary file - see editing binaries
- prevent me accidentally losing my work - see %b=writeifchanged
- prevent me accidentally corrupting a reference buffer %b=readonly
- clear all restrictions from a buffer - see %b=unrestricted
- move to a different buffer - see Z and OZ
- create line drawings, block diagrams etc - see About line drawing
- Read from the stdin stream and/or output to the stdout stream - see about jot streams
- display a file containing tabular text - see %s=tab , %b=tabstops and %b=tabcells
- view internal state - see %Q a few of the most useful %Q queries follow:
- set internal state - see %S
- case sensitivity - see %s=case
- prevent my script's internal F, %X and S args becoming the default - see %s=system
- enter insert/overtype/command-mode- see %s=commandmode
- set a breakpoint trap after a given number of commands in the script - see %s=commandcounter
- set up the debugger and command tracer - see %s=trace and %s=tracedefault
- set a value edit-sessions env space - see %s=setenv
- control messages emitted by jot - see %s=verbose
- control the number of lines borrowed from windows by verbose messages - see %s=console
- insert some characters into the command string - see %s=commandstring
- set recovery mode - see %s=recoverymode
- activate mouse events - see %s=mousemask
- simulate a mouse event- see %s=setmouse
- stop the cursor going right to the top/bottom line on the screen - see %s=guardband
- set the column-delimiter character - see %s=tab
- set the prompt issued by G and OG commands - see %s=prompt
- read a file into another buffer - see %I
- set some attribute in this buffer %B
- pass something back to the CLI - see %E
- do a regular expression search (Find) %X
- define a one-line buffer - see %D
- define a buffer containing any number of lines - see %G
- set terminal size or redraw a messed-up screen - %L
- write a message for the user to see - see %M
- write the current buffer to the filing system - see %O
- run a command script - see %R
- undo last substitution - see %U
- set the display configuration - see %W
- exit current script/macro and send a message to the user - see %X
- insert or display a control character - see %~
- add a comment to my script or macro - see %%
- set up hashtables - see %H
- display line numbers - see WindowWithLineNumbers
- search for relevant sections in natural-language documents - see navigation by context
- not lose my work when my computers battery gives up - see about not losing your work
- review, modify and/or repeat recent commands - see about command editing
- save and restore views - see ViewSave and ViewAgain
- Avoid re-typing long, complicated or hard-to-remember strings - see CmdStringInsert
- debug my scripts about jot debugging
- do line drawings mixed with text - see about line drawing
- prepare a reasonably-tidy looking report - see text document preparation
- count things in a buffer - more generally count how may times a command will succeed (e.g. count instances of a string) - see AgainExhaustive
These are a few of the ones you are most likely to need.
- age.jot Reports the age of a file by comparing it's datestamp with current time.
- autotab.jot Replace tabs with blanks, aligning text following tabs.
- autotabdp.jot Replace tabs with blanks, aligning decimal points following tabs.
- autotabjust.jot Replace tabs with blanks, aligning right-justified text following tabs
- backup.jot Creates a backup copy of the current buffer in the backup subdirectory.
- bookings.jot Maintains a bookings register.
- bt.jot Reformats a backtrace report to give line numbers as offsets in original file.
- c.jot Sets up buttons specific to editing C source files.
- cal.jot Makes a calendar with week numbers.
- cerr.jot for working with gnu C-compiler error reports.
- cli.jot Applies CLI command and arguments supplied to current filespec.
- comp.jot Compare two similar buffers - typically they are different versions of the same file.
- copy.jot Sets Xterm paste-buffer from current buffer, using xsel.
- count.jot Counts up the number of words in a text buffer.
- csh.jot Sets up buttons specific to editing C-shell command files.
- curses_keys_<version>.jot Defines mapping of editor function to keycodes.
- date.jot Inserts current date in document, cursor is on a valid date this is removed.
- define_keymap.jot Defines keymap for any keyboard - requires the user to press buttons.
- dic.jot Looks up words in websters dictionary.
- do.jot Performs a cli command and places result into '@' buffer.
- txt2html.jot Translates the current buffer to HTML.
- duplicates.jot Starting at current position in buffer, searching for duplicated lines.
- edif.jot Sets up buttons specific to editing EDIF files.
- exit.jot Frees all buffers and exits the editor.
- fold2doc.jot Transforms a folded document to the .doc format.
- freeall.jot Frees (i.e. destroys) all buffers.
- get.jot Picks up a file relative to current file.
- html2txt.jot Translates HTML to text, also useful for web scraping.
- doc2txt.jot Translates an MS-word file to text.
- pdf2txt.jot Translates a PDF or PS file to text.
- ide.jot A simple IDE for C-code development with gdb, wine and winedbg.
- big_file.jot Support for handling big files indexed with grep.
- multi_file.jot Support for source-file trees indexed with grep.
- ctags.jot Support for source-file trees indexed with Exuberant Ctags.
- jot.jot Sets up buttons specific to editing jot scripts.
- ksh.jot Sets up buttons specific to editing korn-shell scripts.
- linkdocs.jot Sets up cross linking of any number of doc.jot style text documents.
- ls2list.jot Translates the output of an ls -F listing to a list of paths for multi_do etc.
- mail.jot Transforms users mail file into folded text in the help area.
- manhelp.jot Converts a man page document to help format.
- match_words.jot Matches words listed in current and nominated buffers results tabulated in '@' buffer.
- mc.jot Command file to multicolumn a document to 2 columns for 90 by 66-line forms.
- mif.jot Sets up buttons specific to editing MIF files.
- multi_do.jot Performs a unix command on a bunch of files specified in a ls -l listing
- multi_ed.jot Command file to edit a bunch of files starting with a list of paths
- nonprinting.jot Detects next nonprinting character in buffer.
- pascal.jot Constructs the first n rows of pascals triangle in the current buffer.
- paste.jot Inserts current Xterm paste-buffer selection into nominated buffer, using xsel.
- path.jot Applies CLI command and arguments supplied to current path.
- perl.jot Sets up buttons specific to editing perl scripts.
- print.jot Outputs to /tmp/print and performs unix lp on buffer.
- purge.jot Removes second and subsequent copies of all duplicated lines from buffer.
- recover.jot Recovers a crashed editor session using journal files.
- renumber.jot Resets line number to count from 1.
- retab.jot Command file to reset tabs at a given key string and optional window size.
- retabhere.jot Command file to resolve spaces in current column as tabs.
- searchbuffers.jot Searches all valid buffers for the key string in the argument.
- sh.jot Sets up buttons specific to editing C-shell command files.
- skill.jot Sets up buttons specific to editing skill files.
- startup.jot Defines the editor functions, assigns these to function keys etc using a keymap file.
- tab.jot Command file to resolve tabs at 8-character intervals.
- tcl.jot Sets up buttons specific to editing TCL scripts.
- thes.jot Looks up words in Roget's thesaurus.
- uc_basic.jot Provides basic unicode translations for European alphabets.
- unlockall.jot Destroys hashtables and removes write lock from all buffers.
- verify_keys.jot Tests the keycode mapping file by displaying each keystroke in the console area.
- vhdl.jot Sets up buttons specific to editing VHDL files.
- wideprint.jot Outputs to /tmp/print and performs unix lp on buffer.
- WindowsNT_keys.jot Maps the hot-key functions onto escape sequences.
- xword.jot A simple utility to help with crossword puzzles.
- listbufs.jot Generates a simple report listing Pathname, I/O status, sub-buffers and their data objects.
The following links are entry points into the jot documentation suite.