{{{ notes about this binding ; This is my personal ST keybinding. Many keys behave like they do in other ; ST programs. Some of the keybindings for functions which do not exist in ; other editors are taken from or are similar to the emacs-like keybinding ; while other functions have completely different keys assigned to them. ; ; This keybinding includes some of the macros, as far as they can be used on ; the ST: ; towers-of-hanoi = ESC h a n o i ; fill-paragraph = ESC f p ; set-fill-column = ESC s c ; goto-matching-fence = ESC ( or ESC ) ; lookup = ESC l u (shell required) ; put-pick-and-copy-pick = CTRL-V (used as standard paste function) ; Tab = TAB ; set tabwidth = ESC TAB ; top of current fold = ESC UP ; bottom of current fold = ESC DOWN ; compile current keybinding = ESC m k ; ; I have also included the UN*X-Version of the mode/automacros - some of their ; functions will not be of much use on the ST, but they may be useful as a basis ; for modifications. At least C- , Pascal- and TeX-Mode will be useful. If you ; have any good ideas what mode-specific functionsd might be implemented, tell ; me ... ; ; Michael Schwingen }}} {{{ name of the binding (defbinding ST) }}} {{{ aliases for special ST keys (cursor etc.) {{{ DEL, RETURN, HELP, ... (alias ESC ($esc)) (alias DEL ($rubout)) (alias RETURN (C-M)) (alias BACKSPACE ($backspace)) (alias HELP ($meta C-V)) (alias TAB (C-I)) (alias INSERT ($meta C-F)) (alias S-INSERT ($smeta C-F)) (alias S-BACKSPACE ($smeta C-H)) (alias HOME ($home)) (alias S-HOME ($smeta C-A)) (alias C-HELP ($cmeta "s)) (alias S-HELP ($smeta C-V)) (alias UNDO ($meta C-U)) (alias S-UNDO ($smeta C-U)) (alias CTRL-UNDO ($cmeta "r)) (alias Key_- ($meta "-)) ; '+' on numeric keypad (alias Key_+ ($meta "+)) ; '-' on numeric keypad }}} {{{ Cursor Keys (alias UP ($up)) (alias DOWN ($down)) (alias LEFT ($left)) (alias RIGHT ($right)) (alias S-UP ($smeta C-B)) (alias CTRL-UP ($cmeta "l)) (alias S-LEFT ($smeta C-C)) (alias CTRL-LEFT ($cmeta "m)) (alias S-RIGHT ($smeta C-D)) (alias CTRL-RIGHT ($cmeta "n)) (alias S-DOWN ($smeta C-E)) (alias CTRL-DOWN ($cmeta "o)) }}} {{{ special CTRL-Keys (alias CTRL-ESC ($cmeta $ESC)) (alias C-2 ($cmeta "2)) (alias C-H ($cmeta C-H)) (alias CTRL-I ($cmeta C-I)) (alias C-M ($cmeta C-M)) }}} {{{ ALT-Keys (alias ALT-C ($ameta "C)) (alias ALT-L ($ameta "L)) (alias ALT-M ($ameta "M)) (alias ALT-Q ($ameta "Q)) (alias ALT-R ($ameta "R)) (alias ALT-S ($ameta "S)) (alias ALT-V ($ameta "V)) (alias ALT-Y ($ameta "Y)) }}} {{{ Shift+Function-Keys (alias S-F1 ($smeta C-J)) (alias S-F2 ($smeta C-K)) (alias S-F3 ($smeta C-L)) (alias S-F4 ($smeta C-N)) (alias S-F5 ($smeta C-O)) (alias S-F6 ($smeta C-P)) (alias S-F7 ($smeta C-Q)) (alias S-F8 ($smeta C-S)) (alias S-F9 ($smeta C-S)) (alias S-F10 ($smeta C-T)) }}} }}} {{{ OCL macros {{{F towers.fun :::F towers.fun }}} (keybind towers-of-hanoi ($ESC "h "a "n "o "i)) {{{F delspaces.fun :::F delspaces.fun }}} {{{F append to previous line :::F append.fun }}} (keybind append-to-previous-line ($ESC $BACKSPACE)) {{{F fillpara.fun :::F fillpara.fun }}} (keybind set-fill-column ($ESC "s "c)) (keybind fill-paragraph ($ESC "f "p)) (keybind inv-blank-handle ($ESC "f "m)) {{{F goto-matching fence :::F go-match.fun }}} (keybind goto-matching-fence ($ESC "( )) (keybind goto-matching-fence ($ESC ") )) {{{F lookup.fun :::F lookup.fun }}} (keybind lookup ($ESC "l "u)) {{{F put-pick.fun :::F put-pick.fun }}} {{{F tab.fun :::F tab.fun }}} (keybind go_to_next_tab ($TAB)) (keybind define-tab ($ESC $TAB)) {{{ C-Block (deffun c-block ( O_RETURN "{ O_RETURN "} O_UP O_RETURN go_to_next_tab )) }}} (keybind c-block ($f1)) {{{F mtool-top / mtool-bottom :::F mt-fold.fun }}} (keybind mtool-top ($ESC $UP)) ; goto top of current fold (keybind mtool-bot ($ESC $DOWN)) ; goto bottom of current fold (deffun make-binding (O_SAVE_FILE shell-command "keybind " "-sv " "$ORIFILE O_RETURN O_RETURN)) (keybind make-binding ($ESC "m "k)) (deffun unindent-line ( O_START_OF_LINE O_WORD_LEFT delspaces O_DELETE O_RETURN )) (keybind unindent-line ($S-BACKSPACE)) (deffun clear-pick-buffer ( O_START_OF_LINE O_WORD_LEFT O_PUT_PICK O_DEL_LINE message-exit ("pick " "buffer " "cleared ) )) (deffun do_nothing ( return-from-macro )) }}} {{{ ST menu bar {{{ FILE (keybind O_QUIT ($mmeta "b)) (keybind O_FINISH ($mmeta "c)) (keybind O_OPEN_NEW_FILE ($mmeta "d)) (keybind write-file ($mmeta "e)) (keybind O_SAVE_FILE ($mmeta "f)) (keybind O_INSERT_FILE ($mmeta "g)) (keybind next-file ($mmeta "h)) (keybind previous-file ($mmeta "i)) }}} {{{ SPECIAL (keybind O_HELP ($mmeta "j)) (keybind describe-bindings ($mmeta "k)) (keybind O_LANGUAGE ($mmeta "l)) (keybind O_SHELL ($mmeta "m)) (keybind shell-command ($mmeta "n)) (keybind pipe-from-command ($mmeta "o)) (keybind pipe-to-command ($mmeta "p)) (keybind filter-buffer ($mmeta "q)) (keybind pipe-kbd-from-command ($mmeta "r)) }}} {{{ MODES (keybind delete-mode-overwrite ($mmeta "s)) (keybind add-mode-overwrite ($mmeta "t)) (keybind add-mode-view ($mmeta "u)) (keybind delete-mode-view ($mmeta "v)) (keybind add-mode-autosave ($mmeta "w)) (keybind delete-mode-autosave ($mmeta "x)) }}} {{{ MACROS (keybind O_DEFINE_MACRO ($mmeta "y)) (keybind O_EXECUTE_MACRO ($mmeta "z)) (keybind O_DEFINE_FIX ($mmeta "A)) (keybind execute-macro-1 ($mmeta "B)) (keybind execute-macro-2 ($mmeta "C)) (keybind execute-macro-3 ($mmeta "D)) (keybind execute-macro-4 ($mmeta "E)) (keybind execute-macro-5 ($mmeta "F)) }}} {{{ GOTO (keybind O_GOTO_LINE ($mmeta "G)) (keybind O_TOP_OF_FOLD ($mmeta "H)) (keybind O_BOT_OF_FOLD ($mmeta "I)) (keybind incremental-search ($mmeta "J)) (keybind reverse-incremental-search ($mmeta "K)) (keybind replace-string ($mmeta "L)) (keybind query-replace-string ($mmeta "M)) }}} {{{ FOLDING (keybind O_OPEN_FOLD ($mmeta "N)) (keybind O_CLOSE_FOLD ($mmeta "O)) (keybind O_ENTER_FOLD ($mmeta "P)) (keybind O_EXIT_FOLD ($mmeta "Q)) (keybind O_REMOVE_FOLD ($mmeta "R)) (keybind O_CREATE_FOLD ($mmeta "S)) (keybind O_AUTO_FOLD ($mmeta "T)) (keybind O_FIRST_LINE_TO_FOLD_HEADER ($mmeta "U)) (keybind O_FILE_FOLD ($mmeta "V)) (keybind O_ATTACH_FILE ($mmeta "W)) (keybind O_FOLD_INFO ($mmeta "X)) }}} {{{ EDIT (keybind O_COPY ($mmeta "Y)) (keybind O_MOVE ($mmeta "0)) (keybind O_PICK ($mmeta "1)) (keybind O_COPY_PICK ($mmeta "2)) (keybind put-pick-and-copy-pick ($mmeta "3)) }}} ; the following is necessary for GEM redraw handling. It MUST be defined as some- ; thing. It does not matter what this macro actually does - it is just used to ; drop back from the field editor loop so thar ORIGAMI realizes that it has to ; redraw the screen. It does not have to be a macro - almost any token will work. (keybind do_nothing ($mmeta "@)) }}} {{{ moving cursor (keybind O_LEFT ($LEFT)) (keybind O_LEFT (C-F)) (keybind O_RIGHT ($RIGHT)) (keybind O_RIGHT (C-G)) (keybind O_WORD_LEFT ($CTRL-LEFT)) (keybind O_WORD_RIGHT ($CTRL-RIGHT)) (keybind O_START_OF_LINE ($ESC $LEFT)) (keybind O_START_OF_LINE ($S-LEFT)) (keybind O_END_OF_LINE ($ESC $RIGHT)) (keybind O_END_OF_LINE ($S-RIGHT)) (keybind O_UP ($UP)) (keybind O_UP (C-T)) (keybind O_DOWN ($DOWN)) (keybind O_DOWN (C-V)) (keybind O_PAGE_UP ($prev_page)) (keybind O_PAGE_UP ($S-UP)) (keybind O_PAGE_DOWN ($next_page)) (keybind O_PAGE_DOWN ($S-DOWN)) (keybind O_TOP_OF_FOLD ($ESC "<)) (keybind O_TOP_OF_FOLD ($HOME)) (keybind O_BOT_OF_FOLD ($ESC ">)) (keybind O_BOT_OF_FOLD ($S-HOME)) (keybind O_GOTO_LINE ($ESC "g)) }}} {{{ folding (keybind O_OPEN_FOLD (C-O)) (keybind O_CLOSE_FOLD (C-C)) (keybind O_ENTER_FOLD ($ESC "o)) (keybind O_ENTER_FOLD ($ESC "O)) (keybind O_EXIT_FOLD ($ESC "c)) (keybind O_EXIT_FOLD ($ESC "C)) (keybind O_REMOVE_FOLD (C-U)) (keybind O_CREATE_FOLD (C-N)) (keybind O_AUTO_FOLD ($ESC C-N)) (keybind O_FIRST_LINE_TO_FOLD_HEADER ($ESC "a "h)) (keybind O_FIRST_LINE_TO_FOLD_HEADER ($ESC "A "H)) (keybind O_FILE_FOLD ($ESC "f "f)) (keybind O_FILE_FOLD ($ESC "F "F)) (keybind O_ATTACH_FILE ($ESC "a "f)) (keybind O_ATTACH_FILE ($ESC "A "F)) }}} {{{ editing (keybind O_RETURN ($RETURN)) (keybind O_RETURN (C-J)) (keybind O_DELETE ($BACKSPACE)) (keybind O_DEL_CHAR_RIGHT ($DEL)) (keybind O_DEL_TO_EOL (C-K)) (keybind O_PICK (C-Y)) (keybind O_COPY_PICK ($ESC "y)) (keybind O_COPY_PICK ($ESC "Y)) (keybind O_COPY_PICK ($UNDO)) (keybind O_PUT_PICK ($ALT-V)) (keybind put-pick-and-copy-pick ($S-UNDO)) (keybind put-pick-and-copy-pick ($ESC "v)) (keybind put-pick-and-copy-pick ($ESC "V)) (keybind clear-pick-buffer ($CTRL-UNDO)) (keybind O_MOVE ($ESC "m "m)) (keybind O_MOVE ($ESC "M "M)) (keybind O_MOVE ($ALT-M)) (keybind O_COPY ($C-2)) (keybind O_COPY ($ESC "d "l)) (keybind O_COPY ($ESC "D "L)) (keybind case-word-capitalize ($ESC "w "c)) (keybind case-word-capitalize ($ESC "W "C)) (keybind case-word-lower ($ESC "w "l)) (keybind case-word-lower ($ESC "W "L)) (keybind case-word-upper ($ESC "w "u)) (keybind case-word-upper ($ESC "W "U)) }}} {{{ search & replace (keybind incremental-search (C-L)) (keybind reverse-incremental-search ($ESC C-L)) (keybind replace-string (C-R)) (keybind query-replace-string ($ALT-R)) (keybind query-replace-string ($ESC "q "r)) (keybind query-replace-string ($ESC "Q "R)) }}} {{{ files (keybind O_INSERT_FILE (C-X $CTRL-I)) (keybind O_SAVE_FILE (C-S)) (keybind O_SAVE_FILE (C-X C-S)) (keybind O_SAVE_FILE ($ALT-S)) (keybind write-file (C-X C-W)) (keybind O_OPEN_NEW_FILE (C-X C-R)) (keybind O_OPEN_NEW_FILE (C-X C-O)) (keybind next-file (C-X C-N)) (keybind previous-file (C-X C-P)) }}} {{{ modes and arguments (keybind set-argument-0 ($ESC "0)) (keybind set-argument-1 ($ESC "1)) (keybind set-argument-2 ($ESC "2)) (keybind set-argument-3 ($ESC "3)) (keybind set-argument-4 ($ESC "4)) (keybind set-argument-5 ($ESC "5)) (keybind set-argument-6 ($ESC "6)) (keybind set-argument-7 ($ESC "7)) (keybind set-argument-8 ($ESC "8)) (keybind set-argument-9 ($ESC "9)) (keybind add-mode-overwrite ($ESC "+ "o)) (keybind add-mode-overwrite ($ESC "+ "O)) (keybind add-mode-overwrite ($S-INSERT)) (keybind delete-mode-overwrite ($ESC "- "o)) (keybind delete-mode-overwrite ($ESC "- "O)) (keybind delete-mode-overwrite ($INSERT)) (keybind add-mode-view ($ESC "+ "v)) (keybind add-mode-view ($ESC "+ "V)) (keybind delete-mode-view ($ESC "- "v)) (keybind delete-mode-view ($ESC "- "V)) (keybind add-mode-echo ($ESC "+ "e)) (keybind add-mode-echo ($ESC "+ "E)) (keybind delete-mode-echo ($ESC "- "e)) (keybind delete-mode-echo ($ESC "- "E)) (keybind add-mode-autosave ($ESC "+ "a)) (keybind add-mode-autosave ($ESC "+ "A)) (keybind delete-mode-autosave ($ESC "- "a)) (keybind delete-mode-autosave ($ESC "- "A)) }}} {{{ keyboard macros (keybind O_DEFINE_MACRO ($ESC "m "d)) (keybind O_DEFINE_MACRO ($ESC "M "D)) (keybind O_DEFINE_MACRO ($C-M C-D)) (keybind O_EXECUTE_MACRO (C-A)) (keybind O_DEFINE_FIX ($ESC "d "f)) (keybind O_DEFINE_FIX ($ESC "D "F)) (keybind execute-macro-1 ($f6)) (keybind execute-macro-2 ($f7)) (keybind execute-macro-3 ($f8)) (keybind execute-macro-4 ($f9)) (keybind execute-macro-5 ($f10)) }}} {{{ shell commands (keybind O_SHELL (C-Z)) (keybind shell-command ($ESC "!)) (keybind shell-command ($ESC $ESC)) }}} {{{ special functions (keybind O_REFRESH (C-W)) (keybind O_LANGUAGE ($ESC "s "l)) (keybind O_LANGUAGE ($ESC "S "L)) (keybind O_HELP ($ESC "h "e "l "p)) (keybind O_HELP ($ESC "H "E "L "P)) (keybind O_HELP ($C-HELP)) (keybind describe-bindings ($ESC "?)) (keybind describe-bindings ($HELP)) (keybind O_FOLD_INFO ($ESC "=)) (keybind O_FOLD_INFO ($S-HELP)) (keybind filter-buffer ($ESC "f "b)) (keybind filter-buffer ($ESC "F "B)) (keybind pipe-from-command ($ESC "p "f)) (keybind pipe-from-command ($ESC "P "F)) (keybind pipe-to-command ($ESC "p "t)) (keybind pipe-to-command ($ESC "P "T)) (keybind pipe-kbd-from-command ($ESC "p "k)) (keybind pipe-kbd-from-command ($ESC "P "K)) (keybind O_QUOTE ($CTRL-ESC)) }}} {{{ how to get out (keybind O_QUIT (C-Q)) (keybind O_QUIT ($ALT-Q)) (keybind O_FINISH ($ESC C-Q)) }}} {{{ auto-startup and mode macros {{{ description ; mode-number mode-tag mode-name ; 0 ; 2 c-mode C-Mode ; 3 p-mode PASCAL-M ; 4 r-mode ROFF-M ; 5 t-mode TEX-Mode ; 6 o-mode OCCAM-M ; 7 m-mode MIRA-M }}} {{{F startup.fun :::F startup.fun }}} (automacro start-up) (keybind skip-mode ($ESC "s "m)) }}}