home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / fte0827.zip / config / ui_vi.fte < prev    next >
Text File  |  1999-05-16  |  25KB  |  744 lines

  1. # Basic Commands (Global) #FOLD00
  2. menu Tools { #fold01
  3.     item "&Compile\tF9" { Compile "make -k " }
  4.     item "&Grep" { Compile "grep -n " }
  5. #    item "&Diff" { Compile "cvs diff" }
  6.     item;
  7.     item "Go to prev &error\tF11" { CompilePrevError }
  8.     item "Go to &next error\tF12" { CompileNextError }
  9.     item;
  10.     item "&Messages\tS+F9" { ViewMessages }
  11. }
  12.  
  13. menu Window { #FOLD01
  14. #    item "&New " { WinNewFrame }
  15. #    item;
  16.     item "Split &Horizontal\tShift+F2" { WinHSplit }
  17.     item "&Close view\tCtrl+Alt+F4" { WinClose }
  18.     item "Close &other views\tF5" { WinZoom }
  19.     item;
  20.     item "Sa&ve Desktop" { DesktopSave }
  21.     item "Save Desktop &As" { DesktopSaveAs }
  22.     item;
  23.     item "&Routines\tCtrl+I" { ListRoutines }
  24.     item "&Buffers\tAlt+0" { ViewBuffers }
  25.     item "&Directory\tC+M" { DirOpen }
  26. #    item "&Shell" { }
  27. }
  28.  
  29. menu Help { #fold01
  30.     item "&About..."  { ShowVersion }
  31. }
  32.  
  33. eventmap MODEL { #fold01
  34.     key     [C+F2]      { FileSaveAll }
  35.     key       [F3]      { FileOpen }
  36.     key       [F4]      { WinNext }
  37.     key     [C+F4]      { WinHSplit }
  38.     key     [S+F4]      { WinPrev }
  39.     key   [A+S-F4]      { WinClose }
  40.     key       [F5]      { WinZoom }
  41.     key       [F6]      { FileNext }
  42.     key     [S+F6]      { FilePrev }
  43.     key   [A+S-F6]      { FileLast }
  44.     key       [F10]     { MainMenu }
  45.     key     [C+F10]     { FileClose }
  46.     key     [C+F9]      { RunProgram }
  47.     key     [S+F10]     { LocalMenu }
  48.     
  49.     key   [C+G-Up]      { WinPrev }
  50.     key   [C+G-Down]    { WinNext }
  51.     
  52.     key   [A+G-PgUp]    { WinPrev; MovePageUp; WinNext }
  53.     key   [A+G-PgDn]    { WinNext; MovePageDown; WinPrev }
  54.     key [A+C+G-PgUp]    { WinNext; MovePageUp; WinPrev }
  55.     key [A+C+G-PgDn]    { WinPrev; MovePageDown; WinNext }
  56.     
  57.     key     [A+X]       { ExitEditor }
  58.     
  59.     key   [C+S+G-Up]    { WinResize -1 }
  60.     key   [C+S+G-Down]  { WinResize +1 }
  61.     
  62.     # this is also useful for 'grep -n' etc. if configured
  63.     key       [F9]      { Compile; ViewMessages }
  64.     key       [F11]     { CompilePrevError }
  65.     key       [F12]     { CompileNextError }
  66.     key       [S+F9]    { ViewMessages }
  67.     
  68.     key     [A+0]       { ViewBuffers }
  69.     key     [A+1]       { SwitchTo 1 }
  70.     key     [A+2]       { SwitchTo 2 }
  71.     key     [A+3]       { SwitchTo 3 }
  72.     key     [A+4]       { SwitchTo 4 }
  73.     key     [A+5]       { SwitchTo 5 }
  74.     key     [A+6]       { SwitchTo 6 }
  75.     key     [A+7]       { SwitchTo 7 }
  76.     key     [A+8]       { SwitchTo 8 }
  77.     key     [A+9]       { SwitchTo 9 }
  78. }
  79. # List Viewers #FOLD00
  80. eventmap MLIST: MODEL {
  81.     key     [G-Left]    { MoveLeft }
  82.     key     [G-Right]   { MoveRight }
  83.     key     [G-Up]      { MoveUp }
  84.     key     [G-Down]    { MoveDown }
  85.     key     [G-Home]    { MoveLineStart }
  86.     key   [C+G-Home]    { MovePageStart }
  87.     key     [G-End]     { MoveLineEnd }
  88.     key   [C+G-End]     { MovePageEnd }
  89.     key     [G-PgUp]    { MovePageUp }
  90.     key   [C+G-PgUp]    { MoveFileStart }
  91.     key     [G-PgDn]    { MovePageDown }
  92.     key   [C+G-PgDn]    { MoveFileEnd }
  93. #    key   [A+G-Up]     { ScrollUp }
  94. #    key   [A+G-Down]   { ScrollDown }
  95.     key   [C+Left]      { ScrollRight }
  96.     key   [C+Right]     { ScrollLeft }
  97.     
  98.     key     [G-Enter]   { Activate }
  99.     key     [Space]     { ActivateInOtherWindow }
  100.     key     [S+Enter]   { CloseActivate }
  101.  
  102.     key     [C+R]       { Rescan }
  103. }
  104. # Directory Browser  #fold00
  105. menu Directory { #fold01
  106.     item    "&Reloadrl+R"         { Rescan }
  107.     item    "&Close\tCtrl+F10"        { FileClose }
  108.     item;
  109.     item    "&Open file...\tF3"       { FileOpen }
  110.     item;
  111.     item    "&Next\tF6"               { FileNext }
  112.     item    "&Previous\tShift+F6"     { FilePrev }
  113.     item;
  114.     item    "Sh&ell"                  { RunProgram "" }
  115.     item    "E&xit\tAlt+X"            { ExitEditor }
  116. }                              
  117.  
  118. menu Navigate { #fold01
  119.     item "Go &< level\tCtrl+PgUp"     { DirGoUp }
  120.     item "Go &> level\tCtrl+PgDn"   { DirGoDown }
  121.     item "Go to &\\\tCtrl+\\"          { DirGoRoot }
  122. #    item "&/ Goto Dir\t/"    { DirGoto }
  123.     item "&\\ Goto Dir\t\\"    { DirGoto }
  124.     item;
  125.     item '&A:\\' { DirGoto 'A:\\' }
  126.     item '&B:\\' { DirGoto 'B:\\' }
  127.     item '&C:\\' { DirGoto 'C:\\' }
  128.     item '&D:\\' { DirGoto 'D:\\' }
  129.     item '&E:\\' { DirGoto 'E:\\' }
  130.     item '&F:\\' { DirGoto 'F:\\' }
  131.     item '&G:\\' { DirGoto 'G:\\' }
  132.     item '&H:\\' { DirGoto 'H:\\' }
  133.     item '&I:\\' { DirGoto 'I:\\' }
  134. }
  135.  
  136. menu DirMain { #fold01
  137.     submenu "&Directory", Directory;
  138.     submenu "&Navigate", Navigate;
  139.     submenu "&Tools", Tools;
  140.     submenu "&Window",  Window;
  141. }
  142.  
  143. eventmap DIRECTORY: MLIST { #fold01
  144.     MainMenu = 'DirMain';
  145.     
  146.     key [C+G-PgUp]      { DirGoUp }
  147.     key [C+G-PgDn]      { DirGoDown }
  148.     key [C+\\]          { DirGoRoot }
  149.     key [/]             { DirGoto }
  150.     key [\\]            { DirGoto }
  151.     key [Esc]           { FileClose 0 }
  152.     
  153.     key     [A+D]       { MainMenu 'D' }
  154.     key     [A+N]       { MainMenu 'N' }
  155.     key     [A+W]       { MainMenu 'W' }
  156.     key     [A+T]       { MainMenu 'T' }
  157. }
  158. # Buffer List #fold00
  159. eventmap BUFFERS: MLIST {
  160.     key  [Esc]   { FileClose 0 } # 0 = do not open directory when last closed, overrides OpenAfterClose default.
  161.  
  162.     key  [C+C]   { BufListFileClose }
  163.     key  [F2]    { BufListFileSave }
  164. }
  165.  
  166. # Routine List #fold00
  167. eventmap ROUTINES: MLIST {
  168.     key  [Esc]   { FileClose }
  169. }
  170.  
  171. # Message List #fold00
  172. menu Messages {
  173.     item "&Close\tCtrl+F10"        { FileClose }
  174.     item;
  175.     item "&Next\tF6"               { FileNext }
  176.     item "&Previous\tShift+F6"     { FilePrev }
  177.     item;
  178.     item "Sh&ell"                  { RunProgram "" }
  179.     item "E&xit\tAlt+X"            { ExitEditor }
  180. }
  181.  
  182. menu MsgMain {
  183.     submenu "&Messages", Messages;
  184.     submenu "&Tools", Tools;
  185.     submenu "&Window", Window;
  186. }
  187.  
  188. eventmap MESSAGES: MLIST {
  189.     MainMenu = "MsgMain";
  190.     
  191.     key     [A+M]       { MainMenu 'M' }
  192.     key     [A+T]       { MainMenu 'T' }
  193.     key     [A+W]       { MainMenu 'W' }
  194.  
  195.     key     [C+C]       { ChildClose } # does NOT kill, just closes pipe
  196. }
  197. # Editor - Editing Modes #FOLD00
  198. # PLAIN #FOLD01
  199. # menus  #FOLD02
  200. menu MChangeMode { #fold03
  201.     item "&Plain"      { ChangeMode 'PLAIN' }
  202.     item "&Text"       { ChangeMode 'TEXT' }
  203.     item "&C"          { ChangeMode 'C' }
  204.     item "&EMail"      { ChangeMode 'MSG' }
  205.     item "&HTML"       { ChangeMode 'HTML' }
  206.     item "&IPF"        { ChangeMode 'IPF' }
  207.     item "&Ada"        { ChangeMode 'Ada' }
  208.     item "&REXX"       { ChangeMode 'REXX' }
  209.     item "MAKE"        { ChangeMode 'MAKE' }
  210.     item "&FTE"        { ChangeMode 'FTE' }
  211.     item "Resource"    { ChangeMode 'RESOURCE' }
  212.     item "&DIFF"       { ChangeMode 'DIFF' }
  213.     item "&MERGE"      { ChangeMode 'MERGE' }
  214.     item "SH"          { ChangeMode 'SH' }
  215.     item "PER&L"       { ChangeMode 'PERL' }
  216.     item "PASCAL"      { ChangeMode 'PASCAL' }
  217.     item "&JAVA"       { ChangeMode 'JAVA' }
  218.     item "TE&X"        { ChangeMode 'TEX' }
  219.     item "&BIN"        { ChangeMode 'BIN' }
  220. }
  221.  
  222. menu MOpenInMode { #fold03
  223.     item "&Plain"      { FileOpenInMode 'PLAIN' }
  224.     item "&Text"       { FileOpenInMode 'TEXT' }
  225.     item "&C"          { FileOpenInMode 'C' }
  226.     item "&EMail"      { FileOpenInMode 'MSG' }
  227.     item "&HTML"       { FileOpenInMode 'HTML' }
  228.     item "&IPF"        { FileOpenInMode 'IPF' }
  229.     item "&Ada"        { FileOpenInMode 'Ada' }
  230.     item "&REXX"       { FileOpenInMode 'REXX' }
  231.     item "MAKE"        { FileOpenInMode 'MAKE' }
  232.     item "&FTE"        { FileOpenInMode 'FTE' }
  233.     item "Resource"    { FileOpenInMode 'RESOURCE' }
  234.     item "&DIFF"       { FileOpenInMode 'DIFF' }
  235.     item "&MERGE"      { FileOpenInMode 'MERGE' }
  236.     item "SH"          { FileOpenInMode 'SH' }
  237.     item "PER&L"       { FileOpenInMode 'PERL' }
  238.     item "PASCAL"      { FileOpenInMode 'PASCAL' }
  239.     item "&JAVA"       { FileOpenInMode 'JAVA' }
  240.     item "TE&X"        { FileOpenInMode 'TEX' }
  241.     item "&BIN"        { FileOpenInMode 'BIN' }
  242. }
  243.  
  244. menu File { #fold03
  245.     item    "&Open...\tF3"            { FileOpen }
  246.     submenu "Open in &Mode...\tCtrl+F3", MOpenInMode;
  247. #    item    "Open &Binary"            { FileOpenInMode 'BIN' }
  248.     item    "&Reload\tShift+F3"           { FileReload }
  249.     item    "&Save\tF2"               { FileSave }
  250.  
  251.     # OpenDoc UI Guide recomments using Write To only, not Save As, hmm.
  252.     item    "Save &As...\tShift+F2"       { FileSaveAs }
  253.     item    "Save Al&l\tCtrl+F2"         { FileSaveAll }
  254.     item    "Write &To..."            { FileWriteTo }
  255. #    item    "Sa&ve and Close\tAlt+F2"   { FileSave; FileClose }
  256.     item    "Prin&t"                  { FilePrint } 
  257.     item    "&Close\tCtrl+F10"           { FileClose }
  258.     item;
  259.     item    "&Next\tF6"               { FileNext }
  260.     item    "&Previous\tShift+F6"         { FilePrev }
  261.     item;
  262.     item    "Sh&ell"                  { RunProgram "" }
  263.     item    "E&xit\tAlt+X"              { ExitEditor }
  264. }                              
  265.                                
  266. menu Edit { #FOLD03
  267.     item "&Undo\tAlt+BackSp" { Undo }
  268.     item "&Redo\tAlt+Shift+BackSp" { Redo }
  269.     item;                                
  270.     item "Cu&t\tShift+Del" { BlockCut }
  271.     item "&Copy\tCtrl+Ins" { BlockCopy }
  272.     item "&Paste\tShift+Ins" { BlockPasteStream }
  273.     item "P&aste Column\tAlt+Ins" { BlockPasteColumn }
  274.     item;                        
  275. #    item "&Insert line\tShift+Enter" { LineInsert }
  276.     item "&Delete line\tCtrl+Y" { KillLine }
  277.     item "&Split line\tCtrl+Enter" { LineSplit }
  278.     item "&Join line\tCtrl+J" { LineJoin }
  279. #    item "Dup&licate line\tCtrl+D" { LineDuplicate }
  280. #    item "Delete to line &end\tAlt+End" { KillToLineEnd }
  281. #    item "Delete to li&ne start\tCtrl+Shift+BackSp" { KillToLineStart }
  282.     item;                        
  283.     item "&Quote Literal...\tCtrl+Q" { InsertChar }
  284.     item "&ASCII Table...\tCtrl+Shift+A" { ASCIITable }
  285. }
  286.  
  287. menu Translate { #fold03
  288.     item "&Uppercase"         { BlockCaseUp }
  289.     item "&Lowercase"         { BlockCaseDown }
  290.     item "&Togglecase"        { BlockCaseToggle }
  291.     item "&Rot13"             { BlockTrans 'A-Za-z' 'N-ZA-Mn-za-m' }
  292.     item;
  293.     item "User &specified..." { BlockTrans }
  294. }
  295.  
  296. menu Block { #fold03
  297.     item "&Unmark\tEsc"   { BlockUnmark }
  298.     item "Mark &Line\tAlt+L"   { BlockMarkLine }
  299.     item "Mark &Stream\tAlt+A"   { BlockMarkStream }
  300.     item "Mark &Column\tAlt+K"   { BlockMarkColumn }
  301.     item;
  302. #    item "Select Wor&d"   { BlockSelectWord }
  303. #    item "Selec&t Line"   { BlockSelectLine }
  304. #    item;
  305.     item "&Indent\tAlt+I"   { BlockIndent }
  306.     item "U&nindent\tAlt+U"   { BlockUnindent }
  307.     item;
  308.     item "&Write..."   { BlockWrite }
  309.     item "&Read..."   { BlockRead }
  310.     item "&Print"   { BlockPrint }
  311.     item;
  312.     submenu "Translat&e", Translate;
  313. }
  314.  
  315. menu Search { #FOLD03
  316.     item "&Find...\tCtrl+Q C+W" { Find }
  317.     item "Find and &replace...\tCtrl+R" { FindReplace }
  318.     item "Repeat &Last find\tCtrl+L" { FindRepeat }
  319.     item "Repeat last find re&verse\tCtrl+B" { FindRepeatReverse }
  320.     item "Repeat last find &once\tCtrl+N" { FindRepeatOnce }
  321.     item "Incremental &search\tCtrl+S" { IncrementalSearch }
  322.     item;
  323.     item "&Place Bookmark..." { PlaceBookmark }
  324.     item "Goto &Bookmark..." { GotoBookmark }
  325.     item;
  326.     item "&Match paren\tAlt+-" { MatchBracket }
  327.     item "&Goto line...\tAlt+J" { MoveToLine }
  328. }               
  329.  
  330. menu Fold { #fold03
  331.     item "&Create fold\tAlt+Gray++" { FoldCreate }
  332.     item "Create folds by ®exp..." { FoldCreateByRegexp }
  333.     item "&Destroy fold\tAlt+Gray+-" { FoldDestroy }
  334.     item;
  335.     item "&Open fold\tCtrl+Gray++" { FoldOpen }
  336.     item "Open &nested folds\tCtrl+Gray+*" { FoldOpenNested }
  337.     item "C&lose fold\tCtrl+Gray+-" { FoldClose }
  338.     item "&Toggle fold open/close\tCtrl+Gray+/" { FoldToggleOpenClose }
  339.     item;
  340.     item "&Promote fold\tShift+Gray+-" { FoldPromote }
  341.     item "De&mote fold\tShift+Gray++" { FoldDemote }
  342.     item;
  343.     item "Open &all folds\tAlt+Gray+*" { FoldOpenAll }
  344.     item "Close all &folds\tAlt+Gray+/" { FoldCloseAll }
  345.     item "Destro&y all folds" { FoldDestroyAll }
  346. }
  347.  
  348. menu Options { #fold03
  349.     submenu "Change &mode\tC+O C+M", MChangeMode;
  350.     item;
  351.     item "&Insert mode\tC+O C+I" { ToggleInsert }
  352.     item "&Auto indent\tC+O C+A" { ToggleAutoIndent }
  353.     item "&Case sensitive\tC+O C+C" { ToggleMatchCase }
  354.     item "Trim &EOL spaces\tC+O C+E" { ToggleTrim }
  355.     item "&Read only\tC+O C+R" { ToggleReadOnly }
  356.     item "&Undo/Redo\tC+O C+U" { ToggleUndo }
  357.     item "&Show markers\tC+O C+." { ToggleShowMarkers; WinRefresh }
  358.     item;
  359.     item "&Word wrap\tC+O C+W" { ToggleWordWrap }
  360.     item "&Left margin...\tC+O A+[" { ChangeLeftMargin }
  361.     item "Ri&ght margin...\tC+O A+]" { ChangeRightMargin }
  362.     item;
  363.     item "&Tab size...\tC+O C+T" { ChangeTabSize; WinRefresh }
  364.     item "S&how tabs\tC+O   Tab" { ToggleShowTabs; WinRefresh }
  365.     item "E&xpand tabs\tC+O C+Tab" { ToggleExpandTabs; WinRefresh }
  366.     item "&Print to...               " { SetPrintDevice }
  367. }                    
  368.  
  369. menu Main {  #fold03
  370.     submenu "&File",    File;
  371.     submenu "&Edit",    Edit;
  372.     submenu "&Block",   Block;
  373.     submenu "&Search",  Search;
  374.     submenu "Fol&d",    Fold;
  375.     submenu "&Tools",   Tools;
  376.     submenu "&Window",  Window;
  377.     submenu "&Options", Options;
  378.     submenu "&Help",    Help;
  379. }
  380.  
  381. menu Local { #fold03
  382.     item "&Unmark\tEsc"   { BlockUnmark }
  383.     item "Cu&t\tShift+Del" { BlockCut }
  384.     item "&Copy\tCtrl+Ins" { BlockCopy }
  385.     item "&Paste\tShift+Ins" { BlockPasteStream }
  386.     item "P&aste Column\tAlt+Ins" { BlockPasteColumn }
  387.     item;
  388.     item "Delete &line\tCtrl+Y"   { KillLine }
  389.     item "Delete to &EOL\tAlt+End" { KillToLineEnd }
  390.     item;
  391.     item "&Save\tF2"    { FileSave }
  392.     item "Cl&ose\tC+F10" { FileClose }
  393. }
  394.  
  395. eventmap PLAIN: MODEL { #FOLD02
  396. # keymap for plaintext mode
  397.     MainMenu   = 'Main';    # menu for menubar
  398.     LocalMenu  = 'Local';   # local menu
  399.  
  400.     key [i] { ChangeKeys 'VI_INS' }
  401.     key [I] { MoveLineStart; ChangeKeys 'VI_INS' }
  402.     key [o] { LineAdd; MoveDown; MoveLineStart; ChangeKeys 'VI_INS' }
  403.     key [O] { LineInsert; MoveLineStart; ChangeKeys 'VI_INS' }
  404.     key [a] { MoveRight; ChangeKeys 'VI_INS' }
  405.     key [A] { MoveLineEnd; ChangeKeys 'VI_INS' }
  406.     key [r] { ToggleInsert; InsertChar; ToggleInsert }
  407.     key [R] { ChangeKeys 'VI_OVER'; ToggleInsert }
  408.     key [d] { ChangeKeys 'VI_DELETE' }
  409.     key [D] { KillToLineEnd }
  410.     key [y] { ChangeKeys 'VI_YANK' }
  411.     key [x] { KillChar }
  412.     key [X] { KillCharPrev }
  413.     key [h] { MoveLeft }
  414.     key [j] { MoveDown }
  415.     key [k] { MoveUp }
  416.     key [l] { MoveRight }
  417.     key [$] { MoveLineEnd }
  418.     key [0] { MoveLineStart }
  419.     key [^] { MoveFirstNonWhite }
  420.     key [:_q] { FileClose }
  421.     key [:_w] { FileSave }
  422.     key [:_e] { FileOpen }
  423.     key [:_n] { FileNext }
  424.     key [:_N] { FilePrev }
  425.     #key [/] { SearchRx }
  426.     #key [n] { SearchAgain }
  427.     key [P] { BlockPaste }
  428.     key [p] { BlockPaste }
  429.     key [B] { MoveWordPrev }
  430.     key [b] { MoveWordPrev }
  431.     key [w] { MoveWordNext }
  432.     key [W] { MoveWordNext }
  433.     key [e] { MoveWordEndNext }
  434.     key [E] { MoveWordEndNext }
  435.     key [c] { ChangeKeys 'VI_CHANGE' }
  436.     key [C+N] { MoveDown }
  437.     key [C+P] { MoveUp }
  438.     key [C+B] { MovePageUp }
  439.     key [C+F] { MovePageDown }
  440.     key [%]   { MatchBracket }
  441.     key [u]     { Undo }
  442.     key [C+R]   { Redo }
  443.  
  444.     key [BackSp] { MoveLeft }
  445.     key [Space] { MoveRight }
  446.  
  447.     key [G-Enter] { MoveDown; MoveLineStart }
  448.     key [-] { MoveUp; MoveLineStart }
  449.     key [+] { MoveDown; MoveLineStart }
  450.     key [J] { LineJoin }
  451.     key [C] { KillToLineEnd; ChangeKeys 'VI_INS' }
  452.  
  453.     key       [G-Left]    { MoveLeft }
  454.     key     [C+G-Left]    { MoveWordPrev }
  455.     key       [G-Right]   { MoveRight }
  456.     key     [C+G-Right]   { MoveWordNext }
  457.     key       [G-Up]      { MoveUp }
  458.     key       [G-Down]    { MoveDown }
  459.     key       [G-Home]    { MoveLineStart }
  460.     key     [C+G-Home]    { MovePageStart }
  461.     key       [G-End]     { MoveLineEnd }
  462.     key     [C+G-End]     { MovePageEnd }
  463.     key       [G-PgUp]    { MovePageUp }
  464.     key     [C+G-PgUp]    { MoveFileStart }
  465.     key       [G-PgDn]    { MovePageDown }
  466.     key     [G-C+PgDn]    { MoveFileEnd }
  467. }
  468.  
  469. eventmap VI_INS: MODEOPTS {
  470.     key [Esc] { ChangeKeys; MoveLeft }
  471.     key [G-Enter] { LineNew }
  472.     key [Space] { InsertSpace }
  473.     key [BackSp] { KillCharPrev }
  474.     key [Tab] { InsertTab }
  475. }
  476.  
  477. eventmap VI_OVER: VI_INS {
  478.     #Insert      = 0;
  479.     key [Esc] { ChangeKeys; MoveLeft; ToggleInsert }
  480. }
  481.  
  482. eventmap VI_DELETE: MODEOPTS {
  483.     key [Esc] { ChangeKeys }
  484.     key [d]   { BlockSelectLine; BlockCut; ChangeKeys }
  485.     key [$]   { BlockUnmark; BlockMarkStream; MoveLineEnd; BlockMarkStream; BlockCut; ChangeKeys 'VIMODE' }
  486.     key [0]   { BlockUnmark; BlockMarkStream; MoveLineStart; BlockMarkStream; BlockCut; ChangeKeys 'VIMODE' }
  487.     key [w]   { KillWord; ChangeKeys }
  488. }
  489.  
  490. eventmap VI_CHANGE: MODEOPTS {
  491.     key [Esc] { ChangeKeys }
  492.     key [w] { KillWord; ChangeKeys 'VI_INS' }
  493.     key [$] { KillToLineEnd; ChangeKeys "VI_INS" }
  494.     key [c] { MoveLineStart; KillToLineEnd; ChangeKeys "VI_INS" }
  495. }
  496.  
  497. eventmap VI_YANK: MODEOPTS {
  498.     key [Esc] { ChangeKeys }
  499.     key [y]   { BlockSelectLine; BlockCopy; ChangeKeys }
  500.     key [$]   { BlockUnmark; BlockMarkStream; MoveLineEnd; BlockMarkStream; BlockCopy; MovePrevPos; ChangeKeys 'VIMODE' }
  501.     key [0]   { BlockUnmark; BlockMarkStream; MoveLineStart; BlockMarkStream; BlockCopy; MovePrevPos; ChangeKeys 'VIMODE' }
  502.     key [w]   { KillWord; ChangeKeys }
  503. }
  504.  
  505. mode PLAIN { EventMap = 'PLAIN'; }
  506.  
  507. # C #fold01
  508. menu Local_C { #fold02
  509.     item "&Unmark\tEsc" { BlockMarkStream; BlockUnmark }
  510.     item "Cu&t\tShift+Del" { BlockCut }
  511.     item "&Copy\tCtrl+Ins" { BlockCopy }
  512.     item "&Paste\tShift+Ins" { BlockPasteStream }
  513.     item "P&aste Column\tAlt+Ins" { BlockPasteColumn }
  514.     item;
  515.     item "Delete &line\tCtrl+Y"   { KillLine }
  516.     item "Delete to &EOL\tAlt+End" { KillToLineEnd }
  517.     item;
  518.     item "&Save\tF2"    { FileSave }
  519.     item "Cl&ose\tCtrl+F10" { FileClose }
  520.     item;
  521.     item "&Indent line\tTab" { LineIndent }
  522.     item "I&ndent block\tAlt+\\"  { BlockReIndent }
  523. }
  524.  
  525. eventmap C: PLAIN { #fold02
  526.     LocalMenu           = 'Local_C';  # local menu
  527.  
  528.     key       [=]     { LineIndent; LineTrim }
  529.     key       [O]     { LineIndent; LineNew }
  530.     key       [{]       { SelfInsert; ?LineIndent }
  531.     key       [}]       { SelfInsert; ?LineIndent; MoveLeft; ?HilitMatchBracket; MoveRight }
  532.     key       [)]       { SelfInsert; MoveLeft; ?HilitMatchBracket; MoveRight }
  533.     key       [\]]       { SelfInsert; MoveLeft; ?HilitMatchBracket; MoveRight }
  534.     key       [:]       { SelfInsert; ?LineIndent }
  535.     key       [#]       { SelfInsert; ?LineIndent }
  536. #    key     [A+\\]      { BlockReIndent }
  537.     
  538.     # do some smart indents
  539.     key   [A+G-Enter]   { LineAdd; LineIndent }
  540.     key   [S+G-Enter]   { LineInsert; LineIndent }
  541. }
  542.  
  543. mode C { #fold02
  544.     EventMap = 'C';
  545. }
  546.  
  547. # REXX  #fold01
  548. eventmap REXX: PLAIN { #fold02
  549.     key      [Tab]      { LineIndent LineTrim }
  550.     key      [G-Enter]  { LineIndent LineNew }
  551.     key      [:]        { SelfInsert LineIndent }
  552.     key      [A+\\]     { BlockReIndent }
  553. }
  554.  
  555. mode REXX { EventMap = 'REXX'; } #fold02
  556.  
  557. # PERL #fold01
  558. eventmap PERL: PLAIN { #fold02
  559.     key      [Tab]      { LineIndent LineTrim }
  560.     key      [G-Enter]  { LineIndent LineNew }
  561.  
  562.     key      [#]        { SelfInsert LineIndent }
  563.     key      [{]        { SelfInsert LineIndent }
  564.     key      [}]        { SelfInsert LineIndent }
  565.     key      [A+\\]     { BlockReIndent }
  566. }
  567.  
  568. mode PERL { EventMap = 'PERL'; } #fold02
  569.  
  570. # JAVA #fold01
  571.  
  572. eventmap JAVA: PLAIN { #fold02
  573.     key       [Tab]     { LineIndent; LineTrim }
  574.     key       [G-Enter] { LineIndent; LineNew }
  575.     key       [{]       { SelfInsert; LineIndent }
  576.     key       [}]       { SelfInsert; LineIndent }
  577.     key       [:]       { SelfInsert; LineIndent }
  578.     key       [#]       { SelfInsert; LineIndent }
  579.     key     [A+\\]      { BlockReIndent }
  580. }
  581.  
  582. mode JAVA { EventMap = 'JAVA'; } #fold02
  583.  
  584. # HTML #fold01
  585.  
  586. menu HTML_Physical { #fold02
  587.     item    "&Bold        <B>   C-E C-B" { HTML_B }
  588.     item    "&Italic      <I>   C-E C-I" { HTML_I }
  589.     item    "&Typewriter  <TT>  C-E C-T" { HTML_TT }
  590. }
  591.  
  592. menu HTML_Logical { #fold02
  593.     item    "&Definition  <DFN>     C-E C-D" { HTML_DFN }
  594.     item    "&Emphasize   <EM>      C-E C-E" { HTML_EM }
  595.     item    "Citati&on    <CITE>    C-E C-O" { HTML_CITE }
  596.     item    "&Code        <CODE>    C-E C-C" { HTML_CODE }
  597.     item    "&Kbd entry   <KBD>     C-E C-K" { HTML_KBD }
  598.     item    "Sam&ple msg  <SAMP>    C-E C-M" { HTML_SAMP }
  599.     item    "&Strong EM   <STRONG>  C-E C-S" { HTML_STRONG }
  600.     item    "&Variable    <VAR>     C-E C-V" { HTML_VAR }
  601. }
  602.  
  603. menu HTML_Header { #fold02
  604.     item    "&1  <H1>  C-E 1" { HTML_H1 }
  605.     item    "&2  <H2>  C-E 2" { HTML_H2 }
  606.     item    "&3  <H3>  C-E 3" { HTML_H3 }
  607.     item    "&4  <H4>  C-E 4" { HTML_H4 }
  608.     item    "&5  <H5>  C-E 5" { HTML_H5 }
  609.     item    "&6  <H6>  C-E 6" { HTML_H6 }
  610. }
  611.  
  612. menu HTML_List { #fold02
  613.     item    "List &item        <LI>  C-E i"  { HTML_LI }
  614.     item    "&Unordered list   <UI>  C-E u"  { HTML_UL }
  615.     item    "&Ordered list     <OL>  C-E o"  { HTML_OL }
  616.     item    "Definition &list  <DL>  C-E l"  { HTML_DL }
  617.     item    "Definition &tag   <DT>  C-E t"  { HTML_DT }
  618.     item    "&Definition       <DD>  C-E d"  { HTML_DD }
  619. }
  620.  
  621. menu HTML_Table { #fold02
  622.     item    "&Table    <TABLE>    C-E A-T" { HTML_TABLE }
  623.     item    "&Caption  <CAPTION>  C-E A-C" { HTML_CAPTION }
  624.     item    "&Header   <TH>       C-E A-H" { HTML_TH }
  625.     item    "&Row      <TR>       C-E A-R" { HTML_TR }
  626.     item    "&Data     <TD>       C-E A-D" { HTML_TD }
  627. }
  628.  
  629. menu HTMLTags { #fold02
  630.     item    "&Paragraph     <P>       C-E C-P  " { HTML_P }
  631.     item    "Line brea&k    <BR>      C-E Enter" { HTML_BR }
  632.     item    "Horiz.line    <HR>      C-E &-    " { HTML_HR }
  633.     item;
  634.     submenu "P&hysical styles                  ", HTML_Physical;
  635.     submenu "Logical &styles                   ", HTML_Logical;
  636.     submenu "&Header                           ", HTML_Header;
  637.     submenu "&Lists                            ", HTML_List;
  638.     submenu "&Tables                           ", HTML_Table;
  639.     item;
  640.     item    "Pre&formatted  <PRE>     C-E C-F  " { HTML_PRE }
  641.     item    "&Centered      <CENTER>  C-E .    " { HTML_CENTER }
  642.     item;
  643.     item    "Anchor &Name   <A NAME>  C-E C-N  " { HTML_ANAME }
  644.     item    "Anchor H&Ref   <A HREF>  C-E C-H  " { HTML_AHREF }
  645.     item;
  646.     item    "Basic document           C-E &0   " { HTML_Base }
  647. }
  648.  
  649. menu Main_HTML { #fold02
  650.     submenu "&File",    File;
  651.     submenu "&Edit",    Edit;
  652.     submenu "&Block",   Block;
  653.     submenu "&Search",  Search;
  654.     submenu "Fol&d",    Fold;
  655.     submenu "&Tools",   Tools;
  656.     submenu "HT&ML",    HTMLTags;
  657.     submenu "&Window",  Window;
  658.     submenu "&Options", Options;
  659.     submenu "&Help",    Help;
  660. }
  661.  
  662. eventmap HTML: PLAIN { #fold02
  663.     
  664.     MainMenu            = "Main_HTML";   # menu for menubar
  665.  
  666.     key [C+E_0]     { HTML_Base }
  667.     
  668. # headers
  669.     
  670.     key [C+E_1]     { HTML_H1 }
  671.     key [C+E_2]     { HTML_H2 }
  672.     key [C+E_3]     { HTML_H3 }
  673.     key [C+E_4]     { HTML_H4 }
  674.     key [C+E_5]     { HTML_H5 }
  675.     key [C+E_6]     { HTML_H6 }
  676.     
  677. # physical
  678.     
  679.     key [C+E_C+B]   { HTML_B }
  680.     key [C+E_C+I]   { HTML_I }
  681.     key [C+E_C+T]   { HTML_TT }
  682.     
  683. # logical
  684.     
  685.     key [C+E_C+D]   { HTML_DFN }
  686.     key [C+E_C+E]   { HTML_EM }
  687.     key [C+E_C+O]   { HTML_CITE }
  688.     key [C+E_C+C]   { HTML_CODE }
  689.     key [C+E_C+K]   { HTML_KBD }
  690.     key [C+E_C+M]   { HTML_SAMP }
  691.     key [C+E_C+S]   { HTML_STRONG }
  692.     key [C+E_C+V]   { HTML_VAR }
  693.     
  694. # lists
  695.     
  696.     key [C+E_i]     { HTML_LI }
  697.     key [C+E_u]     { HTML_UL }
  698.     key [C+E_o]     { HTML_OL }
  699.     key [C+E_l]     { HTML_DL }
  700.     key [C+E_t]     { HTML_DT }
  701.     key [C+E_d]     { HTML_DD }
  702.     
  703. # tables
  704.     
  705.     key [C+E_A+T] { HTML_TABLE }
  706.     key [C+E_A+C] { HTML_CAPTION }
  707.     key [C+E_A+H] { HTML_TH }
  708.     key [C+E_A+R] { HTML_TR }
  709.     key [C+E_A+D] { HTML_TD }
  710.     
  711. # anchors    
  712.     
  713.     key [C+E_C+N]   { HTML_ANAME }
  714.     key [C+E_C+H]   { HTML_AHREF }
  715.     
  716.     key [C+E_C+G]   { HTML_IMG }
  717.     key [C+E_C+F]   { HTML_PRE }
  718.     key [C+E_G-Enter] { HTML_BR }
  719.     key [C+E_-]     { HTML_HR }
  720.     key [C+E_.]     { HTML_CENTER }
  721.     key [C+E_C+P]   { HTML_P }
  722.     
  723. # character escapes
  724.     
  725.     key [C+E_&]     { InsertString "&"; }
  726.     key [C+E_<]     { InsertString "<"; }
  727.     key [C+E_>]     { InsertString ">"; }
  728.     key [C+E_"]     { InsertString """; }   # hilit bug
  729. }
  730.  
  731. # make sure proper eventmap is used
  732. mode HTML { EventMap = 'HTML'; } #fold02
  733.  
  734. # FTE  #fold01
  735. eventmap FTE: PLAIN { #fold02
  736.     key       [Tab]     { LineIndent; LineTrim }
  737.     key       [G-Enter] { LineIndent; LineNew }
  738.     key       [{]       { SelfInsert; LineIndent }
  739.     key       [}]       { SelfInsert; LineIndent }
  740. }
  741.  
  742. # make sure proper eventmap is used
  743. mode FTE { EventMap = 'FTE'; } #fold02
  744.