blob: a568fa16b21381cc60a2f37c854b4c105f50026a [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 Moolenaar24bbcfe2005-06-28 23:32:02 +00005" Last Change: 2005 Jun 28
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
Bram Moolenaarf3681cc2005-06-08 22:03:13 +0000410" Tools.Spelling Menu
Bram Moolenaar82cf9b62005-06-07 21:09:25 +0000411if 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
Bram Moolenaar24bbcfe2005-06-28 23:32:02 +0000416 an 40.335.140 &Tools.&Spelling.Suggest\ &Corrections<Tab>z? z?
417 an 40.335.150 &Tools.&Spelling.&Repeat\ correction<Tab>:spellrepall :spellrepall<CR>
Bram Moolenaar82cf9b62005-06-07 21:09:25 +0000418 an 40.335.200 &Tools.&Spelling.-SEP1- <Nop>
419 an 40.335.210 &Tools.&Spelling.Set\ language\ to\ "en" :set spl=en spell<CR>
420 an 40.335.220 &Tools.&Spelling.Set\ language\ to\ "en_au" :set spl=en_au spell<CR>
421 an 40.335.230 &Tools.&Spelling.Set\ language\ to\ "en_ca" :set spl=en_ca spell<CR>
422 an 40.335.240 &Tools.&Spelling.Set\ language\ to\ "en_gb" :set spl=en_gb spell<CR>
423 an 40.335.250 &Tools.&Spelling.Set\ language\ to\ "en_nz" :set spl=en_nz spell<CR>
424 an 40.335.260 &Tools.&Spelling.Set\ language\ to\ "en_us" :set spl=en_us spell<CR>
425 an <silent> 40.335.270 &Tools.&Spelling.&Find\ More\ Languages :call <SID>SpellLang()<CR>
426
427 func! s:SpellLang()
428 silent! aun &Tools.&Spelling.&Find\ More\ Languages
429 if &enc == "iso-8859-15"
430 let enc = "latin1"
431 else
432 let enc = &enc
433 endif
434 let found = 0
435 let s = globpath(&rtp, "spell/*." . enc . ".spl")
436 if s != ""
437 let n = 300
438 for f in split(s, "\n")
439 let nm = substitute(f, '.*spell[/\\]\(..\)\.[^/\\]*\.spl', '\1', "")
440 if nm != "en"
441 exe 'an 40.335.' . n . ' &Tools.&Spelling.Set\ language\ to\ "' . nm . '" :set spl=' . nm . ' spell<CR>'
442 let found += 1
443 endif
444 let n += 10
445 endfor
446 endif
447 if found == 0
448 echomsg "Could not find other spell files"
449 elseif found == 1
450 echomsg "Found spell file " . nm
451 else
452 echomsg "Found " . found . " more spell files"
453 endif
454 endfun
455
456endif
457
Bram Moolenaar071d4272004-06-13 20:20:40 +0000458" Tools.Fold Menu
459if has("folding")
Bram Moolenaar071d4272004-06-13 20:20:40 +0000460 " open close folds
461 an 40.340.110 &Tools.&Folding.&Enable/Disable\ folds<Tab>zi zi
462 an 40.340.120 &Tools.&Folding.&View\ Cursor\ Line<Tab>zv zv
463 an 40.340.120 &Tools.&Folding.Vie&w\ Cursor\ Line\ only<Tab>zMzx zMzx
464 an 40.340.130 &Tools.&Folding.C&lose\ more\ folds<Tab>zm zm
465 an 40.340.140 &Tools.&Folding.&Close\ all\ folds<Tab>zM zM
466 an 40.340.150 &Tools.&Folding.O&pen\ more\ folds<Tab>zr zr
467 an 40.340.160 &Tools.&Folding.&Open\ all\ folds<Tab>zR zR
468 " fold method
469 an 40.340.200 &Tools.&Folding.-SEP1- <Nop>
470 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.M&anual :set fdm=manual<CR>
471 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.I&ndent :set fdm=indent<CR>
472 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.E&xpression :set fdm=expr<CR>
473 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.S&yntax :set fdm=syntax<CR>
474 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.&Diff :set fdm=diff<CR>
475 an 40.340.210 &Tools.&Folding.Fold\ Met&hod.Ma&rker :set fdm=marker<CR>
476 " create and delete folds
477 vnoremenu 40.340.220 &Tools.&Folding.Create\ &Fold<Tab>zf zf
478 an 40.340.230 &Tools.&Folding.&Delete\ Fold<Tab>zd zd
479 an 40.340.240 &Tools.&Folding.Delete\ &All\ Folds<Tab>zD zD
480 " moving around in folds
481 an 40.340.300 &Tools.&Folding.-SEP2- <Nop>
482 an 40.340.310.10 &Tools.&Folding.Fold\ col&umn\ width.\ &0\ :set fdc=0<CR>
483 an 40.340.310.20 &Tools.&Folding.Fold\ col&umn\ width.\ &2\ :set fdc=2<CR>
484 an 40.340.310.30 &Tools.&Folding.Fold\ col&umn\ width.\ &3\ :set fdc=3<CR>
485 an 40.340.310.40 &Tools.&Folding.Fold\ col&umn\ width.\ &4\ :set fdc=4<CR>
486 an 40.340.310.50 &Tools.&Folding.Fold\ col&umn\ width.\ &5\ :set fdc=5<CR>
487 an 40.340.310.60 &Tools.&Folding.Fold\ col&umn\ width.\ &6\ :set fdc=6<CR>
488 an 40.340.310.70 &Tools.&Folding.Fold\ col&umn\ width.\ &7\ :set fdc=7<CR>
489 an 40.340.310.80 &Tools.&Folding.Fold\ col&umn\ width.\ &8\ :set fdc=8<CR>
490endif " has folding
491
492if has("diff")
493 an 40.350.100 &Tools.&Diff.&Update :diffupdate<CR>
494 an 40.350.110 &Tools.&Diff.&Get\ Block :diffget<CR>
495 vunmenu &Tools.&Diff.&Get\ Block
496 vnoremenu &Tools.&Diff.&Get\ Block :diffget<CR>
497 an 40.350.120 &Tools.&Diff.&Put\ Block :diffput<CR>
498 vunmenu &Tools.&Diff.&Put\ Block
499 vnoremenu &Tools.&Diff.&Put\ Block :diffput<CR>
500endif
501
502an 40.358 &Tools.-SEP2- <Nop>
503an 40.360 &Tools.&Make<Tab>:make :make<CR>
504an 40.370 &Tools.&List\ Errors<Tab>:cl :cl<CR>
505an 40.380 &Tools.L&ist\ Messages<Tab>:cl! :cl!<CR>
506an 40.390 &Tools.&Next\ Error<Tab>:cn :cn<CR>
507an 40.400 &Tools.&Previous\ Error<Tab>:cp :cp<CR>
508an 40.410 &Tools.&Older\ List<Tab>:cold :colder<CR>
509an 40.420 &Tools.N&ewer\ List<Tab>:cnew :cnewer<CR>
510an 40.430.50 &Tools.Error\ &Window.&Update<Tab>:cwin :cwin<CR>
511an 40.430.60 &Tools.Error\ &Window.&Open<Tab>:copen :copen<CR>
512an 40.430.70 &Tools.Error\ &Window.&Close<Tab>:cclose :cclose<CR>
513
514an 40.520 &Tools.-SEP3- <Nop>
515an <silent> 40.530 &Tools.&Convert\ to\ HEX<Tab>:%!xxd
516 \ :call <SID>XxdConv()<CR>
517an <silent> 40.540 &Tools.Conve&rt\ back<Tab>:%!xxd\ -r
518 \ :call <SID>XxdBack()<CR>
519
520" Use a function to do the conversion, so that it also works with 'insertmode'
521" set.
522func! s:XxdConv()
523 let mod = &mod
524 if has("vms")
525 %!mc vim:xxd
526 else
527 call s:XxdFind()
528 exe '%!"' . g:xxdprogram . '"'
529 endif
530 if getline(1) =~ "^0000000:" " only if it worked
531 set ft=xxd
532 endif
533 let &mod = mod
534endfun
535
536func! s:XxdBack()
537 let mod = &mod
538 if has("vms")
539 %!mc vim:xxd -r
540 else
541 call s:XxdFind()
542 exe '%!"' . g:xxdprogram . '" -r'
543 endif
544 set ft=
545 doautocmd filetypedetect BufReadPost
546 let &mod = mod
547endfun
548
549func! s:XxdFind()
550 if !exists("g:xxdprogram")
551 " On the PC xxd may not be in the path but in the install directory
552 if (has("win32") || has("dos32")) && !executable("xxd")
553 let g:xxdprogram = $VIMRUNTIME . (&shellslash ? '/' : '\') . "xxd.exe"
554 else
555 let g:xxdprogram = "xxd"
556 endif
557 endif
558endfun
559
560" Setup the Tools.Compiler submenu
561let s:n = globpath(&runtimepath, "compiler/*.vim")
562let s:idx = 100
563while strlen(s:n) > 0
564 let s:i = stridx(s:n, "\n")
565 if s:i < 0
566 let s:name = s:n
567 let s:n = ""
568 else
569 let s:name = strpart(s:n, 0, s:i)
570 let s:n = strpart(s:n, s:i + 1, 19999)
571 endif
572 " Ignore case for VMS and windows
573 let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:]*\)\.vim', '\1', '')
Bram Moolenaar82cf9b62005-06-07 21:09:25 +0000574 exe "an 30.440." . s:idx . ' &Tools.se&T\ Compiler.' . s:name . " :compiler " . s:name . "<CR>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000575 unlet s:name
576 unlet s:i
577 let s:idx = s:idx + 10
578endwhile
579unlet s:n
580unlet s:idx
581
582if !exists("no_buffers_menu")
583
584" Buffer list menu -- Setup functions & actions
585
586" wait with building the menu until after loading 'session' files. Makes
587" startup faster.
588let s:bmenu_wait = 1
589
590if !exists("bmenu_priority")
591 let bmenu_priority = 60
592endif
593
594func! s:BMAdd()
595 if s:bmenu_wait == 0
596 " when adding too many buffers, redraw in short format
597 if s:bmenu_count == &menuitems && s:bmenu_short == 0
598 call s:BMShow()
599 else
600 call <SID>BMFilename(expand("<afile>"), expand("<abuf>"))
601 let s:bmenu_count = s:bmenu_count + 1
602 endif
603 endif
604endfunc
605
606func! s:BMRemove()
607 if s:bmenu_wait == 0
608 let name = expand("<afile>")
609 if isdirectory(name)
610 return
611 endif
612 let munge = <SID>BMMunge(name, expand("<abuf>"))
613
614 if s:bmenu_short == 0
615 exe 'silent! aun &Buffers.' . munge
616 else
617 exe 'silent! aun &Buffers.' . <SID>BMHash2(munge) . munge
618 endif
619 let s:bmenu_count = s:bmenu_count - 1
620 endif
621endfunc
622
623" Create the buffer menu (delete an existing one first).
624func! s:BMShow(...)
625 let s:bmenu_wait = 1
626 let s:bmenu_short = 1
627 let s:bmenu_count = 0
628 "
629 " get new priority, if exists
630 if a:0 == 1
631 let g:bmenu_priority = a:1
632 endif
633
634 " remove old menu, if exists; keep one entry to avoid a torn off menu to
635 " disappear.
636 silent! unmenu &Buffers
637 exe 'noremenu ' . g:bmenu_priority . ".1 &Buffers.Dummy l"
638 silent! unmenu! &Buffers
639
640 " create new menu; set 'cpo' to include the <CR>
641 let cpo_save = &cpo
642 set cpo&vim
643 exe 'an <silent> ' . g:bmenu_priority . ".2 &Buffers.&Refresh\\ menu :call <SID>BMShow()<CR>"
644 exe 'an ' . g:bmenu_priority . ".4 &Buffers.&Delete :confirm bd<CR>"
645 exe 'an ' . g:bmenu_priority . ".6 &Buffers.&Alternate :confirm b #<CR>"
646 exe 'an ' . g:bmenu_priority . ".7 &Buffers.&Next :confirm bnext<CR>"
647 exe 'an ' . g:bmenu_priority . ".8 &Buffers.&Previous :confirm bprev<CR>"
648 exe 'an ' . g:bmenu_priority . ".9 &Buffers.-SEP- :"
649 let &cpo = cpo_save
650 unmenu &Buffers.Dummy
651
652 " figure out how many buffers there are
653 let buf = 1
654 while buf <= bufnr('$')
655 if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf)
656 \ && !getbufvar(buf, "&bufsecret")
657 let s:bmenu_count = s:bmenu_count + 1
658 endif
659 let buf = buf + 1
660 endwhile
661 if s:bmenu_count <= &menuitems
662 let s:bmenu_short = 0
663 endif
664
665 " iterate through buffer list, adding each buffer to the menu:
666 let buf = 1
667 while buf <= bufnr('$')
668 if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf)
669 \ && !getbufvar(buf, "&bufsecret")
670 call <SID>BMFilename(bufname(buf), buf)
671 endif
672 let buf = buf + 1
673 endwhile
674 let s:bmenu_wait = 0
675 aug buffer_list
676 au!
677 au BufCreate,BufFilePost * call <SID>BMAdd()
678 au BufDelete,BufFilePre * call <SID>BMRemove()
679 aug END
680endfunc
681
682func! s:BMHash(name)
683 " Make name all upper case, so that chars are between 32 and 96
684 let nm = substitute(a:name, ".*", '\U\0', "")
685 if has("ebcdic")
686 " HACK: Replace all non alphabetics with 'Z'
687 " Just to make it work for now.
688 let nm = substitute(nm, "[^A-Z]", 'Z', "g")
689 let sp = char2nr('A') - 1
690 else
691 let sp = char2nr(' ')
692 endif
693 " convert first six chars into a number for sorting:
694 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)
695endfunc
696
697func! s:BMHash2(name)
698 let nm = substitute(a:name, ".", '\L\0', "")
699 " Not exactly right for EBCDIC...
700 if nm[0] < 'a' || nm[0] > 'z'
701 return '&others.'
702 elseif nm[0] <= 'd'
703 return '&abcd.'
704 elseif nm[0] <= 'h'
705 return '&efgh.'
706 elseif nm[0] <= 'l'
707 return '&ijkl.'
708 elseif nm[0] <= 'p'
709 return '&mnop.'
710 elseif nm[0] <= 't'
711 return '&qrst.'
712 else
713 return '&u-z.'
714 endif
715endfunc
716
717" insert a buffer name into the buffer menu:
718func! s:BMFilename(name, num)
719 if isdirectory(a:name)
720 return
721 endif
722 let munge = <SID>BMMunge(a:name, a:num)
723 let hash = <SID>BMHash(munge)
724 if s:bmenu_short == 0
725 let name = 'an ' . g:bmenu_priority . '.' . hash . ' &Buffers.' . munge
726 else
727 let name = 'an ' . g:bmenu_priority . '.' . hash . '.' . hash . ' &Buffers.' . <SID>BMHash2(munge) . munge
728 endif
729 " set 'cpo' to include the <CR>
730 let cpo_save = &cpo
731 set cpo&vim
732 exe name . ' :confirm b' . a:num . '<CR>'
733 let &cpo = cpo_save
734endfunc
735
736" Truncate a long path to fit it in a menu item.
737if !exists("g:bmenu_max_pathlen")
738 let g:bmenu_max_pathlen = 35
739endif
740func! s:BMTruncName(fname)
741 let name = a:fname
742 if g:bmenu_max_pathlen < 5
743 let name = ""
744 else
745 let len = strlen(name)
746 if len > g:bmenu_max_pathlen
747 let amountl = (g:bmenu_max_pathlen / 2) - 2
748 let amountr = g:bmenu_max_pathlen - amountl - 3
749 let pattern = '^\(.\{,' . amountl . '}\).\{-}\(.\{,' . amountr . '}\)$'
750 let left = substitute(name, pattern, '\1', '')
751 let right = substitute(name, pattern, '\2', '')
752 if strlen(left) + strlen(right) < len
753 let name = left . '...' . right
754 endif
755 endif
756 endif
757 return name
758endfunc
759
760func! s:BMMunge(fname, bnum)
761 let name = a:fname
762 if name == ''
763 if !exists("g:menutrans_no_file")
764 let g:menutrans_no_file = "[No file]"
765 endif
766 let name = g:menutrans_no_file
767 else
768 let name = fnamemodify(name, ':p:~')
769 endif
770 " detach file name and separate it out:
771 let name2 = fnamemodify(name, ':t')
772 if a:bnum >= 0
773 let name2 = name2 . ' (' . a:bnum . ')'
774 endif
775 let name = name2 . "\t" . <SID>BMTruncName(fnamemodify(name,':h'))
776 let name = escape(name, "\\. \t|")
777 let name = substitute(name, "&", "&&", "g")
778 let name = substitute(name, "\n", "^@", "g")
779 return name
780endfunc
781
782" When just starting Vim, load the buffer menu later
783if has("vim_starting")
784 augroup LoadBufferMenu
785 au! VimEnter * if !exists("no_buffers_menu") | call <SID>BMShow() | endif
786 au VimEnter * au! LoadBufferMenu
787 augroup END
788else
789 call <SID>BMShow()
790endif
791
792endif " !exists("no_buffers_menu")
793
794" Window menu
795an 70.300 &Window.&New<Tab>^Wn <C-W>n
796an 70.310 &Window.S&plit<Tab>^Ws <C-W>s
797an 70.320 &Window.Sp&lit\ To\ #<Tab>^W^^ <C-W><C-^>
798an 70.330 &Window.Split\ &Vertically<Tab>^Wv <C-W>v
799if has("vertsplit")
800 an <silent> 70.332 &Window.Split\ File\ E&xplorer :call MenuExplOpen()<CR>
801 if !exists("*MenuExplOpen")
802 fun MenuExplOpen()
803 if @% == ""
804 20vsp .
805 else
806 exe "20vsp " . expand("%:p:h")
807 endif
808 endfun
809 endif
810endif
811an 70.335 &Window.-SEP1- <Nop>
812an 70.340 &Window.&Close<Tab>^Wc :confirm close<CR>
813an 70.345 &Window.Close\ &Other(s)<Tab>^Wo :confirm only<CR>
814an 70.350 &Window.-SEP2- <Nop>
815an 70.355 &Window.Move\ &To.&Top<Tab>^WK <C-W>K
816an 70.355 &Window.Move\ &To.&Bottom<Tab>^WJ <C-W>J
817an 70.355 &Window.Move\ &To.&Left\ side<Tab>^WH <C-W>H
818an 70.355 &Window.Move\ &To.&Right\ side<Tab>^WL <C-W>L
819an 70.360 &Window.Rotate\ &Up<Tab>^WR <C-W>R
820an 70.362 &Window.Rotate\ &Down<Tab>^Wr <C-W>r
821an 70.365 &Window.-SEP3- <Nop>
822an 70.370 &Window.&Equal\ Size<Tab>^W= <C-W>=
823an 70.380 &Window.&Max\ Height<Tab>^W_ <C-W>_
824an 70.390 &Window.M&in\ Height<Tab>^W1_ <C-W>1_
825an 70.400 &Window.Max\ &Width<Tab>^W\| <C-W>\|
826an 70.410 &Window.Min\ Widt&h<Tab>^W1\| <C-W>1\|
827
828" The popup menu
829an 1.10 PopUp.&Undo u
830an 1.15 PopUp.-SEP1- <Nop>
831vnoremenu 1.20 PopUp.Cu&t "+x
832vnoremenu 1.30 PopUp.&Copy "+y
833cnoremenu 1.30 PopUp.&Copy <C-Y>
834nnoremenu 1.40 PopUp.&Paste "+gP
835cnoremenu 1.40 PopUp.&Paste <C-R>+
Bram Moolenaar3a7c85b2005-02-05 21:39:53 +0000836exe 'vnoremenu <script> 1.40 PopUp.&Paste ' . s:paste_v_cmd
837exe 'inoremenu <script> 1.40 PopUp.&Paste ' . s:paste_i_cmd
Bram Moolenaar071d4272004-06-13 20:20:40 +0000838vnoremenu 1.50 PopUp.&Delete x
839an 1.55 PopUp.-SEP2- <Nop>
840vnoremenu 1.60 PopUp.Select\ Blockwise <C-V>
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000841
842nnoremenu 1.70 PopUp.Select\ &Word vaw
843onoremenu 1.70 PopUp.Select\ &Word aw
844vnoremenu 1.70 PopUp.Select\ &Word <C-C>vaw
845inoremenu 1.70 PopUp.Select\ &Word <C-O>vaw
846cnoremenu 1.70 PopUp.Select\ &Word <C-C>vaw
847
848nnoremenu 1.73 PopUp.Select\ &Sentence vas
849onoremenu 1.73 PopUp.Select\ &Sentence as
850vnoremenu 1.73 PopUp.Select\ &Sentence <C-C>vas
851inoremenu 1.73 PopUp.Select\ &Sentence <C-O>vas
852cnoremenu 1.73 PopUp.Select\ &Sentence <C-C>vas
853
854nnoremenu 1.77 PopUp.Select\ Pa&ragraph vap
855onoremenu 1.77 PopUp.Select\ Pa&ragraph ap
856vnoremenu 1.77 PopUp.Select\ Pa&ragraph <C-C>vap
857inoremenu 1.77 PopUp.Select\ Pa&ragraph <C-O>vap
858cnoremenu 1.77 PopUp.Select\ Pa&ragraph <C-C>vap
859
860nnoremenu 1.80 PopUp.Select\ &Line V
861onoremenu 1.80 PopUp.Select\ &Line <C-C>V
862vnoremenu 1.80 PopUp.Select\ &Line <C-C>V
863inoremenu 1.80 PopUp.Select\ &Line <C-O>V
864cnoremenu 1.80 PopUp.Select\ &Line <C-C>V
865
866nnoremenu 1.90 PopUp.Select\ &Block <C-V>
867onoremenu 1.90 PopUp.Select\ &Block <C-C><C-V>
868vnoremenu 1.90 PopUp.Select\ &Block <C-C><C-V>
869inoremenu 1.90 PopUp.Select\ &Block <C-O><C-V>
870cnoremenu 1.90 PopUp.Select\ &Block <C-C><C-V>
871
Bram Moolenaar071d4272004-06-13 20:20:40 +0000872noremenu <script> <silent> 1.100 PopUp.Select\ &All :<C-U>call <SID>SelectAll()<CR>
873inoremenu <script> <silent> 1.100 PopUp.Select\ &All <C-O>:call <SID>SelectAll()<CR>
874cnoremenu <script> <silent> 1.100 PopUp.Select\ &All <C-U>call <SID>SelectAll()<CR>
875
876
877" The GUI toolbar (for MS-Windows and GTK)
878if has("toolbar")
879 an 1.10 ToolBar.Open :browse confirm e<CR>
880 an <silent> 1.20 ToolBar.Save :if expand("%") == ""<Bar>browse confirm w<Bar>else<Bar>confirm w<Bar>endif<CR>
881 an 1.30 ToolBar.SaveAll :browse confirm wa<CR>
882
883 if has("printer")
884 an 1.40 ToolBar.Print :hardcopy<CR>
885 vunmenu ToolBar.Print
886 vnoremenu ToolBar.Print :hardcopy<CR>
887 elseif has("unix")
888 an 1.40 ToolBar.Print :w !lpr<CR>
889 vunmenu ToolBar.Print
890 vnoremenu ToolBar.Print :w !lpr<CR>
891 endif
892
893 an 1.45 ToolBar.-sep1- <Nop>
894 an 1.50 ToolBar.Undo u
895 an 1.60 ToolBar.Redo <C-R>
896
897 an 1.65 ToolBar.-sep2- <Nop>
898 vnoremenu 1.70 ToolBar.Cut "+x
899 vnoremenu 1.80 ToolBar.Copy "+y
900 cnoremenu 1.80 ToolBar.Copy <C-Y>
901 nnoremenu 1.90 ToolBar.Paste "+gP
902 cnoremenu ToolBar.Paste <C-R>+
Bram Moolenaar3a7c85b2005-02-05 21:39:53 +0000903 exe 'vnoremenu <script> ToolBar.Paste ' . s:paste_v_cmd
904 exe 'inoremenu <script> ToolBar.Paste ' . s:paste_i_cmd
Bram Moolenaar071d4272004-06-13 20:20:40 +0000905
906 if !has("gui_athena")
907 an 1.95 ToolBar.-sep3- <Nop>
Bram Moolenaare2cc9702005-03-15 22:43:58 +0000908 an 1.100 ToolBar.Replace :promptrepl<CR>
Bram Moolenaar071d4272004-06-13 20:20:40 +0000909 vunmenu ToolBar.Replace
910 vnoremenu ToolBar.Replace y:promptrepl <C-R>"<CR>
Bram Moolenaare2cc9702005-03-15 22:43:58 +0000911 an 1.110 ToolBar.FindNext n
912 an 1.120 ToolBar.FindPrev N
Bram Moolenaar071d4272004-06-13 20:20:40 +0000913 endif
914
Bram Moolenaar071d4272004-06-13 20:20:40 +0000915 an 1.215 ToolBar.-sep5- <Nop>
916 an <silent> 1.220 ToolBar.LoadSesn :call <SID>LoadVimSesn()<CR>
917 an <silent> 1.230 ToolBar.SaveSesn :call <SID>SaveVimSesn()<CR>
918 an 1.240 ToolBar.RunScript :browse so<CR>
919
920 an 1.245 ToolBar.-sep6- <Nop>
921 an 1.250 ToolBar.Make :make<CR>
922 an 1.270 ToolBar.RunCtags :exe "!" . g:ctags_command<CR>
923 an 1.280 ToolBar.TagJump g<C-]>
924
925 an 1.295 ToolBar.-sep7- <Nop>
926 an 1.300 ToolBar.Help :help<CR>
927 an <silent> 1.310 ToolBar.FindHelp :call <SID>Helpfind()<CR>
928
929" Only set the tooltips here if not done in a language menu file
930if exists("*Do_toolbar_tmenu")
931 call Do_toolbar_tmenu()
932else
933 let did_toolbar_tmenu = 1
934 tmenu ToolBar.Open Open file
935 tmenu ToolBar.Save Save current file
936 tmenu ToolBar.SaveAll Save all files
937 tmenu ToolBar.Print Print
938 tmenu ToolBar.Undo Undo
939 tmenu ToolBar.Redo Redo
940 tmenu ToolBar.Cut Cut to clipboard
941 tmenu ToolBar.Copy Copy to clipboard
942 tmenu ToolBar.Paste Paste from Clipboard
943 if !has("gui_athena")
944 tmenu ToolBar.Find Find...
945 tmenu ToolBar.FindNext Find Next
946 tmenu ToolBar.FindPrev Find Previous
947 tmenu ToolBar.Replace Find / Replace...
948 endif
Bram Moolenaare2cc9702005-03-15 22:43:58 +0000949 tmenu ToolBar.LoadSesn Chose a session to load
Bram Moolenaar071d4272004-06-13 20:20:40 +0000950 tmenu ToolBar.SaveSesn Save current session
Bram Moolenaare2cc9702005-03-15 22:43:58 +0000951 tmenu ToolBar.RunScript Chose a Vim Script to run
952 tmenu ToolBar.Make Make current project (:make)
953 tmenu ToolBar.RunCtags Build tags in current directory tree (!ctags -R .)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000954 tmenu ToolBar.TagJump Jump to tag under cursor
955 tmenu ToolBar.Help Vim Help
956 tmenu ToolBar.FindHelp Search Vim Help
957endif
958
959" Select a session to load; default to current session name if present
960fun! s:LoadVimSesn()
961 if strlen(v:this_session) > 0
962 let name = v:this_session
963 else
964 let name = "Session.vim"
965 endif
966 execute "browse so " . name
967endfun
968
969" Select a session to save; default to current session name if present
970fun! s:SaveVimSesn()
971 if strlen(v:this_session) == 0
972 let v:this_session = "Session.vim"
973 endif
974 execute "browse mksession! " . v:this_session
975endfun
976
977endif
978
979endif " !exists("did_install_default_menus")
980
981" Define these items always, so that syntax can be switched on when it wasn't.
982" But skip them when the Syntax menu was disabled by the user.
983if !exists("did_install_syntax_menu")
984 an 50.212 &Syntax.&Manual :syn manual<CR>
985 an 50.214 &Syntax.A&utomatic :syn on<CR>
986 an <silent> 50.216 &Syntax.on/off\ for\ &This\ file :call <SID>SynOnOff()<CR>
987 if !exists("*s:SynOnOff")
988 fun s:SynOnOff()
989 if has("syntax_items")
990 syn clear
991 else
992 if !exists("g:syntax_on")
993 syn manual
994 endif
995 set syn=ON
996 endif
997 endfun
998 endif
999endif
1000
1001
1002" Install the Syntax menu only when filetype.vim has been loaded or when
1003" manual syntax highlighting is enabled.
1004" Avoid installing the Syntax menu twice.
1005if (exists("did_load_filetypes") || exists("syntax_on"))
1006 \ && !exists("did_install_syntax_menu")
1007 let did_install_syntax_menu = 1
1008
1009" Skip setting up the individual syntax selection menus unless
1010" do_syntax_sel_menu is defined (it takes quite a bit of time).
1011if exists("do_syntax_sel_menu")
1012 runtime! synmenu.vim
1013else
1014 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>
1015 an 50.195 &Syntax.-SEP1- <Nop>
1016endif
1017
1018an 50.210 &Syntax.&Off :syn off<CR>
1019an 50.700 &Syntax.-SEP3- <Nop>
1020an 50.710 &Syntax.Co&lor\ test :sp $VIMRUNTIME/syntax/colortest.vim<Bar>so %<CR>
1021an 50.720 &Syntax.&Highlight\ test :runtime syntax/hitest.vim<CR>
1022an 50.730 &Syntax.&Convert\ to\ HTML :runtime syntax/2html.vim<CR>
1023
1024endif " !exists("did_install_syntax_menu")
1025
Bram Moolenaar3a7c85b2005-02-05 21:39:53 +00001026unlet! s:paste_i_cmd s:paste_v_cmd s:paste_cmd
1027
Bram Moolenaar071d4272004-06-13 20:20:40 +00001028" Restore the previous value of 'cpoptions'.
1029let &cpo = s:cpo_save
1030unlet s:cpo_save
1031
1032" vim: set sw=2 :