1" Vim support file to define the default menus 2" You can also use this as a start for your own set of menus. 3" 4" Maintainer: Bram Moolenaar <[email protected]> 5" Last Change: 2004 Dec 04 6 7" Note that ":an" (short for ":anoremenu") is often used to make a menu work 8" in all modes and avoid side effects from mappings defined by the user. 9 10" Make sure the '<' and 'C' flags are not included in 'cpoptions', otherwise 11" <CR> would not be recognized. See ":help 'cpoptions'". 12let s:cpo_save = &cpo 13set cpo&vim 14 15" Avoid installing the menus twice 16if !exists("did_install_default_menus") 17let did_install_default_menus = 1 18 19 20if exists("v:lang") || &langmenu != "" 21 " Try to find a menu translation file for the current language. 22 if &langmenu != "" 23 if &langmenu =~ "none" 24 let s:lang = "" 25 else 26 let s:lang = &langmenu 27 endif 28 else 29 let s:lang = v:lang 30 endif 31 " A language name must be at least two characters, don't accept "C" 32 if strlen(s:lang) > 1 33 " When the language does not include the charset add 'encoding' 34 if s:lang =~ '^\a\a$\|^\a\a_\a\a$' 35 let s:lang = s:lang . '.' . &enc 36 endif 37 38 " We always use a lowercase name. 39 " Change "iso-8859" to "iso_8859" and "iso8859" to "iso_8859", some 40 " systems appear to use this. 41 " Change spaces to underscores. 42 let s:lang = substitute(tolower(s:lang), '\.iso-', ".iso_", "") 43 let s:lang = substitute(s:lang, '\.iso8859', ".iso_8859", "") 44 let s:lang = substitute(s:lang, " ", "_", "g") 45 " Remove "@euro", otherwise "LC_ALL=de_DE@euro gvim" will show English menus 46 let s:lang = substitute(s:lang, "@euro", "", "") 47 " Change "iso_8859-1" and "iso_8859-15" to "latin1", we always use the 48 " same menu file for them. 49 let s:lang = substitute(s:lang, 'iso_8859-15\=$', "latin1", "") 50 menutrans clear 51 exe "runtime! lang/menu_" . s:lang . ".vim" 52 53 if !exists("did_menu_trans") 54 " There is no exact match, try matching with a wildcard added 55 " (e.g. find menu_de_de.iso_8859-1.vim if s:lang == de_DE). 56 let s:lang = substitute(s:lang, '\.[^.]*', "", "") 57 exe "runtime! lang/menu_" . s:lang . "*.vim" 58 59 if !exists("did_menu_trans") && strlen($LANG) > 1 60 " On windows locale names are complicated, try using $LANG, it might 61 " have been set by set_init_1(). 62 exe "runtime! lang/menu_" . tolower($LANG) . "*.vim" 63 endif 64 endif 65 endif 66endif 67 68 69" Help menu 70an 9999.10 &Help.&Overview<Tab><F1> :help<CR> 71an 9999.20 &Help.&User\ Manual :help usr_toc<CR> 72an 9999.30 &Help.&How-to\ links :help how-to<CR> 73an <silent> 9999.40 &Help.&Find\.\.\. :call <SID>Helpfind()<CR> 74an 9999.45 &Help.-sep1- <Nop> 75an 9999.50 &Help.&Credits :help credits<CR> 76an 9999.60 &Help.Co&pying :help copying<CR> 77an 9999.70 &Help.&Sponsor/Register :help sponsor<CR> 78an 9999.70 &Help.O&rphans :help kcc<CR> 79an 9999.75 &Help.-sep2- <Nop> 80an 9999.80 &Help.&Version :version<CR> 81an 9999.90 &Help.&About :intro<CR> 82 83fun! s:Helpfind() 84 if !exists("g:menutrans_help_dialog") 85 let g:menutrans_help_dialog = "Enter a command or word to find help on:\n\nPrepend i_ for Input mode commands (e.g.: i_CTRL-X)\nPrepend c_ for command-line editing commands (e.g.: c_<Del>)\nPrepend ' for an option name (e.g.: 'shiftwidth')" 86 endif 87 let h = inputdialog(g:menutrans_help_dialog) 88 if h != "" 89 let v:errmsg = "" 90 silent! exe "help " . h 91 if v:errmsg != "" 92 echo v:errmsg 93 endif 94 endif 95endfun 96 97" File menu 98an 10.310 &File.&Open\.\.\.<Tab>:e :browse confirm e<CR> 99an 10.320 &File.Sp&lit-Open\.\.\.<Tab>:sp :browse sp<CR> 100an 10.325 &File.&New<Tab>:enew :confirm enew<CR> 101an <silent> 10.330 &File.&Close<Tab>:close 102 \ :if winheight(2) < 0 <Bar> 103 \ confirm enew <Bar> 104 \ else <Bar> 105 \ confirm close <Bar> 106 \ endif<CR> 107an 10.335 &File.-SEP1- <Nop> 108an <silent> 10.340 &File.&Save<Tab>:w :if expand("%") == ""<Bar>browse confirm w<Bar>else<Bar>confirm w<Bar>endif<CR> 109an 10.350 &File.Save\ &As\.\.\.<Tab>:sav :browse confirm saveas<CR> 110 111if has("diff") 112 an 10.400 &File.-SEP2- <Nop> 113 an 10.410 &File.Split\ &Diff\ with\.\.\. :browse vert diffsplit<CR> 114 an 10.420 &File.Split\ Patched\ &By\.\.\. :browse vert diffpatch<CR> 115endif 116 117if has("printer") 118 an 10.500 &File.-SEP3- <Nop> 119 an 10.510 &File.&Print :hardcopy<CR> 120 vunmenu &File.&Print 121 vnoremenu &File.&Print :hardcopy<CR> 122elseif has("unix") 123 an 10.500 &File.-SEP3- <Nop> 124 an 10.510 &File.&Print :w !lpr<CR> 125 vunmenu &File.&Print 126 vnoremenu &File.&Print :w !lpr<CR> 127endif 128an 10.600 &File.-SEP4- <Nop> 129an 10.610 &File.Sa&ve-Exit<Tab>:wqa :confirm wqa<CR> 130an 10.620 &File.E&xit<Tab>:qa :confirm qa<CR> 131 132" Pasting blockwise and linewise selections is not possible in Insert and 133" Visual mode without the +virtualedit feature. They are pasted as if they 134" were characterwise instead. Add to that some tricks to leave the cursor in 135" the right position, also for "gi". 136" Note: the same stuff appears in mswin.vim. 137if has("virtualedit") 138 nnoremap <silent> <script> <SID>Paste :call <SID>Paste()<CR> 139 func! <SID>Paste() 140 let ove = &ve 141 set ve=all 142 normal `^ 143 if @+ != '' 144 normal "+gP 145 endif 146 let c = col(".") 147 normal i 148 if col(".") < c " compensate for i<ESC> moving the cursor left 149 normal l 150 endif 151 let &ve = ove 152 endfunc 153else 154 nnoremap <silent> <script> <SID>Paste "=@+.'xy'<CR>gPFx"_2x 155endif 156 157" Use maps for items that are present both in Edit, Popup and Toolbar menu. 158if has("virtualedit") 159 vnoremap <script> <SID>vPaste "-c<Esc><SID>Paste 160 inoremap <script> <SID>iPaste <Esc><SID>Pastegi 161else 162 vnoremap <script> <SID>vPaste "-c<Esc>gix<Esc><SID>Paste"_x 163 inoremap <script> <SID>iPaste x<Esc><SID>Paste"_s 164endif 165 166func! <SID>SelectAll() 167 exe "norm gg" . (&slm == "" ? "VG" : "gH\<C-O>G") 168endfunc 169 170 171" Edit menu 172an 20.310 &Edit.&Undo<Tab>u u 173an 20.320 &Edit.&Redo<Tab>^R <C-R> 174an 20.330 &Edit.Rep&eat<Tab>\. . 175 176an 20.335 &Edit.-SEP1- <Nop> 177vnoremenu 20.340 &Edit.Cu&t<Tab>"+x "+x 178vnoremenu 20.350 &Edit.&Copy<Tab>"+y "+y 179cnoremenu 20.350 &Edit.&Copy<Tab>"+y <C-Y> 180nnoremenu 20.360 &Edit.&Paste<Tab>"+gP "+gP 181cnoremenu &Edit.&Paste<Tab>"+gP <C-R>+ 182vnoremenu <script> &Edit.&Paste<Tab>"+gP <SID>vPaste 183inoremenu <script> &Edit.&Paste<Tab>"+gP <SID>iPaste 184nnoremenu 20.370 &Edit.Put\ &Before<Tab>[p [p 185inoremenu &Edit.Put\ &Before<Tab>[p <C-O>[p 186nnoremenu 20.380 &Edit.Put\ &After<Tab>]p ]p 187inoremenu &Edit.Put\ &After<Tab>]p <C-O>]p 188if has("win32") || has("win16") 189 vnoremenu 20.390 &Edit.&Delete<Tab>x x 190endif 191noremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG :<C-U>call <SID>SelectAll()<CR> 192inoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-O>:call <SID>SelectAll()<CR> 193cnoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-U>call <SID>SelectAll()<CR> 194 195an 20.405 &Edit.-SEP2- <Nop> 196if has("win32") || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif") 197 an 20.410 &Edit.&Find\.\.\. :promptfind<CR> 198 vunmenu &Edit.&Find\.\.\. 199 vnoremenu &Edit.&Find\.\.\. y:promptfind <C-R>"<CR> 200 an 20.420 &Edit.Find\ and\ Rep&lace\.\.\. :promptrepl<CR> 201 vunmenu &Edit.Find\ and\ Rep&lace\.\.\. 202 vnoremenu &Edit.Find\ and\ Rep&lace\.\.\. y:promptrepl <C-R>"<CR> 203else 204 an 20.410 &Edit.&Find<Tab>/ / 205 an 20.420 &Edit.Find\ and\ Rep&lace<Tab>:%s :%s/ 206 vunmenu &Edit.Find\ and\ Rep&lace<Tab>:%s 207 vnoremenu &Edit.Find\ and\ Rep&lace<Tab>:s :s/ 208endif 209 210an 20.425 &Edit.-SEP3- <Nop> 211an 20.430 &Edit.Settings\ &Window :options<CR> 212 213" Edit/Global Settings 214an 20.440.100 &Edit.&Global\ Settings.Toggle\ Pattern\ &Highlight<Tab>:set\ hls! :set hls! hls?<CR> 215an 20.440.110 &Edit.&Global\ Settings.Toggle\ &Ignore-case<Tab>:set\ ic! :set ic! ic?<CR> 216an 20.440.110 &Edit.&Global\ Settings.Toggle\ &Showmatch<Tab>:set\ sm! :set sm! sm?<CR> 217 218an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 1\ :set so=1<CR> 219an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 2\ :set so=2<CR> 220an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 3\ :set so=3<CR> 221an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 4\ :set so=4<CR> 222an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 5\ :set so=5<CR> 223an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 7\ :set so=7<CR> 224an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 10\ :set so=10<CR> 225an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 100\ :set so=100<CR> 226 227an 20.440.130.40 &Edit.&Global\ Settings.&Virtual\ Edit.Never :set ve=<CR> 228an 20.440.130.50 &Edit.&Global\ Settings.&Virtual\ Edit.Block\ Selection :set ve=block<CR> 229an 20.440.130.60 &Edit.&Global\ Settings.&Virtual\ Edit.Insert\ mode :set ve=insert<CR> 230an 20.440.130.70 &Edit.&Global\ Settings.&Virtual\ Edit.Block\ and\ Insert :set ve=block,insert<CR> 231an 20.440.130.80 &Edit.&Global\ Settings.&Virtual\ Edit.Always :set ve=all<CR> 232an 20.440.140 &Edit.&Global\ Settings.Toggle\ Insert\ &Mode<Tab>:set\ im! :set im!<CR> 233an 20.440.145 &Edit.&Global\ Settings.Toggle\ Vi\ C&ompatible<Tab>:set\ cp! :set cp!<CR> 234an <silent> 20.440.150 &Edit.&Global\ Settings.Search\ &Path\.\.\. :call <SID>SearchP()<CR> 235an <silent> 20.440.160 &Edit.&Global\ Settings.Ta&g\ Files\.\.\. :call <SID>TagFiles()<CR> 236" 237" GUI options 238an 20.440.300 &Edit.&Global\ Settings.-SEP1- <Nop> 239an <silent> 20.440.310 &Edit.&Global\ Settings.Toggle\ &Toolbar :call <SID>ToggleGuiOption("T")<CR> 240an <silent> 20.440.320 &Edit.&Global\ Settings.Toggle\ &Bottom\ Scrollbar :call <SID>ToggleGuiOption("b")<CR> 241an <silent> 20.440.330 &Edit.&Global\ Settings.Toggle\ &Left\ Scrollbar :call <SID>ToggleGuiOption("l")<CR> 242an <silent> 20.440.340 &Edit.&Global\ Settings.Toggle\ &Right\ Scrollbar :call <SID>ToggleGuiOption("r")<CR> 243 244fun! s:SearchP() 245 if !exists("g:menutrans_path_dialog") 246 let g:menutrans_path_dialog = "Enter search path for files.\nSeparate directory names with a comma." 247 endif 248 let n = inputdialog(g:menutrans_path_dialog, substitute(&path, '\\ ', ' ', 'g')) 249 if n != "" 250 let &path = substitute(n, ' ', '\\ ', 'g') 251 endif 252endfun 253 254fun! s:TagFiles() 255 if !exists("g:menutrans_tags_dialog") 256 let g:menutrans_tags_dialog = "Enter names of tag files.\nSeparate the names with a comma." 257 endif 258 let n = inputdialog(g:menutrans_tags_dialog, substitute(&tags, '\\ ', ' ', 'g')) 259 if n != "" 260 let &tags = substitute(n, ' ', '\\ ', 'g') 261 endif 262endfun 263 264fun! s:ToggleGuiOption(option) 265 " If a:option is already set in guioptions, then we want to remove it 266 if match(&guioptions, "\\C" . a:option) > -1 267 exec "set go-=" . a:option 268 else 269 exec "set go+=" . a:option 270 endif 271endfun 272 273" Edit/File Settings 274 275" Boolean options 276an 20.440.100 &Edit.F&ile\ Settings.Toggle\ Line\ &Numbering<Tab>:set\ nu! :set nu! nu?<CR> 277an 20.440.110 &Edit.F&ile\ Settings.Toggle\ &List\ Mode<Tab>:set\ list! :set list! list?<CR> 278an 20.440.120 &Edit.F&ile\ Settings.Toggle\ Line\ &Wrap<Tab>:set\ wrap! :set wrap! wrap?<CR> 279an 20.440.130 &Edit.F&ile\ Settings.Toggle\ W&rap\ at\ word<Tab>:set\ lbr! :set lbr! lbr?<CR> 280an 20.440.160 &Edit.F&ile\ Settings.Toggle\ &expand-tab<Tab>:set\ et! :set et! et?<CR> 281an 20.440.170 &Edit.F&ile\ Settings.Toggle\ &auto-indent<Tab>:set\ ai! :set ai! ai?<CR> 282an 20.440.180 &Edit.F&ile\ Settings.Toggle\ &C-indenting<Tab>:set\ cin! :set cin! cin?<CR> 283 284" other options 285an 20.440.600 &Edit.F&ile\ Settings.-SEP2- <Nop> 286an 20.440.610.20 &Edit.F&ile\ Settings.&Shiftwidth.2 :set sw=2 sw?<CR> 287an 20.440.610.30 &Edit.F&ile\ Settings.&Shiftwidth.3 :set sw=3 sw?<CR> 288an 20.440.610.40 &Edit.F&ile\ Settings.&Shiftwidth.4 :set sw=4 sw?<CR> 289an 20.440.610.50 &Edit.F&ile\ Settings.&Shiftwidth.5 :set sw=5 sw?<CR> 290an 20.440.610.60 &Edit.F&ile\ Settings.&Shiftwidth.6 :set sw=6 sw?<CR> 291an 20.440.610.80 &Edit.F&ile\ Settings.&Shiftwidth.8 :set sw=8 sw?<CR> 292 293an 20.440.620.20 &Edit.F&ile\ Settings.Soft\ &Tabstop.2 :set sts=2 sts?<CR> 294an 20.440.620.30 &Edit.F&ile\ Settings.Soft\ &Tabstop.3 :set sts=3 sts?<CR> 295an 20.440.620.40 &Edit.F&ile\ Settings.Soft\ &Tabstop.4 :set sts=4 sts?<CR> 296an 20.440.620.50 &Edit.F&ile\ Settings.Soft\ &Tabstop.5 :set sts=5 sts?<CR> 297an 20.440.620.60 &Edit.F&ile\ Settings.Soft\ &Tabstop.6 :set sts=6 sts?<CR> 298an 20.440.620.80 &Edit.F&ile\ Settings.Soft\ &Tabstop.8 :set sts=8 sts?<CR> 299 300an <silent> 20.440.630 &Edit.F&ile\ Settings.Te&xt\ Width\.\.\. :call <SID>TextWidth()<CR> 301an <silent> 20.440.640 &Edit.F&ile\ Settings.&File\ Format\.\.\. :call <SID>FileFormat()<CR> 302fun! s:TextWidth() 303 if !exists("g:menutrans_textwidth_dialog") 304 let g:menutrans_textwidth_dialog = "Enter new text width (0 to disable formatting): " 305 endif 306 let n = inputdialog(g:menutrans_textwidth_dialog, &tw) 307 if n != "" 308 " remove leading zeros to avoid it being used as an octal number 309 let &tw = substitute(n, "^0*", "", "") 310 endif 311endfun 312 313fun! s:FileFormat() 314 if !exists("g:menutrans_fileformat_dialog") 315 let g:menutrans_fileformat_dialog = "Select format for writing the file" 316 endif 317 if !exists("g:menutrans_fileformat_choices") 318 let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Cancel" 319 endif 320 if &ff == "dos" 321 let def = 2 322 elseif &ff == "mac" 323 let def = 3 324 else 325 let def = 1 326 endif 327 let n = confirm(g:menutrans_fileformat_dialog, g:menutrans_fileformat_choices, def, "Question") 328 if n == 1 329 set ff=unix 330 elseif n == 2 331 set ff=dos 332 elseif n == 3 333 set ff=mac 334 endif 335endfun 336 337" Setup the Edit.Color Scheme submenu 338let s:n = globpath(&runtimepath, "colors/*.vim") 339let s:idx = 100 340while strlen(s:n) > 0 341 let s:i = stridx(s:n, "\n") 342 if s:i < 0 343 let s:name = s:n 344 let s:n = "" 345 else 346 let s:name = strpart(s:n, 0, s:i) 347 let s:n = strpart(s:n, s:i + 1, 19999) 348 endif 349 " Ignore case for VMS and windows 350 let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:]*\)\.vim', '\1', '') 351 exe "an 20.450." . s:idx . ' &Edit.C&olor\ Scheme.' . s:name . " :colors " . s:name . "<CR>" 352 unlet s:name 353 unlet s:i 354 let s:idx = s:idx + 10 355endwhile 356unlet s:n 357unlet s:idx 358 359" Setup the Edit.Keymap submenu 360if has("keymap") 361 let s:n = globpath(&runtimepath, "keymap/*.vim") 362 if s:n != "" 363 let s:idx = 100 364 an 20.460.90 &Edit.&Keymap.None :set keymap=<CR> 365 while strlen(s:n) > 0 366 let s:i = stridx(s:n, "\n") 367 if s:i < 0 368 let s:name = s:n 369 let s:n = "" 370 else 371 let s:name = strpart(s:n, 0, s:i) 372 let s:n = strpart(s:n, s:i + 1, 19999) 373 endif 374 " Ignore case for VMS and windows 375 let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:_]*\)\(_[0-9a-zA-Z-]*\)\=\.vim', '\1', '') 376 exe "an 20.460." . s:idx . ' &Edit.&Keymap.' . s:name . " :set keymap=" . s:name . "<CR>" 377 unlet s:name 378 unlet s:i 379 let s:idx = s:idx + 10 380 endwhile 381 unlet s:idx 382 endif 383 unlet s:n 384endif 385if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac") 386 an 20.470 &Edit.Select\ Fo&nt\.\.\. :set guifont=*<CR> 387endif 388 389" Programming menu 390if !exists("g:ctags_command") 391 if has("vms") 392 let g:ctags_command = "mc vim:ctags ." 393 else 394 let g:ctags_command = "ctags -R ." 395 endif 396endif 397 398an 40.300 &Tools.&Jump\ to\ this\ tag<Tab>g^] g<C-]> 399vunmenu &Tools.&Jump\ to\ this\ tag<Tab>g^] 400vnoremenu &Tools.&Jump\ to\ this\ tag<Tab>g^] g<C-]> 401an 40.310 &Tools.Jump\ &back<Tab>^T <C-T> 402an 40.320 &Tools.Build\ &Tags\ File :exe "!" . g:ctags_command<CR> 403 404" Tools.Fold Menu 405if has("folding") 406 an 40.330 &Tools.-SEP1- <Nop> 407 " open close folds 408 an 40.340.110 &Tools.&Folding.&Enable/Disable\ folds<Tab>zi zi 409 an 40.340.120 &Tools.&Folding.&View\ Cursor\ Line<Tab>zv zv 410 an 40.340.120 &Tools.&Folding.Vie&w\ Cursor\ Line\ only<Tab>zMzx zMzx 411 an 40.340.130 &Tools.&Folding.C&lose\ more\ folds<Tab>zm zm 412 an 40.340.140 &Tools.&Folding.&Close\ all\ folds<Tab>zM zM 413 an 40.340.150 &Tools.&Folding.O&pen\ more\ folds<Tab>zr zr 414 an 40.340.160 &Tools.&Folding.&Open\ all\ folds<Tab>zR zR 415 " fold method 416 an 40.340.200 &Tools.&Folding.-SEP1- <Nop> 417 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.M&anual :set fdm=manual<CR> 418 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.I&ndent :set fdm=indent<CR> 419 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.E&xpression :set fdm=expr<CR> 420 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.S&yntax :set fdm=syntax<CR> 421 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.&Diff :set fdm=diff<CR> 422 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.Ma&rker :set fdm=marker<CR> 423 " create and delete folds 424 vnoremenu 40.340.220 &Tools.&Folding.Create\ &Fold<Tab>zf zf 425 an 40.340.230 &Tools.&Folding.&Delete\ Fold<Tab>zd zd 426 an 40.340.240 &Tools.&Folding.Delete\ &All\ Folds<Tab>zD zD 427 " moving around in folds 428 an 40.340.300 &Tools.&Folding.-SEP2- <Nop> 429 an 40.340.310.10 &Tools.&Folding.Fold\ col&umn\ width.\ &0\ :set fdc=0<CR> 430 an 40.340.310.20 &Tools.&Folding.Fold\ col&umn\ width.\ &2\ :set fdc=2<CR> 431 an 40.340.310.30 &Tools.&Folding.Fold\ col&umn\ width.\ &3\ :set fdc=3<CR> 432 an 40.340.310.40 &Tools.&Folding.Fold\ col&umn\ width.\ &4\ :set fdc=4<CR> 433 an 40.340.310.50 &Tools.&Folding.Fold\ col&umn\ width.\ &5\ :set fdc=5<CR> 434 an 40.340.310.60 &Tools.&Folding.Fold\ col&umn\ width.\ &6\ :set fdc=6<CR> 435 an 40.340.310.70 &Tools.&Folding.Fold\ col&umn\ width.\ &7\ :set fdc=7<CR> 436 an 40.340.310.80 &Tools.&Folding.Fold\ col&umn\ width.\ &8\ :set fdc=8<CR> 437endif " has folding 438 439if has("diff") 440 an 40.350.100 &Tools.&Diff.&Update :diffupdate<CR> 441 an 40.350.110 &Tools.&Diff.&Get\ Block :diffget<CR> 442 vunmenu &Tools.&Diff.&Get\ Block 443 vnoremenu &Tools.&Diff.&Get\ Block :diffget<CR> 444 an 40.350.120 &Tools.&Diff.&Put\ Block :diffput<CR> 445 vunmenu &Tools.&Diff.&Put\ Block 446 vnoremenu &Tools.&Diff.&Put\ Block :diffput<CR> 447endif 448 449an 40.358 &Tools.-SEP2- <Nop> 450an 40.360 &Tools.&Make<Tab>:make :make<CR> 451an 40.370 &Tools.&List\ Errors<Tab>:cl :cl<CR> 452an 40.380 &Tools.L&ist\ Messages<Tab>:cl! :cl!<CR> 453an 40.390 &Tools.&Next\ Error<Tab>:cn :cn<CR> 454an 40.400 &Tools.&Previous\ Error<Tab>:cp :cp<CR> 455an 40.410 &Tools.&Older\ List<Tab>:cold :colder<CR> 456an 40.420 &Tools.N&ewer\ List<Tab>:cnew :cnewer<CR> 457an 40.430.50 &Tools.Error\ &Window.&Update<Tab>:cwin :cwin<CR> 458an 40.430.60 &Tools.Error\ &Window.&Open<Tab>:copen :copen<CR> 459an 40.430.70 &Tools.Error\ &Window.&Close<Tab>:cclose :cclose<CR> 460 461an 40.520 &Tools.-SEP3- <Nop> 462an <silent> 40.530 &Tools.&Convert\ to\ HEX<Tab>:%!xxd 463 \ :call <SID>XxdConv()<CR> 464an <silent> 40.540 &Tools.Conve&rt\ back<Tab>:%!xxd\ -r 465 \ :call <SID>XxdBack()<CR> 466 467" Use a function to do the conversion, so that it also works with 'insertmode' 468" set. 469func! s:XxdConv() 470 let mod = &mod 471 if has("vms") 472 %!mc vim:xxd 473 else 474 call s:XxdFind() 475 exe '%!"' . g:xxdprogram . '"' 476 endif 477 if getline(1) =~ "^0000000:" " only if it worked 478 set ft=xxd 479 endif 480 let &mod = mod 481endfun 482 483func! s:XxdBack() 484 let mod = &mod 485 if has("vms") 486 %!mc vim:xxd -r 487 else 488 call s:XxdFind() 489 exe '%!"' . g:xxdprogram . '" -r' 490 endif 491 set ft= 492 doautocmd filetypedetect BufReadPost 493 let &mod = mod 494endfun 495 496func! s:XxdFind() 497 if !exists("g:xxdprogram") 498 " On the PC xxd may not be in the path but in the install directory 499 if (has("win32") || has("dos32")) && !executable("xxd") 500 let g:xxdprogram = $VIMRUNTIME . (&shellslash ? '/' : '\') . "xxd.exe" 501 else 502 let g:xxdprogram = "xxd" 503 endif 504 endif 505endfun 506 507" Setup the Tools.Compiler submenu 508let s:n = globpath(&runtimepath, "compiler/*.vim") 509let s:idx = 100 510while strlen(s:n) > 0 511 let s:i = stridx(s:n, "\n") 512 if s:i < 0 513 let s:name = s:n 514 let s:n = "" 515 else 516 let s:name = strpart(s:n, 0, s:i) 517 let s:n = strpart(s:n, s:i + 1, 19999) 518 endif 519 " Ignore case for VMS and windows 520 let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:]*\)\.vim', '\1', '') 521 exe "an 30.440." . s:idx . ' &Tools.&Set\ Compiler.' . s:name . " :compiler " . s:name . "<CR>" 522 unlet s:name 523 unlet s:i 524 let s:idx = s:idx + 10 525endwhile 526unlet s:n 527unlet s:idx 528 529if !exists("no_buffers_menu") 530 531" Buffer list menu -- Setup functions & actions 532 533" wait with building the menu until after loading 'session' files. Makes 534" startup faster. 535let s:bmenu_wait = 1 536 537if !exists("bmenu_priority") 538 let bmenu_priority = 60 539endif 540 541func! s:BMAdd() 542 if s:bmenu_wait == 0 543 " when adding too many buffers, redraw in short format 544 if s:bmenu_count == &menuitems && s:bmenu_short == 0 545 call s:BMShow() 546 else 547 call <SID>BMFilename(expand("<afile>"), expand("<abuf>")) 548 let s:bmenu_count = s:bmenu_count + 1 549 endif 550 endif 551endfunc 552 553func! s:BMRemove() 554 if s:bmenu_wait == 0 555 let name = expand("<afile>") 556 if isdirectory(name) 557 return 558 endif 559 let munge = <SID>BMMunge(name, expand("<abuf>")) 560 561 if s:bmenu_short == 0 562 exe 'silent! aun &Buffers.' . munge 563 else 564 exe 'silent! aun &Buffers.' . <SID>BMHash2(munge) . munge 565 endif 566 let s:bmenu_count = s:bmenu_count - 1 567 endif 568endfunc 569 570" Create the buffer menu (delete an existing one first). 571func! s:BMShow(...) 572 let s:bmenu_wait = 1 573 let s:bmenu_short = 1 574 let s:bmenu_count = 0 575 " 576 " get new priority, if exists 577 if a:0 == 1 578 let g:bmenu_priority = a:1 579 endif 580 581 " remove old menu, if exists; keep one entry to avoid a torn off menu to 582 " disappear. 583 silent! unmenu &Buffers 584 exe 'noremenu ' . g:bmenu_priority . ".1 &Buffers.Dummy l" 585 silent! unmenu! &Buffers 586 587 " create new menu; set 'cpo' to include the <CR> 588 let cpo_save = &cpo 589 set cpo&vim 590 exe 'an <silent> ' . g:bmenu_priority . ".2 &Buffers.&Refresh\\ menu :call <SID>BMShow()<CR>" 591 exe 'an ' . g:bmenu_priority . ".4 &Buffers.&Delete :confirm bd<CR>" 592 exe 'an ' . g:bmenu_priority . ".6 &Buffers.&Alternate :confirm b #<CR>" 593 exe 'an ' . g:bmenu_priority . ".7 &Buffers.&Next :confirm bnext<CR>" 594 exe 'an ' . g:bmenu_priority . ".8 &Buffers.&Previous :confirm bprev<CR>" 595 exe 'an ' . g:bmenu_priority . ".9 &Buffers.-SEP- :" 596 let &cpo = cpo_save 597 unmenu &Buffers.Dummy 598 599 " figure out how many buffers there are 600 let buf = 1 601 while buf <= bufnr('$') 602 if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf) 603 \ && !getbufvar(buf, "&bufsecret") 604 let s:bmenu_count = s:bmenu_count + 1 605 endif 606 let buf = buf + 1 607 endwhile 608 if s:bmenu_count <= &menuitems 609 let s:bmenu_short = 0 610 endif 611 612 " iterate through buffer list, adding each buffer to the menu: 613 let buf = 1 614 while buf <= bufnr('$') 615 if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf) 616 \ && !getbufvar(buf, "&bufsecret") 617 call <SID>BMFilename(bufname(buf), buf) 618 endif 619 let buf = buf + 1 620 endwhile 621 let s:bmenu_wait = 0 622 aug buffer_list 623 au! 624 au BufCreate,BufFilePost * call <SID>BMAdd() 625 au BufDelete,BufFilePre * call <SID>BMRemove() 626 aug END 627endfunc 628 629func! s:BMHash(name) 630 " Make name all upper case, so that chars are between 32 and 96 631 let nm = substitute(a:name, ".*", '\U\0', "") 632 if has("ebcdic") 633 " HACK: Replace all non alphabetics with 'Z' 634 " Just to make it work for now. 635 let nm = substitute(nm, "[^A-Z]", 'Z', "g") 636 let sp = char2nr('A') - 1 637 else 638 let sp = char2nr(' ') 639 endif 640 " convert first six chars into a number for sorting: 641 return (char2nr(nm[0]) - sp) * 0x800000 + (char2nr(nm[1]) - sp) * 0x20000 + (char2nr(nm[2]) - sp) * 0x1000 + (char2nr(nm[3]) - sp) * 0x80 + (char2nr(nm[4]) - sp) * 0x20 + (char2nr(nm[5]) - sp) 642endfunc 643 644func! s:BMHash2(name) 645 let nm = substitute(a:name, ".", '\L\0', "") 646 " Not exactly right for EBCDIC... 647 if nm[0] < 'a' || nm[0] > 'z' 648 return '&others.' 649 elseif nm[0] <= 'd' 650 return '&abcd.' 651 elseif nm[0] <= 'h' 652 return '&efgh.' 653 elseif nm[0] <= 'l' 654 return '&ijkl.' 655 elseif nm[0] <= 'p' 656 return '&mnop.' 657 elseif nm[0] <= 't' 658 return '&qrst.' 659 else 660 return '&u-z.' 661 endif 662endfunc 663 664" insert a buffer name into the buffer menu: 665func! s:BMFilename(name, num) 666 if isdirectory(a:name) 667 return 668 endif 669 let munge = <SID>BMMunge(a:name, a:num) 670 let hash = <SID>BMHash(munge) 671 if s:bmenu_short == 0 672 let name = 'an ' . g:bmenu_priority . '.' . hash . ' &Buffers.' . munge 673 else 674 let name = 'an ' . g:bmenu_priority . '.' . hash . '.' . hash . ' &Buffers.' . <SID>BMHash2(munge) . munge 675 endif 676 " set 'cpo' to include the <CR> 677 let cpo_save = &cpo 678 set cpo&vim 679 exe name . ' :confirm b' . a:num . '<CR>' 680 let &cpo = cpo_save 681endfunc 682 683" Truncate a long path to fit it in a menu item. 684if !exists("g:bmenu_max_pathlen") 685 let g:bmenu_max_pathlen = 35 686endif 687func! s:BMTruncName(fname) 688 let name = a:fname 689 if g:bmenu_max_pathlen < 5 690 let name = "" 691 else 692 let len = strlen(name) 693 if len > g:bmenu_max_pathlen 694 let amountl = (g:bmenu_max_pathlen / 2) - 2 695 let amountr = g:bmenu_max_pathlen - amountl - 3 696 let pattern = '^\(.\{,' . amountl . '}\).\{-}\(.\{,' . amountr . '}\)$' 697 let left = substitute(name, pattern, '\1', '') 698 let right = substitute(name, pattern, '\2', '') 699 if strlen(left) + strlen(right) < len 700 let name = left . '...' . right 701 endif 702 endif 703 endif 704 return name 705endfunc 706 707func! s:BMMunge(fname, bnum) 708 let name = a:fname 709 if name == '' 710 if !exists("g:menutrans_no_file") 711 let g:menutrans_no_file = "[No file]" 712 endif 713 let name = g:menutrans_no_file 714 else 715 let name = fnamemodify(name, ':p:~') 716 endif 717 " detach file name and separate it out: 718 let name2 = fnamemodify(name, ':t') 719 if a:bnum >= 0 720 let name2 = name2 . ' (' . a:bnum . ')' 721 endif 722 let name = name2 . "\t" . <SID>BMTruncName(fnamemodify(name,':h')) 723 let name = escape(name, "\\. \t|") 724 let name = substitute(name, "&", "&&", "g") 725 let name = substitute(name, "\n", "^@", "g") 726 return name 727endfunc 728 729" When just starting Vim, load the buffer menu later 730if has("vim_starting") 731 augroup LoadBufferMenu 732 au! VimEnter * if !exists("no_buffers_menu") | call <SID>BMShow() | endif 733 au VimEnter * au! LoadBufferMenu 734 augroup END 735else 736 call <SID>BMShow() 737endif 738 739endif " !exists("no_buffers_menu") 740 741" Window menu 742an 70.300 &Window.&New<Tab>^Wn <C-W>n 743an 70.310 &Window.S&plit<Tab>^Ws <C-W>s 744an 70.320 &Window.Sp&lit\ To\ #<Tab>^W^^ <C-W><C-^> 745an 70.330 &Window.Split\ &Vertically<Tab>^Wv <C-W>v 746if has("vertsplit") 747 an <silent> 70.332 &Window.Split\ File\ E&xplorer :call MenuExplOpen()<CR> 748 if !exists("*MenuExplOpen") 749 fun MenuExplOpen() 750 if @% == "" 751 20vsp . 752 else 753 exe "20vsp " . expand("%:p:h") 754 endif 755 endfun 756 endif 757endif 758an 70.335 &Window.-SEP1- <Nop> 759an 70.340 &Window.&Close<Tab>^Wc :confirm close<CR> 760an 70.345 &Window.Close\ &Other(s)<Tab>^Wo :confirm only<CR> 761an 70.350 &Window.-SEP2- <Nop> 762an 70.355 &Window.Move\ &To.&Top<Tab>^WK <C-W>K 763an 70.355 &Window.Move\ &To.&Bottom<Tab>^WJ <C-W>J 764an 70.355 &Window.Move\ &To.&Left\ side<Tab>^WH <C-W>H 765an 70.355 &Window.Move\ &To.&Right\ side<Tab>^WL <C-W>L 766an 70.360 &Window.Rotate\ &Up<Tab>^WR <C-W>R 767an 70.362 &Window.Rotate\ &Down<Tab>^Wr <C-W>r 768an 70.365 &Window.-SEP3- <Nop> 769an 70.370 &Window.&Equal\ Size<Tab>^W= <C-W>= 770an 70.380 &Window.&Max\ Height<Tab>^W_ <C-W>_ 771an 70.390 &Window.M&in\ Height<Tab>^W1_ <C-W>1_ 772an 70.400 &Window.Max\ &Width<Tab>^W\| <C-W>\| 773an 70.410 &Window.Min\ Widt&h<Tab>^W1\| <C-W>1\| 774 775" The popup menu 776an 1.10 PopUp.&Undo u 777an 1.15 PopUp.-SEP1- <Nop> 778vnoremenu 1.20 PopUp.Cu&t "+x 779vnoremenu 1.30 PopUp.&Copy "+y 780cnoremenu 1.30 PopUp.&Copy <C-Y> 781nnoremenu 1.40 PopUp.&Paste "+gP 782cnoremenu 1.40 PopUp.&Paste <C-R>+ 783vnoremenu <script> 1.40 PopUp.&Paste <SID>vPaste 784inoremenu <script> 1.40 PopUp.&Paste <SID>iPaste 785vnoremenu 1.50 PopUp.&Delete x 786an 1.55 PopUp.-SEP2- <Nop> 787vnoremenu 1.60 PopUp.Select\ Blockwise <C-V> 788 789nnoremenu 1.70 PopUp.Select\ &Word vaw 790onoremenu 1.70 PopUp.Select\ &Word aw 791vnoremenu 1.70 PopUp.Select\ &Word <C-C>vaw 792inoremenu 1.70 PopUp.Select\ &Word <C-O>vaw 793cnoremenu 1.70 PopUp.Select\ &Word <C-C>vaw 794 795nnoremenu 1.73 PopUp.Select\ &Sentence vas 796onoremenu 1.73 PopUp.Select\ &Sentence as 797vnoremenu 1.73 PopUp.Select\ &Sentence <C-C>vas 798inoremenu 1.73 PopUp.Select\ &Sentence <C-O>vas 799cnoremenu 1.73 PopUp.Select\ &Sentence <C-C>vas 800 801nnoremenu 1.77 PopUp.Select\ Pa&ragraph vap 802onoremenu 1.77 PopUp.Select\ Pa&ragraph ap 803vnoremenu 1.77 PopUp.Select\ Pa&ragraph <C-C>vap 804inoremenu 1.77 PopUp.Select\ Pa&ragraph <C-O>vap 805cnoremenu 1.77 PopUp.Select\ Pa&ragraph <C-C>vap 806 807nnoremenu 1.80 PopUp.Select\ &Line V 808onoremenu 1.80 PopUp.Select\ &Line <C-C>V 809vnoremenu 1.80 PopUp.Select\ &Line <C-C>V 810inoremenu 1.80 PopUp.Select\ &Line <C-O>V 811cnoremenu 1.80 PopUp.Select\ &Line <C-C>V 812 813nnoremenu 1.90 PopUp.Select\ &Block <C-V> 814onoremenu 1.90 PopUp.Select\ &Block <C-C><C-V> 815vnoremenu 1.90 PopUp.Select\ &Block <C-C><C-V> 816inoremenu 1.90 PopUp.Select\ &Block <C-O><C-V> 817cnoremenu 1.90 PopUp.Select\ &Block <C-C><C-V> 818 819noremenu <script> <silent> 1.100 PopUp.Select\ &All :<C-U>call <SID>SelectAll()<CR> 820inoremenu <script> <silent> 1.100 PopUp.Select\ &All <C-O>:call <SID>SelectAll()<CR> 821cnoremenu <script> <silent> 1.100 PopUp.Select\ &All <C-U>call <SID>SelectAll()<CR> 822 823 824" The GUI toolbar (for MS-Windows and GTK) 825if has("toolbar") 826 an 1.10 ToolBar.Open :browse confirm e<CR> 827 an <silent> 1.20 ToolBar.Save :if expand("%") == ""<Bar>browse confirm w<Bar>else<Bar>confirm w<Bar>endif<CR> 828 an 1.30 ToolBar.SaveAll :browse confirm wa<CR> 829 830 if has("printer") 831 an 1.40 ToolBar.Print :hardcopy<CR> 832 vunmenu ToolBar.Print 833 vnoremenu ToolBar.Print :hardcopy<CR> 834 elseif has("unix") 835 an 1.40 ToolBar.Print :w !lpr<CR> 836 vunmenu ToolBar.Print 837 vnoremenu ToolBar.Print :w !lpr<CR> 838 endif 839 840 an 1.45 ToolBar.-sep1- <Nop> 841 an 1.50 ToolBar.Undo u 842 an 1.60 ToolBar.Redo <C-R> 843 844 an 1.65 ToolBar.-sep2- <Nop> 845 vnoremenu 1.70 ToolBar.Cut "+x 846 vnoremenu 1.80 ToolBar.Copy "+y 847 cnoremenu 1.80 ToolBar.Copy <C-Y> 848 nnoremenu 1.90 ToolBar.Paste "+gP 849 cnoremenu ToolBar.Paste <C-R>+ 850 vnoremenu <script> ToolBar.Paste <SID>vPaste 851 inoremenu <script> ToolBar.Paste <SID>iPaste 852 853 if !has("gui_athena") 854 an 1.95 ToolBar.-sep3- <Nop> 855 an 1.100 ToolBar.Find :promptfind<CR> 856 vunmenu ToolBar.Find 857 vnoremenu ToolBar.Find y:promptfind <C-R>"<CR> 858 an 1.110 ToolBar.FindNext n 859 an 1.120 ToolBar.FindPrev N 860 an 1.130 ToolBar.Replace :promptrepl<CR> 861 vunmenu ToolBar.Replace 862 vnoremenu ToolBar.Replace y:promptrepl <C-R>"<CR> 863 endif 864 865if 0 " disabled; These are in the Windows menu 866 an 1.135 ToolBar.-sep4- <Nop> 867 an 1.140 ToolBar.New <C-W>n 868 an 1.150 ToolBar.WinSplit <C-W>s 869 an 1.160 ToolBar.WinMax :resize 200<CR> 870 an 1.170 ToolBar.WinMin :resize 1<CR> 871 an 1.180 ToolBar.WinVSplit <C-W>v 872 an 1.190 ToolBar.WinMaxWidth <C-W>500> 873 an 1.200 ToolBar.WinMinWidth <C-W>1\| 874 an 1.210 ToolBar.WinClose :close<CR> 875endif 876 877 an 1.215 ToolBar.-sep5- <Nop> 878 an <silent> 1.220 ToolBar.LoadSesn :call <SID>LoadVimSesn()<CR> 879 an <silent> 1.230 ToolBar.SaveSesn :call <SID>SaveVimSesn()<CR> 880 an 1.240 ToolBar.RunScript :browse so<CR> 881 882 an 1.245 ToolBar.-sep6- <Nop> 883 an 1.250 ToolBar.Make :make<CR> 884 an 1.270 ToolBar.RunCtags :exe "!" . g:ctags_command<CR> 885 an 1.280 ToolBar.TagJump g<C-]> 886 887 an 1.295 ToolBar.-sep7- <Nop> 888 an 1.300 ToolBar.Help :help<CR> 889 an <silent> 1.310 ToolBar.FindHelp :call <SID>Helpfind()<CR> 890 891" Only set the tooltips here if not done in a language menu file 892if exists("*Do_toolbar_tmenu") 893 call Do_toolbar_tmenu() 894else 895 let did_toolbar_tmenu = 1 896 tmenu ToolBar.Open Open file 897 tmenu ToolBar.Save Save current file 898 tmenu ToolBar.SaveAll Save all files 899 tmenu ToolBar.Print Print 900 tmenu ToolBar.Undo Undo 901 tmenu ToolBar.Redo Redo 902 tmenu ToolBar.Cut Cut to clipboard 903 tmenu ToolBar.Copy Copy to clipboard 904 tmenu ToolBar.Paste Paste from Clipboard 905 if !has("gui_athena") 906 tmenu ToolBar.Find Find... 907 tmenu ToolBar.FindNext Find Next 908 tmenu ToolBar.FindPrev Find Previous 909 tmenu ToolBar.Replace Find / Replace... 910 endif 911 if 0 " disabled; These are in the Windows menu 912 tmenu ToolBar.New New Window 913 tmenu ToolBar.WinSplit Split Window 914 tmenu ToolBar.WinMax Maximise Window 915 tmenu ToolBar.WinMin Minimise Window 916 tmenu ToolBar.WinVSplit Split Window Vertically 917 tmenu ToolBar.WinMaxWidth Maximise Window Width 918 tmenu ToolBar.WinMinWidth Minimise Window Width 919 tmenu ToolBar.WinClose Close Window 920 endif 921 tmenu ToolBar.LoadSesn Load session 922 tmenu ToolBar.SaveSesn Save current session 923 tmenu ToolBar.RunScript Run a Vim Script 924 tmenu ToolBar.Make Make current project 925 tmenu ToolBar.RunCtags Build tags in current directory tree 926 tmenu ToolBar.TagJump Jump to tag under cursor 927 tmenu ToolBar.Help Vim Help 928 tmenu ToolBar.FindHelp Search Vim Help 929endif 930 931" Select a session to load; default to current session name if present 932fun! s:LoadVimSesn() 933 if strlen(v:this_session) > 0 934 let name = v:this_session 935 else 936 let name = "Session.vim" 937 endif 938 execute "browse so " . name 939endfun 940 941" Select a session to save; default to current session name if present 942fun! s:SaveVimSesn() 943 if strlen(v:this_session) == 0 944 let v:this_session = "Session.vim" 945 endif 946 execute "browse mksession! " . v:this_session 947endfun 948 949endif 950 951endif " !exists("did_install_default_menus") 952 953" Define these items always, so that syntax can be switched on when it wasn't. 954" But skip them when the Syntax menu was disabled by the user. 955if !exists("did_install_syntax_menu") 956 an 50.212 &Syntax.&Manual :syn manual<CR> 957 an 50.214 &Syntax.A&utomatic :syn on<CR> 958 an <silent> 50.216 &Syntax.on/off\ for\ &This\ file :call <SID>SynOnOff()<CR> 959 if !exists("*s:SynOnOff") 960 fun s:SynOnOff() 961 if has("syntax_items") 962 syn clear 963 else 964 if !exists("g:syntax_on") 965 syn manual 966 endif 967 set syn=ON 968 endif 969 endfun 970 endif 971endif 972 973 974" Install the Syntax menu only when filetype.vim has been loaded or when 975" manual syntax highlighting is enabled. 976" Avoid installing the Syntax menu twice. 977if (exists("did_load_filetypes") || exists("syntax_on")) 978 \ && !exists("did_install_syntax_menu") 979 let did_install_syntax_menu = 1 980 981" Skip setting up the individual syntax selection menus unless 982" do_syntax_sel_menu is defined (it takes quite a bit of time). 983if exists("do_syntax_sel_menu") 984 runtime! synmenu.vim 985else 986 an 50.10 &Syntax.&Show\ filetypes\ in\ menu :let do_syntax_sel_menu = 1<Bar>runtime! synmenu.vim<Bar>aunmenu &Syntax.&Show\ filetypes\ in\ menu<CR> 987 an 50.195 &Syntax.-SEP1- <Nop> 988endif 989 990an 50.210 &Syntax.&Off :syn off<CR> 991an 50.700 &Syntax.-SEP3- <Nop> 992an 50.710 &Syntax.Co&lor\ test :sp $VIMRUNTIME/syntax/colortest.vim<Bar>so %<CR> 993an 50.720 &Syntax.&Highlight\ test :runtime syntax/hitest.vim<CR> 994an 50.730 &Syntax.&Convert\ to\ HTML :runtime syntax/2html.vim<CR> 995 996endif " !exists("did_install_syntax_menu") 997 998" Restore the previous value of 'cpoptions'. 999let &cpo = s:cpo_save 1000unlet s:cpo_save 1001 1002" vim: set sw=2 : 1003