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