1 " Vim support file to define the default menus
2 " You can also use this as a start for your own set of menus.
4 " Maintainer: Bram Moolenaar <Bram@vim.org>
5 " Last Change: 2009 Aug 29
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.
10 " Make sure the '<' and 'C' flags are not included in 'cpoptions', otherwise
11 " <CR> would not be recognized. See ":help 'cpoptions'".
15 " Avoid installing the menus twice
16 if !exists("did_install_default_menus")
17 let did_install_default_menus = 1
20 if (exists("v:lang") || &langmenu != "")
21 " Try to find a menu translation file for the current language.
23 if &langmenu =~ "none"
26 let s:lang = &langmenu
31 " A language name must be at least two characters, don't accept "C"
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
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", "")
51 exe "runtime! lang/menu_" . s:lang . ".vim"
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 . "[^a-z]*vim"
59 if !exists("did_menu_trans") && strlen($LANG) > 1 && s:lang !~ '^en_us'
60 " On windows locale names are complicated, try using $LANG, it might
61 " have been set by set_init_1(). But don't do this for "en" or "en_us".
62 " But don't match "slovak" when $LANG is "sl".
63 exe "runtime! lang/menu_" . tolower($LANG) . "[^a-z]*vim"
70 " MacVim Window menu (should be next to Help so give it a high priority)
72 an <silent> 9998.300 Window.Minimize <Nop>
73 an <silent> 9998.301 Window.Minimize\ All <Nop>
74 an <silent> 9998.310 Window.Zoom <Nop>
75 an <silent> 9998.311 Window.Zoom\ All <Nop>
76 an <silent> 9998.320 Window.Toggle\ Full\ Screen\ Mode :set invfullscreen<CR>
77 an 9998.330 Window.-SEP1- <Nop>
78 " TODO! Grey out if no tabs are visible.
79 an <silent> 9998.340 Window.Select\ Next\ Tab :tabnext<CR>
80 an <silent> 9998.350 Window.Select\ Previous\ Tab :tabprevious<CR>
81 an 9998.360 Window.-SEP2- <Nop>
82 an <silent> 9998.370 Window.Bring\ All\ To\ Front <Nop>
87 an 9999.1 &Help.MacVim\ Help :h gui_mac<CR>
88 an <silent> 9999.2 Help.MacVim\ Website <Nop>
89 an 9999.3 &Help.-sep0- <Nop>
91 an 9999.10 &Help.&Overview<Tab><F1> :help<CR>
92 an 9999.20 &Help.&User\ Manual :help usr_toc<CR>
93 an 9999.30 &Help.&How-to\ links :help how-to<CR>
94 an <silent> 9999.40 &Help.&Find\.\.\. :call <SID>Helpfind()<CR>
95 an 9999.45 &Help.-sep1- <Nop>
96 an 9999.50 &Help.&Credits :help credits<CR>
97 an 9999.60 &Help.Co&pying :help copying<CR>
98 an 9999.70 &Help.&Sponsor/Register :help sponsor<CR>
99 an 9999.70 &Help.O&rphans :help kcc<CR>
100 an 9999.75 &Help.-sep2- <Nop>
101 an 9999.80 &Help.&Version :version<CR>
102 an 9999.90 &Help.&About :intro<CR>
105 if !exists("g:menutrans_help_dialog")
106 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')"
108 let h = inputdialog(g:menutrans_help_dialog)
111 silent! exe "help " . h
120 an <silent> 10.290 &File.New\ Window <Nop>
121 an 10.295 &File.New\ Tab :tabnew<CR>
122 an <silent> 10.310 &File.Open\.\.\. <Nop>
123 an <silent> 10.325 &File.Open\ Recent <Nop>
124 an 10.328 &File.-SEP0- <Nop>
125 an <silent> 10.330 &File.Close\ Window<Tab>:qa :conf qa<CR>
126 an <silent> 10.332 &File.Close :conf q<CR>
127 an <silent> 10.341 &File.Save\ All :browse conf wa<CR>
128 an 10.350 &File.Save\ As\.\.\.<Tab>:sav :browse confirm saveas<CR>
131 if !has("gui_macvim")
132 an 10.310 &File.&Open\.\.\.<Tab>:e :browse confirm e<CR>
134 an 10.320 &File.Sp&lit-Open\.\.\.<Tab>:sp :browse sp<CR>
135 an 10.320 &File.Open\ Tab\.\.\.<Tab>:tabnew :browse tabnew<CR>
136 if !has("gui_macvim")
137 an 10.325 &File.&New<Tab>:enew :confirm enew<CR>
138 an <silent> 10.330 &File.&Close<Tab>:close
139 \ :if winheight(2) < 0 <Bar>
142 \ confirm close <Bar>
145 an 10.335 &File.-SEP1- <Nop>
146 an <silent> 10.340 &File.&Save<Tab>:w :if expand("%") == ""<Bar>browse confirm w<Bar>else<Bar>confirm w<Bar>endif<CR>
147 an 10.350 &File.Save\ &As\.\.\.<Tab>:sav :browse confirm saveas<CR>
150 an 10.400 &File.-SEP2- <Nop>
151 an 10.410 &File.Split\ &Diff\ with\.\.\. :browse vert diffsplit<CR>
152 an 10.420 &File.Split\ Patched\ &By\.\.\. :browse vert diffpatch<CR>
156 an 10.500 &File.-SEP3- <Nop>
157 an 10.510 &File.&Print :hardcopy<CR>
159 vnoremenu &File.&Print :hardcopy<CR>
161 an 10.500 &File.-SEP3- <Nop>
162 an 10.510 &File.&Print :w !lpr<CR>
164 vnoremenu &File.&Print :w !lpr<CR>
166 if !has("gui_macvim")
167 an 10.600 &File.-SEP4- <Nop>
168 an 10.610 &File.Sa&ve-Exit<Tab>:wqa :confirm wqa<CR>
169 an 10.620 &File.E&xit<Tab>:qa :confirm qa<CR>
172 func! <SID>SelectAll()
173 exe "norm gg" . (&slm == "" ? "VG" : "gH\<C-O>G")
176 func! s:FnameEscape(fname)
177 if exists('*fnameescape')
178 return fnameescape(a:fname)
180 return escape(a:fname, " \t\n*?[{`$\\%#'\"|!<")
184 an 20.310 &Edit.&Undo<Tab>u u
185 an 20.320 &Edit.&Redo<Tab>^R <C-R>
186 an 20.330 &Edit.Rep&eat<Tab>\. .
188 an 20.335 &Edit.-SEP1- <Nop>
189 vnoremenu 20.340 &Edit.Cu&t<Tab>"+x "+x
190 vnoremenu 20.350 &Edit.&Copy<Tab>"+y "+y
191 cnoremenu 20.350 &Edit.&Copy<Tab>"+y <C-Y>
192 nnoremenu 20.360 &Edit.&Paste<Tab>"+gP "+gP
193 cnoremenu &Edit.&Paste<Tab>"+gP <C-R>+
194 exe 'vnoremenu <script> &Edit.&Paste<Tab>"+gP ' . paste#paste_cmd['v']
195 exe 'inoremenu <script> &Edit.&Paste<Tab>"+gP ' . paste#paste_cmd['i']
196 nnoremenu 20.370 &Edit.Put\ &Before<Tab>[p [p
197 inoremenu &Edit.Put\ &Before<Tab>[p <C-O>[p
198 nnoremenu 20.380 &Edit.Put\ &After<Tab>]p ]p
199 inoremenu &Edit.Put\ &After<Tab>]p <C-O>]p
200 if has("win32") || has("win16")
201 vnoremenu 20.390 &Edit.&Delete<Tab>x x
203 noremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG :<C-U>call <SID>SelectAll()<CR>
204 inoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-O>:call <SID>SelectAll()<CR>
205 cnoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-U>call <SID>SelectAll()<CR>
207 an 20.405 &Edit.-SEP2- <Nop>
208 if has("win32") || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
209 an 20.410 &Edit.&Find\.\.\. :promptfind<CR>
210 vunmenu &Edit.&Find\.\.\.
211 vnoremenu <silent> &Edit.&Find\.\.\. y:promptfind <C-R>=<SID>FixFText()<CR><CR>
212 an 20.420 &Edit.Find\ and\ Rep&lace\.\.\. :promptrepl<CR>
213 vunmenu &Edit.Find\ and\ Rep&lace\.\.\.
214 vnoremenu <silent> &Edit.Find\ and\ Rep&lace\.\.\. y:promptrepl <C-R>=<SID>FixFText()<CR><CR>
215 elseif has("gui_macvim")
216 an <silent> 20.410.10 &Edit.Find.Find\.\.\. :promptfind<CR>
217 vunmenu &Edit.Find.Find\.\.\.
218 vnoremenu <silent> &Edit.Find.Find\.\.\. y:promptfind <C-R>=<SID>FixFText()<CR><CR>
219 an 20.410.20 &Edit.Find.Find\ Next <Nop>
220 an 20.410.30 &Edit.Find.Find\ Previous <Nop>
221 vmenu 20.410.35 &Edit.Find.Use\ Selection\ for\ Find y:let @/=@"<CR>:<BS>
223 an 20.410 &Edit.&Find<Tab>/ /
224 an 20.420 &Edit.Find\ and\ Rep&lace<Tab>:%s :%s/
225 vunmenu &Edit.Find\ and\ Rep&lace<Tab>:%s
226 vnoremenu &Edit.Find\ and\ Rep&lace<Tab>:s :s/
229 an 20.425 &Edit.-SEP3- <Nop>
230 an 20.430 &Edit.Settings\ &Window :options<CR>
231 an 20.435 &Edit.Startup\ &Settings :call <SID>EditVimrc()<CR>
236 elseif has("win32") || has("dos32") || has("dos16") || has("os2")
238 let fname = $HOME . "/_vimrc"
240 let fname = $VIM . "/_vimrc"
243 let fname = "s:.vimrc"
245 let fname = $HOME . "/.vimrc"
247 let fname = s:FnameEscape(fname)
256 " Fix text in nameless register to be used with :promptfind.
257 return substitute(@", "[\r\n]", '\\n', 'g')
260 " Edit/Global Settings
261 an 20.440.100 &Edit.&Global\ Settings.Toggle\ Pattern\ &Highlight<Tab>:set\ hls! :set hls! hls?<CR>
262 an 20.440.110 &Edit.&Global\ Settings.Toggle\ &Ignore-case<Tab>:set\ ic! :set ic! ic?<CR>
263 an 20.440.110 &Edit.&Global\ Settings.Toggle\ &Showmatch<Tab>:set\ sm! :set sm! sm?<CR>
265 an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 1\ :set so=1<CR>
266 an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 2\ :set so=2<CR>
267 an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 3\ :set so=3<CR>
268 an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 4\ :set so=4<CR>
269 an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 5\ :set so=5<CR>
270 an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 7\ :set so=7<CR>
271 an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 10\ :set so=10<CR>
272 an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 100\ :set so=100<CR>
274 an 20.440.130.40 &Edit.&Global\ Settings.&Virtual\ Edit.Never :set ve=<CR>
275 an 20.440.130.50 &Edit.&Global\ Settings.&Virtual\ Edit.Block\ Selection :set ve=block<CR>
276 an 20.440.130.60 &Edit.&Global\ Settings.&Virtual\ Edit.Insert\ mode :set ve=insert<CR>
277 an 20.440.130.70 &Edit.&Global\ Settings.&Virtual\ Edit.Block\ and\ Insert :set ve=block,insert<CR>
278 an 20.440.130.80 &Edit.&Global\ Settings.&Virtual\ Edit.Always :set ve=all<CR>
279 an 20.440.140 &Edit.&Global\ Settings.Toggle\ Insert\ &Mode<Tab>:set\ im! :set im!<CR>
280 an 20.440.145 &Edit.&Global\ Settings.Toggle\ Vi\ C&ompatible<Tab>:set\ cp! :set cp!<CR>
281 an <silent> 20.440.150 &Edit.&Global\ Settings.Search\ &Path\.\.\. :call <SID>SearchP()<CR>
282 an <silent> 20.440.160 &Edit.&Global\ Settings.Ta&g\ Files\.\.\. :call <SID>TagFiles()<CR>
285 an 20.440.300 &Edit.&Global\ Settings.-SEP1- <Nop>
286 an <silent> 20.440.310 &Edit.&Global\ Settings.Toggle\ &Toolbar :call <SID>ToggleGuiOption("T")<CR>
287 an <silent> 20.440.320 &Edit.&Global\ Settings.Toggle\ &Bottom\ Scrollbar :call <SID>ToggleGuiOption("b")<CR>
288 an <silent> 20.440.330 &Edit.&Global\ Settings.Toggle\ &Left\ Scrollbar :call <SID>ToggleGuiOption("l")<CR>
289 an <silent> 20.440.340 &Edit.&Global\ Settings.Toggle\ &Right\ Scrollbar :call <SID>ToggleGuiOption("r")<CR>
292 if !exists("g:menutrans_path_dialog")
293 let g:menutrans_path_dialog = "Enter search path for files.\nSeparate directory names with a comma."
295 let n = inputdialog(g:menutrans_path_dialog, substitute(&path, '\\ ', ' ', 'g'))
297 let &path = substitute(n, ' ', '\\ ', 'g')
302 if !exists("g:menutrans_tags_dialog")
303 let g:menutrans_tags_dialog = "Enter names of tag files.\nSeparate the names with a comma."
305 let n = inputdialog(g:menutrans_tags_dialog, substitute(&tags, '\\ ', ' ', 'g'))
307 let &tags = substitute(n, ' ', '\\ ', 'g')
311 fun! s:ToggleGuiOption(option)
312 " If a:option is already set in guioptions, then we want to remove it
313 if match(&guioptions, "\\C" . a:option) > -1
314 exec "set go-=" . a:option
316 exec "set go+=" . a:option
323 an 20.440.100 &Edit.F&ile\ Settings.Toggle\ Line\ &Numbering<Tab>:set\ nu! :set nu! nu?<CR>
324 an 20.440.110 &Edit.F&ile\ Settings.Toggle\ &List\ Mode<Tab>:set\ list! :set list! list?<CR>
325 an 20.440.120 &Edit.F&ile\ Settings.Toggle\ Line\ &Wrap<Tab>:set\ wrap! :set wrap! wrap?<CR>
326 an 20.440.130 &Edit.F&ile\ Settings.Toggle\ W&rap\ at\ word<Tab>:set\ lbr! :set lbr! lbr?<CR>
327 an 20.440.160 &Edit.F&ile\ Settings.Toggle\ &expand-tab<Tab>:set\ et! :set et! et?<CR>
328 an 20.440.170 &Edit.F&ile\ Settings.Toggle\ &auto-indent<Tab>:set\ ai! :set ai! ai?<CR>
329 an 20.440.180 &Edit.F&ile\ Settings.Toggle\ &C-indenting<Tab>:set\ cin! :set cin! cin?<CR>
332 an 20.440.600 &Edit.F&ile\ Settings.-SEP2- <Nop>
333 an 20.440.610.20 &Edit.F&ile\ Settings.&Shiftwidth.2 :set sw=2 sw?<CR>
334 an 20.440.610.30 &Edit.F&ile\ Settings.&Shiftwidth.3 :set sw=3 sw?<CR>
335 an 20.440.610.40 &Edit.F&ile\ Settings.&Shiftwidth.4 :set sw=4 sw?<CR>
336 an 20.440.610.50 &Edit.F&ile\ Settings.&Shiftwidth.5 :set sw=5 sw?<CR>
337 an 20.440.610.60 &Edit.F&ile\ Settings.&Shiftwidth.6 :set sw=6 sw?<CR>
338 an 20.440.610.80 &Edit.F&ile\ Settings.&Shiftwidth.8 :set sw=8 sw?<CR>
340 an 20.440.620.20 &Edit.F&ile\ Settings.Soft\ &Tabstop.2 :set sts=2 sts?<CR>
341 an 20.440.620.30 &Edit.F&ile\ Settings.Soft\ &Tabstop.3 :set sts=3 sts?<CR>
342 an 20.440.620.40 &Edit.F&ile\ Settings.Soft\ &Tabstop.4 :set sts=4 sts?<CR>
343 an 20.440.620.50 &Edit.F&ile\ Settings.Soft\ &Tabstop.5 :set sts=5 sts?<CR>
344 an 20.440.620.60 &Edit.F&ile\ Settings.Soft\ &Tabstop.6 :set sts=6 sts?<CR>
345 an 20.440.620.80 &Edit.F&ile\ Settings.Soft\ &Tabstop.8 :set sts=8 sts?<CR>
347 an <silent> 20.440.630 &Edit.F&ile\ Settings.Te&xt\ Width\.\.\. :call <SID>TextWidth()<CR>
348 an <silent> 20.440.640 &Edit.F&ile\ Settings.&File\ Format\.\.\. :call <SID>FileFormat()<CR>
350 if !exists("g:menutrans_textwidth_dialog")
351 let g:menutrans_textwidth_dialog = "Enter new text width (0 to disable formatting): "
353 let n = inputdialog(g:menutrans_textwidth_dialog, &tw)
355 " remove leading zeros to avoid it being used as an octal number
356 let &tw = substitute(n, "^0*", "", "")
361 if !exists("g:menutrans_fileformat_dialog")
362 let g:menutrans_fileformat_dialog = "Select format for writing the file"
364 if !exists("g:menutrans_fileformat_choices")
365 let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Cancel"
374 let n = confirm(g:menutrans_fileformat_dialog, g:menutrans_fileformat_choices, def, "Question")
384 " Setup the Edit.Color Scheme submenu
385 let s:n = globpath(&runtimepath, "colors/*.vim")
387 while strlen(s:n) > 0
388 let s:i = stridx(s:n, "\n")
393 let s:name = strpart(s:n, 0, s:i)
394 let s:n = strpart(s:n, s:i + 1, 19999)
396 " Ignore case for VMS and windows
397 let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:]*\)\.vim', '\1', '')
398 exe "an 20.450." . s:idx . ' &Edit.C&olor\ Scheme.' . s:name . " :colors " . s:name . "<CR>"
401 let s:idx = s:idx + 10
406 " Setup the Edit.Keymap submenu
408 let s:n = globpath(&runtimepath, "keymap/*.vim")
411 an 20.460.90 &Edit.&Keymap.None :set keymap=<CR>
412 while strlen(s:n) > 0
413 let s:i = stridx(s:n, "\n")
418 let s:name = strpart(s:n, 0, s:i)
419 let s:n = strpart(s:n, s:i + 1, 19999)
421 " Ignore case for VMS and windows
422 let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:_]*\)\(_[0-9a-zA-Z-]*\)\=\.vim', '\1', '')
423 exe "an 20.460." . s:idx . ' &Edit.&Keymap.' . s:name . " :set keymap=" . s:name . "<CR>"
426 let s:idx = s:idx + 10
432 if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
433 an 20.470 &Edit.Select\ Fo&nt\.\.\. :set guifont=*<CR>
434 elseif has("gui_macvim")
435 an 20.470 &Edit.-SEP4- <Nop>
436 an 20.475.10 &Edit.Font.Show\ Fonts <Nop>
437 an 20.475.20 &Edit.Font.-SEP5- <Nop>
438 an 20.475.30 &Edit.Font.Bigger <Nop>
439 an 20.475.40 &Edit.Font.Smaller <Nop>
440 an 20.480 &Edit.Special\ Characters\.\.\. <Nop>
444 if !exists("g:ctags_command")
446 let g:ctags_command = "mc vim:ctags *.*"
448 let g:ctags_command = "ctags -R ."
452 an 40.300 &Tools.&Jump\ to\ this\ tag<Tab>g^] g<C-]>
453 vunmenu &Tools.&Jump\ to\ this\ tag<Tab>g^]
454 vnoremenu &Tools.&Jump\ to\ this\ tag<Tab>g^] g<C-]>
455 an 40.310 &Tools.Jump\ &back<Tab>^T <C-T>
456 an 40.320 &Tools.Build\ &Tags\ File :exe "!" . g:ctags_command<CR>
458 if has("folding") || has("spell")
459 an 40.330 &Tools.-SEP1- <Nop>
462 " Tools.Spelling Menu
464 an 40.335.110 &Tools.&Spelling.&Spell\ Check\ On :set spell<CR>
465 an 40.335.120 &Tools.&Spelling.Spell\ Check\ &Off :set nospell<CR>
466 an 40.335.130 &Tools.&Spelling.To\ &Next\ error<Tab>]s ]s
467 an 40.335.130 &Tools.&Spelling.To\ &Previous\ error<Tab>[s [s
468 an 40.335.140 &Tools.&Spelling.Suggest\ &Corrections<Tab>z= z=
469 an 40.335.150 &Tools.&Spelling.&Repeat\ correction<Tab>:spellrepall :spellrepall<CR>
470 an 40.335.200 &Tools.&Spelling.-SEP1- <Nop>
471 an 40.335.210 &Tools.&Spelling.Set\ language\ to\ "en" :set spl=en spell<CR>
472 an 40.335.220 &Tools.&Spelling.Set\ language\ to\ "en_au" :set spl=en_au spell<CR>
473 an 40.335.230 &Tools.&Spelling.Set\ language\ to\ "en_ca" :set spl=en_ca spell<CR>
474 an 40.335.240 &Tools.&Spelling.Set\ language\ to\ "en_gb" :set spl=en_gb spell<CR>
475 an 40.335.250 &Tools.&Spelling.Set\ language\ to\ "en_nz" :set spl=en_nz spell<CR>
476 an 40.335.260 &Tools.&Spelling.Set\ language\ to\ "en_us" :set spl=en_us spell<CR>
477 an <silent> 40.335.270 &Tools.&Spelling.&Find\ More\ Languages :call <SID>SpellLang()<CR>
479 let s:undo_spellang = ['aun &Tools.&Spelling.&Find\ More\ Languages']
481 for cmd in s:undo_spellang
484 let s:undo_spellang = []
486 if &enc == "iso-8859-15"
493 let s = globpath(&rtp, "spell/*." . enc . ".spl")
496 for f in split(s, "\n")
497 let nm = substitute(f, '.*spell[/\\]\(..\)\.[^/\\]*\.spl', '\1', "")
498 if nm != "en" && nm !~ '/'
500 let menuname = '&Tools.&Spelling.Set\ language\ to\ "' . nm . '"'
501 exe 'an 40.335.' . n . ' ' . menuname . ' :set spl=' . nm . ' spell<CR>'
502 let s:undo_spellang += ['aun ' . menuname]
508 echomsg "Could not find other spell files"
510 echomsg "Found spell file " . nm
512 echomsg "Found " . found . " more spell files"
514 " Need to redo this when 'encoding' is changed.
516 au! EncodingChanged * call <SID>SpellLang()
525 an 40.340.110 &Tools.&Folding.&Enable/Disable\ folds<Tab>zi zi
526 an 40.340.120 &Tools.&Folding.&View\ Cursor\ Line<Tab>zv zv
527 an 40.340.120 &Tools.&Folding.Vie&w\ Cursor\ Line\ only<Tab>zMzx zMzx
528 an 40.340.130 &Tools.&Folding.C&lose\ more\ folds<Tab>zm zm
529 an 40.340.140 &Tools.&Folding.&Close\ all\ folds<Tab>zM zM
530 an 40.340.150 &Tools.&Folding.O&pen\ more\ folds<Tab>zr zr
531 an 40.340.160 &Tools.&Folding.&Open\ all\ folds<Tab>zR zR
533 an 40.340.200 &Tools.&Folding.-SEP1- <Nop>
534 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.M&anual :set fdm=manual<CR>
535 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.I&ndent :set fdm=indent<CR>
536 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.E&xpression :set fdm=expr<CR>
537 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.S&yntax :set fdm=syntax<CR>
538 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.&Diff :set fdm=diff<CR>
539 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.Ma&rker :set fdm=marker<CR>
540 " create and delete folds
541 vnoremenu 40.340.220 &Tools.&Folding.Create\ &Fold<Tab>zf zf
542 an 40.340.230 &Tools.&Folding.&Delete\ Fold<Tab>zd zd
543 an 40.340.240 &Tools.&Folding.Delete\ &All\ Folds<Tab>zD zD
544 " moving around in folds
545 an 40.340.300 &Tools.&Folding.-SEP2- <Nop>
546 an 40.340.310.10 &Tools.&Folding.Fold\ col&umn\ width.\ &0\ :set fdc=0<CR>
547 an 40.340.310.20 &Tools.&Folding.Fold\ col&umn\ width.\ &2\ :set fdc=2<CR>
548 an 40.340.310.30 &Tools.&Folding.Fold\ col&umn\ width.\ &3\ :set fdc=3<CR>
549 an 40.340.310.40 &Tools.&Folding.Fold\ col&umn\ width.\ &4\ :set fdc=4<CR>
550 an 40.340.310.50 &Tools.&Folding.Fold\ col&umn\ width.\ &5\ :set fdc=5<CR>
551 an 40.340.310.60 &Tools.&Folding.Fold\ col&umn\ width.\ &6\ :set fdc=6<CR>
552 an 40.340.310.70 &Tools.&Folding.Fold\ col&umn\ width.\ &7\ :set fdc=7<CR>
553 an 40.340.310.80 &Tools.&Folding.Fold\ col&umn\ width.\ &8\ :set fdc=8<CR>
557 an 40.350.100 &Tools.&Diff.&Update :diffupdate<CR>
558 an 40.350.110 &Tools.&Diff.&Get\ Block :diffget<CR>
559 vunmenu &Tools.&Diff.&Get\ Block
560 vnoremenu &Tools.&Diff.&Get\ Block :diffget<CR>
561 an 40.350.120 &Tools.&Diff.&Put\ Block :diffput<CR>
562 vunmenu &Tools.&Diff.&Put\ Block
563 vnoremenu &Tools.&Diff.&Put\ Block :diffput<CR>
566 an 40.358 &Tools.-SEP2- <Nop>
567 an 40.360 &Tools.&Make<Tab>:make :make<CR>
568 an 40.370 &Tools.&List\ Errors<Tab>:cl :cl<CR>
569 an 40.380 &Tools.L&ist\ Messages<Tab>:cl! :cl!<CR>
570 an 40.390 &Tools.&Next\ Error<Tab>:cn :cn<CR>
571 an 40.400 &Tools.&Previous\ Error<Tab>:cp :cp<CR>
572 an 40.410 &Tools.&Older\ List<Tab>:cold :colder<CR>
573 an 40.420 &Tools.N&ewer\ List<Tab>:cnew :cnewer<CR>
574 an 40.430.50 &Tools.Error\ &Window.&Update<Tab>:cwin :cwin<CR>
575 an 40.430.60 &Tools.Error\ &Window.&Open<Tab>:copen :copen<CR>
576 an 40.430.70 &Tools.Error\ &Window.&Close<Tab>:cclose :cclose<CR>
578 an 40.520 &Tools.-SEP3- <Nop>
579 an <silent> 40.530 &Tools.&Convert\ to\ HEX<Tab>:%!xxd
580 \ :call <SID>XxdConv()<CR>
581 an <silent> 40.540 &Tools.Conve&rt\ back<Tab>:%!xxd\ -r
582 \ :call <SID>XxdBack()<CR>
584 " Use a function to do the conversion, so that it also works with 'insertmode'
592 exe '%!"' . g:xxdprogram . '"'
594 if getline(1) =~ "^0000000:" " only if it worked
606 exe '%!"' . g:xxdprogram . '" -r'
609 doautocmd filetypedetect BufReadPost
614 if !exists("g:xxdprogram")
615 " On the PC xxd may not be in the path but in the install directory
616 if (has("win32") || has("dos32")) && !executable("xxd")
617 let g:xxdprogram = $VIMRUNTIME . (&shellslash ? '/' : '\') . "xxd.exe"
619 let g:xxdprogram = "xxd"
624 " Setup the Tools.Compiler submenu
625 let s:n = globpath(&runtimepath, "compiler/*.vim")
627 while strlen(s:n) > 0
628 let s:i = stridx(s:n, "\n")
633 let s:name = strpart(s:n, 0, s:i)
634 let s:n = strpart(s:n, s:i + 1, 19999)
636 " Ignore case for VMS and windows
637 let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:]*\)\.vim', '\1', '')
638 exe "an 30.440." . s:idx . ' &Tools.Se&T\ Compiler.' . s:name . " :compiler " . s:name . "<CR>"
641 let s:idx = s:idx + 10
646 if !exists("no_buffers_menu")
648 " Buffer list menu -- Setup functions & actions
650 " wait with building the menu until after loading 'session' files. Makes
654 if !exists("bmenu_priority")
655 let bmenu_priority = 60
660 " when adding too many buffers, redraw in short format
661 if s:bmenu_count == &menuitems && s:bmenu_short == 0
664 call <SID>BMFilename(expand("<afile>"), expand("<abuf>"))
665 let s:bmenu_count = s:bmenu_count + 1
672 let name = expand("<afile>")
676 let munge = <SID>BMMunge(name, expand("<abuf>"))
678 if s:bmenu_short == 0
679 exe 'silent! aun &Buffers.' . munge
681 exe 'silent! aun &Buffers.' . <SID>BMHash2(munge) . munge
683 let s:bmenu_count = s:bmenu_count - 1
687 " Create the buffer menu (delete an existing one first).
690 let s:bmenu_short = 1
691 let s:bmenu_count = 0
693 " get new priority, if exists
695 let g:bmenu_priority = a:1
698 " remove old menu, if exists; keep one entry to avoid a torn off menu to
700 silent! unmenu &Buffers
701 exe 'noremenu ' . g:bmenu_priority . ".1 &Buffers.Dummy l"
702 silent! unmenu! &Buffers
704 " create new menu; set 'cpo' to include the <CR>
707 exe 'an <silent> ' . g:bmenu_priority . ".2 &Buffers.&Refresh\\ menu :call <SID>BMShow()<CR>"
708 exe 'an ' . g:bmenu_priority . ".4 &Buffers.&Delete :confirm bd<CR>"
709 exe 'an ' . g:bmenu_priority . ".6 &Buffers.&Alternate :confirm b #<CR>"
710 exe 'an ' . g:bmenu_priority . ".7 &Buffers.&Next :confirm bnext<CR>"
711 exe 'an ' . g:bmenu_priority . ".8 &Buffers.&Previous :confirm bprev<CR>"
712 exe 'an ' . g:bmenu_priority . ".9 &Buffers.-SEP- :"
714 unmenu &Buffers.Dummy
716 " figure out how many buffers there are
718 while buf <= bufnr('$')
719 if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf)
720 let s:bmenu_count = s:bmenu_count + 1
724 if s:bmenu_count <= &menuitems
725 let s:bmenu_short = 0
728 " iterate through buffer list, adding each buffer to the menu:
730 while buf <= bufnr('$')
731 if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf)
732 call <SID>BMFilename(bufname(buf), buf)
739 au BufCreate,BufFilePost * call <SID>BMAdd()
740 au BufDelete,BufFilePre * call <SID>BMRemove()
745 " Make name all upper case, so that chars are between 32 and 96
746 let nm = substitute(a:name, ".*", '\U\0', "")
748 " HACK: Replace all non alphabetics with 'Z'
749 " Just to make it work for now.
750 let nm = substitute(nm, "[^A-Z]", 'Z', "g")
751 let sp = char2nr('A') - 1
753 let sp = char2nr(' ')
755 " convert first six chars into a number for sorting:
756 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)
759 func! s:BMHash2(name)
760 let nm = substitute(a:name, ".", '\L\0', "")
761 " Not exactly right for EBCDIC...
762 if nm[0] < 'a' || nm[0] > 'z'
779 " insert a buffer name into the buffer menu:
780 func! s:BMFilename(name, num)
781 if isdirectory(a:name)
784 let munge = <SID>BMMunge(a:name, a:num)
785 let hash = <SID>BMHash(munge)
786 if s:bmenu_short == 0
787 let name = 'an ' . g:bmenu_priority . '.' . hash . ' &Buffers.' . munge
789 let name = 'an ' . g:bmenu_priority . '.' . hash . '.' . hash . ' &Buffers.' . <SID>BMHash2(munge) . munge
791 " set 'cpo' to include the <CR>
794 exe name . ' :confirm b' . a:num . '<CR>'
798 " Truncate a long path to fit it in a menu item.
799 if !exists("g:bmenu_max_pathlen")
800 let g:bmenu_max_pathlen = 35
802 func! s:BMTruncName(fname)
804 if g:bmenu_max_pathlen < 5
807 let len = strlen(name)
808 if len > g:bmenu_max_pathlen
809 let amountl = (g:bmenu_max_pathlen / 2) - 2
810 let amountr = g:bmenu_max_pathlen - amountl - 3
811 let pattern = '^\(.\{,' . amountl . '}\).\{-}\(.\{,' . amountr . '}\)$'
812 let left = substitute(name, pattern, '\1', '')
813 let right = substitute(name, pattern, '\2', '')
814 if strlen(left) + strlen(right) < len
815 let name = left . '...' . right
822 func! s:BMMunge(fname, bnum)
825 if !exists("g:menutrans_no_file")
826 let g:menutrans_no_file = "[No file]"
828 let name = g:menutrans_no_file
830 let name = fnamemodify(name, ':p:~')
832 " detach file name and separate it out:
833 let name2 = fnamemodify(name, ':t')
835 let name2 = name2 . ' (' . a:bnum . ')'
837 let name = name2 . "\t" . <SID>BMTruncName(fnamemodify(name,':h'))
838 let name = escape(name, "\\. \t|")
839 let name = substitute(name, "&", "&&", "g")
840 let name = substitute(name, "\n", "^@", "g")
844 " When just starting Vim, load the buffer menu later. Don't do this for MacVim
845 " because it makes the menu flicker each time a new editor window is opened.
846 if has("vim_starting") && !has("gui_macvim")
847 augroup LoadBufferMenu
848 au! VimEnter * if !exists("no_buffers_menu") | call <SID>BMShow() | endif
849 au VimEnter * au! LoadBufferMenu
855 endif " !exists("no_buffers_menu")
858 if !has("gui_macvim")
859 an 70.300 &Window.&New<Tab>^Wn <C-W>n
860 an 70.310 &Window.S&plit<Tab>^Ws <C-W>s
861 an 70.320 &Window.Sp&lit\ To\ #<Tab>^W^^ <C-W><C-^>
862 an 70.330 &Window.Split\ &Vertically<Tab>^Wv <C-W>v
864 an <silent> 70.332 &Window.Split\ File\ E&xplorer :call MenuExplOpen()<CR>
865 if !exists("*MenuExplOpen")
870 exe "20vsp " . s:FnameEscape(expand("%:p:h"))
875 an 70.335 &Window.-SEP1- <Nop>
876 an 70.340 &Window.&Close<Tab>^Wc :confirm close<CR>
877 an 70.345 &Window.Close\ &Other(s)<Tab>^Wo :confirm only<CR>
878 an 70.350 &Window.-SEP2- <Nop>
879 an 70.355 &Window.Move\ &To.&Top<Tab>^WK <C-W>K
880 an 70.355 &Window.Move\ &To.&Bottom<Tab>^WJ <C-W>J
881 an 70.355 &Window.Move\ &To.&Left\ side<Tab>^WH <C-W>H
882 an 70.355 &Window.Move\ &To.&Right\ side<Tab>^WL <C-W>L
883 an 70.360 &Window.Rotate\ &Up<Tab>^WR <C-W>R
884 an 70.362 &Window.Rotate\ &Down<Tab>^Wr <C-W>r
885 an 70.365 &Window.-SEP3- <Nop>
886 an 70.370 &Window.&Equal\ Size<Tab>^W= <C-W>=
887 an 70.380 &Window.&Max\ Height<Tab>^W_ <C-W>_
888 an 70.390 &Window.M&in\ Height<Tab>^W1_ <C-W>1_
889 an 70.400 &Window.Max\ &Width<Tab>^W\| <C-W>\|
890 an 70.410 &Window.Min\ Widt&h<Tab>^W1\| <C-W>1\|
891 endif " !has("gui_macvim")
894 an 1.10 PopUp.&Undo u
895 an 1.15 PopUp.-SEP1- <Nop>
896 vnoremenu 1.20 PopUp.Cu&t "+x
897 vnoremenu 1.30 PopUp.&Copy "+y
898 cnoremenu 1.30 PopUp.&Copy <C-Y>
899 nnoremenu 1.40 PopUp.&Paste "+gP
900 cnoremenu 1.40 PopUp.&Paste <C-R>+
901 exe 'vnoremenu <script> 1.40 PopUp.&Paste ' . paste#paste_cmd['v']
902 exe 'inoremenu <script> 1.40 PopUp.&Paste ' . paste#paste_cmd['i']
903 vnoremenu 1.50 PopUp.&Delete x
904 an 1.55 PopUp.-SEP2- <Nop>
905 vnoremenu 1.60 PopUp.Select\ Blockwise <C-V>
907 nnoremenu 1.70 PopUp.Select\ &Word vaw
908 onoremenu 1.70 PopUp.Select\ &Word aw
909 vnoremenu 1.70 PopUp.Select\ &Word <C-C>vaw
910 inoremenu 1.70 PopUp.Select\ &Word <C-O>vaw
911 cnoremenu 1.70 PopUp.Select\ &Word <C-C>vaw
913 nnoremenu 1.73 PopUp.Select\ &Sentence vas
914 onoremenu 1.73 PopUp.Select\ &Sentence as
915 vnoremenu 1.73 PopUp.Select\ &Sentence <C-C>vas
916 inoremenu 1.73 PopUp.Select\ &Sentence <C-O>vas
917 cnoremenu 1.73 PopUp.Select\ &Sentence <C-C>vas
919 nnoremenu 1.77 PopUp.Select\ Pa&ragraph vap
920 onoremenu 1.77 PopUp.Select\ Pa&ragraph ap
921 vnoremenu 1.77 PopUp.Select\ Pa&ragraph <C-C>vap
922 inoremenu 1.77 PopUp.Select\ Pa&ragraph <C-O>vap
923 cnoremenu 1.77 PopUp.Select\ Pa&ragraph <C-C>vap
925 nnoremenu 1.80 PopUp.Select\ &Line V
926 onoremenu 1.80 PopUp.Select\ &Line <C-C>V
927 vnoremenu 1.80 PopUp.Select\ &Line <C-C>V
928 inoremenu 1.80 PopUp.Select\ &Line <C-O>V
929 cnoremenu 1.80 PopUp.Select\ &Line <C-C>V
931 nnoremenu 1.90 PopUp.Select\ &Block <C-V>
932 onoremenu 1.90 PopUp.Select\ &Block <C-C><C-V>
933 vnoremenu 1.90 PopUp.Select\ &Block <C-C><C-V>
934 inoremenu 1.90 PopUp.Select\ &Block <C-O><C-V>
935 cnoremenu 1.90 PopUp.Select\ &Block <C-C><C-V>
937 noremenu <script> <silent> 1.100 PopUp.Select\ &All :<C-U>call <SID>SelectAll()<CR>
938 inoremenu <script> <silent> 1.100 PopUp.Select\ &All <C-O>:call <SID>SelectAll()<CR>
939 cnoremenu <script> <silent> 1.100 PopUp.Select\ &All <C-U>call <SID>SelectAll()<CR>
942 " Spell suggestions in the popup menu. Note that this will slow down the
943 " appearance of the menu!
944 func! <SID>SpellPopup()
945 if exists("s:changeitem") && s:changeitem != ''
949 " Return quickly if spell checking is not enabled.
950 if !&spell || &spelllang == ''
954 let curcol = col('.')
955 let [w, a] = spellbadword()
956 if col('.') > curcol " don't use word after the cursor
958 call cursor(0, curcol) " put the cursor back where it was
962 let s:suglist = [substitute(w, '.*', '\u&', '')]
964 let s:suglist = spellsuggest(w, 10)
966 if len(s:suglist) <= 0
967 call cursor(0, curcol) " put the cursor back where it was
969 let s:changeitem = 'change\ "' . escape(w, ' .'). '"\ to'
973 exe 'anoremenu 1.5.' . pri . ' PopUp.' . s:changeitem . '.' . escape(sug, ' .')
974 \ . ' :call <SID>SpellReplace(' . pri . ')<CR>'
978 let s:additem = 'add\ "' . escape(w, ' .') . '"\ to\ word\ list'
979 exe 'anoremenu 1.6 PopUp.' . s:additem . ' :spellgood ' . w . '<CR>'
981 let s:ignoreitem = 'ignore\ "' . escape(w, ' .') . '"'
982 exe 'anoremenu 1.7 PopUp.' . s:ignoreitem . ' :spellgood! ' . w . '<CR>'
984 anoremenu 1.8 PopUp.-SpellSep- :
989 func! <SID>SpellReplace(n)
991 call setline('.', strpart(l, 0, col('.') - 1) . s:suglist[a:n - 1]
992 \ . strpart(l, col('.') + len(s:fromword) - 1))
995 func! <SID>SpellDel()
996 exe "aunmenu PopUp." . s:changeitem
997 exe "aunmenu PopUp." . s:additem
998 exe "aunmenu PopUp." . s:ignoreitem
999 aunmenu PopUp.-SpellSep-
1000 let s:changeitem = ''
1003 augroup SpellPopupMenu
1004 au! MenuPopup * call <SID>SpellPopup()
1008 " The GUI toolbar (for MS-Windows and GTK)
1010 an 1.10 ToolBar.Open :browse confirm e<CR>
1011 an <silent> 1.20 ToolBar.Save :if expand("%") == ""<Bar>browse confirm w<Bar>else<Bar>confirm w<Bar>endif<CR>
1012 an 1.30 ToolBar.SaveAll :browse confirm wa<CR>
1015 an 1.40 ToolBar.Print :hardcopy<CR>
1016 vunmenu ToolBar.Print
1017 vnoremenu ToolBar.Print :hardcopy<CR>
1019 an 1.40 ToolBar.Print :w !lpr<CR>
1020 vunmenu ToolBar.Print
1021 vnoremenu ToolBar.Print :w !lpr<CR>
1024 an 1.45 ToolBar.-sep1- <Nop>
1025 an 1.50 ToolBar.Undo u
1026 an 1.60 ToolBar.Redo <C-R>
1028 an 1.65 ToolBar.-sep2- <Nop>
1029 vnoremenu 1.70 ToolBar.Cut "+x
1030 vnoremenu 1.80 ToolBar.Copy "+y
1031 cnoremenu 1.80 ToolBar.Copy <C-Y>
1032 nnoremenu 1.90 ToolBar.Paste "+gP
1033 cnoremenu ToolBar.Paste <C-R>+
1034 exe 'vnoremenu <script> ToolBar.Paste ' . paste#paste_cmd['v']
1035 exe 'inoremenu <script> ToolBar.Paste ' . paste#paste_cmd['i']
1037 if !has("gui_athena") && !has("gui_macvim")
1038 an 1.95 ToolBar.-sep3- <Nop>
1039 an 1.100 ToolBar.Replace :promptrepl<CR>
1040 vunmenu ToolBar.Replace
1041 vnoremenu ToolBar.Replace y:promptrepl <C-R>=<SID>FixFText()<CR><CR>
1042 an 1.110 ToolBar.FindNext n
1043 an 1.120 ToolBar.FindPrev N
1046 if !has("gui_macvim")
1047 an 1.215 ToolBar.-sep5- <Nop>
1049 an <silent> 1.220 ToolBar.LoadSesn :call <SID>LoadVimSesn()<CR>
1050 an <silent> 1.230 ToolBar.SaveSesn :call <SID>SaveVimSesn()<CR>
1051 an 1.240 ToolBar.RunScript :browse so<CR>
1053 if !has("gui_macvim")
1054 an 1.245 ToolBar.-sep6- <Nop>
1056 an 1.250 ToolBar.Make :make<CR>
1057 if !has("gui_macvim")
1058 an 1.270 ToolBar.RunCtags :exe "!" . g:ctags_command<CR>
1059 an 1.280 ToolBar.TagJump g<C-]>
1062 an 1.295 ToolBar.-sep7- <Nop>
1063 an 1.300 ToolBar.Help :help<CR>
1064 if !has("gui_macvim")
1065 an <silent> 1.310 ToolBar.FindHelp :call <SID>Helpfind()<CR>
1068 " Only set the tooltips here if not done in a language menu file
1069 if exists("*Do_toolbar_tmenu")
1070 call Do_toolbar_tmenu()
1072 let did_toolbar_tmenu = 1
1073 tmenu ToolBar.Open Open file
1074 tmenu ToolBar.Save Save current file
1075 tmenu ToolBar.SaveAll Save all files
1076 tmenu ToolBar.Print Print
1077 tmenu ToolBar.Undo Undo
1078 tmenu ToolBar.Redo Redo
1079 tmenu ToolBar.Cut Cut to clipboard
1080 tmenu ToolBar.Copy Copy to clipboard
1081 tmenu ToolBar.Paste Paste from Clipboard
1082 if !has("gui_athena")
1083 tmenu ToolBar.Replace Find / Replace...
1084 tmenu ToolBar.FindNext Find Next
1085 tmenu ToolBar.FindPrev Find Previous
1087 tmenu ToolBar.LoadSesn Choose a session to load
1088 tmenu ToolBar.SaveSesn Save current session
1089 tmenu ToolBar.RunScript Choose a Vim Script to run
1090 tmenu ToolBar.Make Make current project (:make)
1091 tmenu ToolBar.RunCtags Build tags in current directory tree (!ctags -R .)
1092 tmenu ToolBar.TagJump Jump to tag under cursor
1093 tmenu ToolBar.Help Vim Help
1094 tmenu ToolBar.FindHelp Search Vim Help
1097 " Select a session to load; default to current session name if present
1098 fun! s:LoadVimSesn()
1099 if strlen(v:this_session) > 0
1100 let name = s:FnameEscape(v:this_session)
1102 let name = "Session.vim"
1104 execute "browse so " . name
1107 " Select a session to save; default to current session name if present
1108 fun! s:SaveVimSesn()
1109 if strlen(v:this_session) == 0
1110 let v:this_session = "Session.vim"
1112 execute "browse mksession! " . s:FnameEscape(v:this_session)
1117 endif " !exists("did_install_default_menus")
1119 " Define these items always, so that syntax can be switched on when it wasn't.
1120 " But skip them when the Syntax menu was disabled by the user.
1121 if !exists("did_install_syntax_menu")
1122 an 50.212 &Syntax.&Manual :syn manual<CR>
1123 an 50.214 &Syntax.A&utomatic :syn on<CR>
1124 an <silent> 50.216 &Syntax.on/off\ for\ &This\ file :call <SID>SynOnOff()<CR>
1125 if !exists("*s:SynOnOff")
1127 if has("syntax_items")
1130 if !exists("g:syntax_on")
1140 " Install the Syntax menu only when filetype.vim has been loaded or when
1141 " manual syntax highlighting is enabled.
1142 " Avoid installing the Syntax menu twice.
1143 if (exists("did_load_filetypes") || exists("syntax_on"))
1144 \ && !exists("did_install_syntax_menu")
1145 let did_install_syntax_menu = 1
1147 " Skip setting up the individual syntax selection menus unless
1148 " do_syntax_sel_menu is defined (it takes quite a bit of time).
1149 if exists("do_syntax_sel_menu")
1150 runtime! synmenu.vim
1152 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>
1153 an 50.195 &Syntax.-SEP1- <Nop>
1156 an 50.210 &Syntax.&Off :syn off<CR>
1157 an 50.700 &Syntax.-SEP3- <Nop>
1158 an 50.710 &Syntax.Co&lor\ test :sp $VIMRUNTIME/syntax/colortest.vim<Bar>so %<CR>
1159 an 50.720 &Syntax.&Highlight\ test :runtime syntax/hitest.vim<CR>
1160 an 50.730 &Syntax.&Convert\ to\ HTML :runtime syntax/2html.vim<CR>
1162 endif " !exists("did_install_syntax_menu")
1164 " Restore the previous value of 'cpoptions'.
1165 let &cpo = s:cpo_save
1169 if has("gui_macvim")
1171 " Set up menu key equivalents (these should always have the 'D' modifier
1172 " set), action bindings, and alternate items.
1174 " Note: menu items which should execute an action are bound to <Nop>; the
1175 " action message is specified here via the :macmenu command.
1177 macm File.New\ Window key=<D-n> action=newWindow:
1178 macm File.New\ Tab key=<D-t>
1179 macm File.Open\.\.\. key=<D-o> action=fileOpen:
1180 macm File.Open\ Tab\.\.\.<Tab>:tabnew key=<D-T>
1181 macm File.Open\ Recent action=recentFilesDummy:
1182 macm File.Close\ Window<Tab>:qa key=<D-W>
1183 macm File.Close key=<D-w> action=performClose:
1184 macm File.Save<Tab>:w key=<D-s>
1185 macm File.Save\ All key=<D-M-s> alt=YES
1186 macm File.Save\ As\.\.\.<Tab>:sav key=<D-S>
1187 macm File.Print key=<D-p>
1189 macm Edit.Undo<Tab>u key=<D-z> action=undo:
1190 macm Edit.Redo<Tab>^R key=<D-Z> action=redo:
1191 macm Edit.Cut<Tab>"+x key=<D-x> action=cut:
1192 macm Edit.Copy<Tab>"+y key=<D-c> action=copy:
1193 macm Edit.Paste<Tab>"+gP key=<D-v> action=paste:
1194 macm Edit.Select\ All<Tab>ggVG key=<D-a> action=selectAll:
1195 macm Edit.Find.Find\.\.\. key=<D-f>
1196 macm Edit.Find.Find\ Next key=<D-g> action=findNext:
1197 macm Edit.Find.Find\ Previous key=<D-G> action=findPrevious:
1198 macm Edit.Find.Use\ Selection\ for\ Find key=<D-e>
1199 macm Edit.Font.Show\ Fonts action=orderFrontFontPanel:
1200 macm Edit.Font.Bigger key=<D-=> action=fontSizeUp:
1201 macm Edit.Font.Smaller key=<D--> action=fontSizeDown:
1202 macm Edit.Special\ Characters\.\.\. key=<D-M-t> action=orderFrontCharacterPalette:
1204 macm Tools.Spelling.To\ Next\ error<Tab>]s key=<D-;>
1205 macm Tools.Spelling.Suggest\ Corrections<Tab>z= key=<D-:>
1206 macm Tools.Make<Tab>:make key=<D-b>
1207 macm Tools.List\ Errors<Tab>:cl key=<D-l>
1208 macm Tools.Next\ Error<Tab>:cn key=<D-C-Right>
1209 macm Tools.Previous\ Error<Tab>:cp key=<D-C-Left>
1210 macm Tools.Older\ List<Tab>:cold key=<D-C-Up>
1211 macm Tools.Newer\ List<Tab>:cnew key=<D-C-Down>
1213 macm Window.Minimize key=<D-m> action=performMiniaturize:
1214 macm Window.Minimize\ All key=<D-M-m> action=miniaturizeAll: alt=YES
1215 macm Window.Zoom key=<D-C-z> action=performZoom:
1216 macm Window.Zoom\ All key=<D-M-C-z> action=zoomAll: alt=YES
1217 macm Window.Toggle\ Full\ Screen\ Mode key=<D-F>
1218 macm Window.Select\ Next\ Tab key=<D-}>
1219 macm Window.Select\ Previous\ Tab key=<D-{>
1220 macm Window.Bring\ All\ To\ Front action=arrangeInFront:
1222 macm Help.MacVim\ Help key=<D-?>
1223 macm Help.MacVim\ Website action=openWebsite: