678
|
1 *gui.txt* For Vim version 7.0aa. Last change: 2006 Feb 21
|
7
|
2
|
|
3
|
|
4 VIM REFERENCE MANUAL by Bram Moolenaar
|
|
5
|
|
6
|
|
7 Vim's Graphical User Interface *gui* *GUI*
|
|
8
|
|
9 1. Starting the GUI |gui-start|
|
|
10 2. Scrollbars |gui-scrollbars|
|
|
11 3. Mouse Control |gui-mouse|
|
|
12 4. Making GUI Selections |gui-selections|
|
|
13 5. Menus |menus|
|
|
14 6. Extras |gui-extras|
|
|
15 7. Shell Commands |gui-shell|
|
|
16
|
|
17 Other GUI documentation:
|
|
18 |gui_x11.txt| For specific items of the X11 GUI.
|
|
19 |gui_w32.txt| For specific items of the Win32 GUI.
|
|
20
|
|
21 {Vi does not have any of these commands}
|
|
22
|
|
23 ==============================================================================
|
|
24 1. Starting the GUI *gui-start* *E229* *E233*
|
|
25
|
|
26 First you must make sure you actually have a version of Vim with the GUI code
|
|
27 included. You can check this with the ":version" command, it should include
|
302
|
28 "+GUI_Athena", "+GUI_GTK", "+GUI_KDE", "+GUI_Motif" or "MS-Windows ... bit
|
|
29 GUI version".
|
7
|
30
|
|
31 How to start the GUI depends on the system used. Mostly you can run the
|
|
32 GUI version of Vim with:
|
|
33 gvim [options] [files...]
|
|
34
|
|
35 The X11 version of Vim can run both in GUI and in non-GUI mode. See
|
|
36 |gui-x11-start|.
|
|
37
|
|
38 *gui-init* *gvimrc* *.gvimrc* *_gvimrc*
|
|
39 When the GUI starts up initializations are carried out, in this order:
|
667
|
40 - The 'term' option is set to "builgin_gui" and terminal options are reset to
|
|
41 their default value for the GUI |terminal-options|.
|
7
|
42 - If the system menu file exists, it is sourced. The name of this file is
|
|
43 normally "$VIMRUNTIME/menu.vim". You can check this with ":version". Also
|
|
44 see |$VIMRUNTIME|. To skip loading the system menu include 'M' in
|
|
45 'guioptions'. *buffers-menu* *no_buffers_menu*
|
|
46 The system menu file includes a "Buffers" menu. If you don't want this, set
|
|
47 the "no_buffers_menu" variable in your .vimrc (not .gvimrc!): >
|
|
48 :let no_buffers_menu = 1
|
|
49 < NOTE: Switching on syntax highlighting also loads the menu file, thus
|
|
50 disabling the Buffers menu must be done before ":syntax on".
|
|
51 The path names are truncated to 35 characters. You can truncate them at a
|
|
52 different length, for example 50, like this: >
|
|
53 :let bmenu_max_pathlen = 50
|
|
54 - If the "-U {gvimrc}" command-line option has been used when starting Vim,
|
|
55 the {gvimrc} file will be read for initializations. The following
|
42
|
56 initializations are skipped. When {gvimrc} is "NONE" no file will be read
|
|
57 for initializations.
|
7
|
58 - For Unix and MS-Windows, if the system gvimrc exists, it is sourced. The
|
|
59 name of this file is normally "$VIM/gvimrc". You can check this with
|
|
60 ":version". Also see |$VIM|.
|
|
61 - The following are tried, and only the first one that exists is used:
|
|
62 - If the GVIMINIT environment variable exists and is not empty, it is
|
|
63 executed as an Ex command.
|
|
64 - If the user gvimrc file exists, it is sourced. The name of this file is
|
|
65 normally "$HOME/.gvimrc". You can check this with ":version".
|
|
66 - For Win32, when $HOME is not set, "$VIM\_gvimrc" is used.
|
|
67 - When a "_gvimrc" file is not found, ".gvimrc" is tried too. And vice
|
|
68 versa.
|
|
69 - If the 'exrc' option is set (which is NOT the default) the file ./.gvimrc
|
|
70 is sourced, if it exists and isn't the same file as the system or user
|
|
71 gvimrc file. If this file is not owned by you, some security restrictions
|
|
72 apply. When ".gvimrc" is not found, "_gvimrc" is tried too. For Macintosh
|
|
73 and DOS/Win32 "_gvimrc" is tried first.
|
|
74
|
|
75 NOTE: All but the first one are not carried out if Vim was started with
|
|
76 "-u NONE" and no "-U" argument was given, or when started with "-U NONE".
|
|
77
|
|
78 All this happens AFTER the normal Vim initializations, like reading your
|
|
79 .vimrc file. See |initialization|.
|
|
80 But the GUI window is only opened after all the initializations have been
|
|
81 carried out. If you want some commands to be executed just after opening the
|
|
82 GUI window, use the |GUIEnter| autocommand event. Example: >
|
465
|
83 :autocmd GUIEnter * winpos 100 50
|
7
|
84
|
|
85 You can use the gvimrc files to set up your own customized menus (see |:menu|)
|
|
86 and initialize other things that you may want to set up differently from the
|
|
87 terminal version.
|
|
88
|
|
89 Recommended place for your personal GUI initializations:
|
|
90 Unix $HOME/.gvimrc
|
|
91 OS/2 $HOME/.gvimrc or $VIM/.gvimrc
|
|
92 MS-DOS and Win32 $HOME/_gvimrc or $VIM/_gvimrc
|
|
93 Amiga s:.gvimrc or $VIM/.gvimrc
|
|
94
|
|
95 There are a number of options which only have meaning in the GUI version of
|
|
96 Vim. These are 'guicursor', 'guifont', 'guipty' and 'guioptions'. They are
|
|
97 documented in |options.txt| with all the other options.
|
|
98
|
11
|
99 If using the Motif or Athena version of the GUI (but not for the KDE, GTK+ or
|
|
100 Win32 version), a number of X resources are available. See |gui-resources|.
|
7
|
101
|
|
102 Another way to set the colors for different occasions is with highlight
|
|
103 groups. The "Normal" group is used to set the background and foreground
|
|
104 colors. Example (which looks nice): >
|
|
105
|
|
106 :highlight Normal guibg=grey90
|
|
107
|
|
108 The "guibg" and "guifg" settings override the normal background and
|
|
109 foreground settings. The other settings for the Normal highlight group are
|
|
110 not used. Use the 'guifont' option to set the font.
|
|
111
|
|
112 Also check out the 'guicursor' option, to set the colors for the cursor in
|
|
113 various modes.
|
|
114
|
|
115 Vim tries to make the window fit on the screen when it starts up. This avoids
|
|
116 that you can't see part of it. On the X Window System this requires a bit of
|
|
117 guesswork. You can change the height that is used for the window title and a
|
|
118 task bar with the 'guiheadroom' option.
|
|
119
|
|
120 *:winp* *:winpos* *E188*
|
|
121 :winp[os]
|
|
122 Display current position of the top left corner of the GUI vim
|
|
123 window in pixels. Does not work in all versions.
|
|
124
|
|
125 :winp[os] {X} {Y} *E466*
|
|
126 Put the GUI vim window at the given {X} and {Y} coordinates.
|
|
127 The coordinates should specify the position in pixels of the
|
|
128 top left corner of the window. Does not work in all versions.
|
|
129 Does work in an (new) xterm |xterm-color|.
|
|
130 When the GUI window has not been opened yet, the values are
|
|
131 remembered until the window is opened. The position is
|
|
132 adjusted to make the window fit on the screen (if possible).
|
|
133
|
|
134 *:win* *:winsize* *E465*
|
|
135 :win[size] {width} {height}
|
|
136 Set the window height to {width} by {height} characters.
|
|
137 Obsolete, use ":set lines=11 columns=22".
|
|
138 If you get less lines than expected, check the 'guiheadroom'
|
|
139 option.
|
|
140
|
|
141 If you are running the X Window System, you can get information about the
|
|
142 window Vim is running in with this command: >
|
|
143 :!xwininfo -id $WINDOWID
|
|
144
|
|
145 ==============================================================================
|
|
146 2. Scrollbars *gui-scrollbars*
|
|
147
|
98
|
148 There are vertical scrollbars and a horizontal scrollbar. You may
|
7
|
149 configure which ones appear with the 'guioptions' option.
|
|
150
|
|
151 The interface looks like this (with ":set guioptions=mlrb"):
|
|
152
|
|
153 +------------------------------+
|
|
154 | File Edit Help | <- Menu bar (m)
|
|
155 +-+--------------------------+-+
|
|
156 |^| |^|
|
|
157 |#| Text area. |#|
|
|
158 | | | |
|
|
159 |v|__________________________|v|
|
|
160 Normal status line -> |-+ File.c 5,2 +-|
|
|
161 between Vim windows |^|""""""""""""""""""""""""""|^|
|
|
162 | | | |
|
|
163 | | Another file buffer. | |
|
|
164 | | | |
|
|
165 |#| |#|
|
|
166 Left scrollbar (l) -> |#| |#| <- Right
|
|
167 |#| |#| scrollbar (r)
|
|
168 | | | |
|
|
169 |v| |v|
|
|
170 +-+--------------------------+-+
|
|
171 | |< #### >| | <- Bottom
|
|
172 +-+--------------------------+-+ scrollbar (b)
|
|
173
|
|
174 Any of the scrollbar or menu components may be turned off by not putting the
|
|
175 appropriate letter in the 'guioptions' string. The bottom scrollbar is
|
|
176 only useful when 'nowrap' is set.
|
|
177
|
|
178
|
|
179 VERTICAL SCROLLBARS *gui-vert-scroll*
|
|
180
|
|
181 Each Vim window has a scrollbar next to it which may be scrolled up and down
|
|
182 to move through the text in that buffer. The size of the scrollbar-thumb
|
|
183 indicates the fraction of the buffer which can be seen in the window.
|
|
184 When the scrollbar is dragged all the way down, the last line of the file
|
|
185 will appear in the top of the window.
|
|
186
|
|
187 If a window is shrunk to zero height (by the growth of another window) its
|
236
|
188 scrollbar disappears. It reappears when the window is restored.
|
7
|
189
|
|
190 If a window is vertically split, it will get a scrollbar when it is the
|
|
191 current window and when, taking the middle of the current window and drawing a
|
|
192 vertical line, this line goes through the window.
|
|
193 When there are scrollbars on both sides, and the middle of the current window
|
|
194 is on the left half, the right scrollbar column will contain scrollbars for
|
|
195 the rightmost windows. The same happens on the other side.
|
|
196
|
|
197
|
|
198 HORIZONTAL SCROLLBARS *gui-horiz-scroll*
|
|
199
|
|
200 The horizontal scrollbar (at the bottom of the Vim GUI) may be used to
|
|
201 scroll text sideways when the 'wrap' option is turned off. The
|
|
202 scrollbar-thumb size is such that the text of the longest visible line may be
|
|
203 scrolled as far as possible left and right. The cursor is moved when
|
|
204 necessary, it must remain on a visible character (unless 'virtualedit' is
|
|
205 set).
|
|
206
|
98
|
207 Computing the length of the longest visible line takes quite a bit of
|
|
208 computation, and it has to be done every time something changes. If this
|
|
209 takes too much time or you don't like the cursor jumping to another line,
|
|
210 include the 'h' flag in 'guioptions'. Then the scrolling is limited by the
|
|
211 text of the current cursor line.
|
7
|
212
|
|
213 *athena-intellimouse*
|
|
214 If you have an Intellimouse and an X server that supports using the wheel,
|
|
215 then you can use the wheel to scroll the text up and down in gvim. This works
|
|
216 with XFree86 4.0 and later, and with some older versions when you add patches.
|
|
217 See |scroll-mouse-wheel|.
|
|
218
|
|
219 For older versions of XFree86 you must patch your X server. The following
|
|
220 page has a bit of information about using the Intellimouse on Linux as well as
|
|
221 links to the patches and X server binaries (may not have the one you need
|
|
222 though):
|
|
223 http://www.inria.fr/koala/colas/mouse-wheel-scroll/
|
|
224
|
|
225 ==============================================================================
|
|
226 3. Mouse Control *gui-mouse*
|
|
227
|
|
228 The mouse only works if the appropriate flag in the 'mouse' option is set.
|
|
229 When the GUI is switched on, and 'mouse' wasn't set yet, the 'mouse' option is
|
|
230 automatically set to "a", enabling it for all modes except for the
|
|
231 |hit-enter| prompt. If you don't want this, a good place to change the
|
|
232 'mouse' option is the "gvimrc" file.
|
|
233
|
|
234 Other options that are relevant:
|
|
235 'mousefocus' window focus follows mouse pointer |gui-mouse-focus|
|
|
236 'mousemodel' what mouse button does which action
|
|
237 'mousehide' hide mouse pointer while typing text
|
|
238 'selectmode' whether to start Select mode or Visual mode
|
|
239
|
|
240 A quick way to set these is with the ":behave" command.
|
|
241 *:behave* *:be*
|
|
242 :be[have] {model} Set behavior for mouse and selection. Valid
|
|
243 arguments are:
|
|
244 mswin MS-Windows behavior
|
|
245 xterm Xterm behavior
|
|
246
|
|
247 Using ":behave" changes these options:
|
|
248 option mswin xterm ~
|
|
249 'selectmode' "mouse,key" ""
|
|
250 'mousemodel' "popup" "extend"
|
|
251 'keymodel' "startsel,stopsel" ""
|
|
252 'selection' "exclusive" "inclusive"
|
|
253
|
|
254 In the $VIMRUNTIME directory, there is a script called |mswin.vim|, which will
|
|
255 also map a few keys to the MS-Windows cut/copy/paste commands. This is NOT
|
|
256 compatible, since it uses the CTRL-V, CTRL-X and CTRL-C keys. If you don't
|
|
257 mind, use this command: >
|
|
258 :so $VIMRUNTIME/mswin.vim
|
|
259
|
|
260 For scrolling with a wheel on a mouse, see |scroll-mouse-wheel|.
|
|
261
|
|
262
|
|
263 3.1 Moving Cursor with Mouse *gui-mouse-move*
|
|
264
|
|
265 Click the left mouse button somewhere in a text buffer where you want the
|
|
266 cursor to go, and it does!
|
|
267 This works in when 'mouse' contains ~
|
|
268 Normal mode 'n' or 'a'
|
|
269 Visual mode 'v' or 'a'
|
|
270 Insert mode 'i' or 'a'
|
|
271
|
|
272 Select mode is handled like Visual mode.
|
|
273
|
|
274 You may use this with an operator such as 'd' to delete text from the current
|
|
275 cursor position to the position you point to with the mouse. That is, you hit
|
|
276 'd' and then click the mouse somewhere.
|
|
277
|
|
278 *gui-mouse-focus*
|
|
279 The 'mousefocus' option can be set to make the keyboard focus follow the
|
|
280 mouse pointer. This means that the window where the mouse pointer is, is the
|
|
281 active window. Warning: this doesn't work very well when using a menu,
|
|
282 because the menu command will always be applied to the top window.
|
|
283
|
|
284 If you are on the ':' line (or '/' or '?'), then clicking the left or right
|
|
285 mouse button will position the cursor on the ':' line (if 'mouse' contains
|
|
286 'c', 'a' or 'A').
|
|
287
|
|
288 In any situation the middle mouse button may be clicked to paste the current
|
|
289 selection.
|
|
290
|
|
291
|
|
292 3.2 Selection with Mouse *gui-mouse-select*
|
|
293
|
|
294 The mouse can be used to start a selection. How depends on the 'mousemodel'
|
|
295 option:
|
|
296 'mousemodel' is "extend": use the right mouse button
|
|
297 'mousemodel' is "popup": use the left mouse button, while keeping the Shift
|
|
298 key pressed.
|
|
299
|
|
300 If there was no selection yet, this starts a selection from the old cursor
|
|
301 position to the position pointed to with the mouse. If there already is a
|
|
302 selection then the closest end will be extended.
|
|
303
|
|
304 If 'selectmode' contains "mouse", then the selection will be in Select mode.
|
|
305 This means that typing normal text will replace the selection. See
|
|
306 |Select-mode|. Otherwise, the selection will be in Visual mode.
|
|
307
|
|
308 Double clicking may be done to make the selection word-wise, triple clicking
|
|
309 makes it line-wise, and quadruple clicking makes it rectangular block-wise.
|
|
310
|
|
311 See |gui-selections| on how the selection is used.
|
|
312
|
|
313
|
|
314 3.3 Other Text Selection with Mouse *gui-mouse-modeless*
|
|
315 *modeless-selection*
|
|
316 A different kind of selection is used when:
|
|
317 - in Command-line mode
|
|
318 - in the Command-line window and pointing in another window
|
|
319 - at the |hit-enter| prompt
|
|
320 - whenever the current mode is not in the 'mouse' option
|
|
321 - when holding the CTRL and SHIFT keys in the GUI
|
|
322 Since Vim continues like the selection isn't there, and there is no mode
|
|
323 associated with the selection, this is called modeless selection. Any text in
|
|
324 the Vim window can be selected. Select the text by pressing the left mouse
|
|
325 button at the start, drag to the end and release. To extend the selection,
|
|
326 use the right mouse button when 'mousemodel' is "extend", or the left mouse
|
|
327 button with the shift key pressed when 'mousemodel' is "popup".
|
|
328 The middle mouse button pastes the text.
|
|
329 The selection is removed when the selected text is scrolled or changed.
|
|
330 On the command line CTRL-Y can be used to copy the selection into the
|
|
331 clipboard. To do this from Insert mode, use CTRL-O : CTRL-Y <CR>.
|
|
332
|
|
333
|
|
334 3.4 Using Mouse on Status Lines *gui-mouse-status*
|
|
335
|
|
336 Clicking the left or right mouse button on the status line below a Vim
|
|
337 window makes that window the current window. This actually happens on button
|
|
338 release (to be able to distinguish a click from a drag action).
|
|
339
|
|
340 With the left mouse button a status line can be dragged up and down, thus
|
|
341 resizing the windows above and below it. This does not change window focus.
|
|
342
|
|
343 The same can be used on the vertical separator: click to give the window left
|
|
344 of it focus, drag left and right to make windows wider and narrower.
|
|
345
|
|
346
|
|
347 3.5 Various Mouse Clicks *gui-mouse-various*
|
|
348
|
|
349 <S-LeftMouse> Search forward for the word under the mouse click.
|
|
350 When 'mousemodel' is "popup" this starts or extends a
|
|
351 selection.
|
|
352 <S-RightMouse> Search backward for the word under the mouse click.
|
|
353 <C-LeftMouse> Jump to the tag name under the mouse click.
|
|
354 <C-RightMouse> Jump back to position before the previous tag jump
|
|
355 (same as "CTRL-T")
|
|
356
|
|
357
|
|
358 3.6 Mouse Mappings *gui-mouse-mapping*
|
|
359
|
|
360 The mouse events, complete with modifiers, may be mapped. Eg: >
|
|
361 :map <S-LeftMouse> <RightMouse>
|
|
362 :map <S-LeftDrag> <RightDrag>
|
|
363 :map <S-LeftRelease> <RightRelease>
|
|
364 :map <2-S-LeftMouse> <2-RightMouse>
|
|
365 :map <2-S-LeftDrag> <2-RightDrag>
|
|
366 :map <2-S-LeftRelease> <2-RightRelease>
|
|
367 :map <3-S-LeftMouse> <3-RightMouse>
|
|
368 :map <3-S-LeftDrag> <3-RightDrag>
|
|
369 :map <3-S-LeftRelease> <3-RightRelease>
|
|
370 :map <4-S-LeftMouse> <4-RightMouse>
|
|
371 :map <4-S-LeftDrag> <4-RightDrag>
|
|
372 :map <4-S-LeftRelease> <4-RightRelease>
|
|
373 These mappings make selection work the way it probably should in a Motif
|
|
374 application, with shift-left mouse allowing for extending the visual area
|
|
375 rather than the right mouse button.
|
|
376
|
|
377 Mouse mapping with modifiers does not work for modeless selection.
|
|
378
|
|
379
|
|
380 3.7 Drag and drop *drag-n-drop*
|
|
381
|
|
382 You can drag and drop one or more files into the Vim window, where they will
|
|
383 be opened as if a |:drop| command was used.
|
|
384
|
|
385 If you hold down Shift while doing this, Vim changes to the first dropped
|
|
386 file's directory. If you hold Ctrl Vim will always split a new window for the
|
|
387 file. Otherwise it's only done if the current buffer has been changed.
|
|
388
|
|
389 You can also drop a directory on Vim. This starts the explorer plugin for
|
|
390 that directory (assuming it was enabled, otherwise you'll get an error
|
|
391 message). Keep Shift pressed to change to the directory instead.
|
|
392
|
|
393 If Vim happens to be editing a command line, the names of the dropped files
|
|
394 and directories will be inserted at the cursor. This allows you to use these
|
|
395 names with any Ex command. Special characters (space, tab, double quote and
|
|
396 '|'; backslash on non-MS-Windows systems) will be escaped.
|
|
397
|
|
398 ==============================================================================
|
|
399 4. Making GUI Selections *gui-selections*
|
|
400
|
|
401 *quotestar*
|
|
402 You may make selections with the mouse (see |gui-mouse-select|), or by using
|
|
403 Vim's Visual mode (see |v|). If 'a' is present in 'guioptions', then
|
|
404 whenever a selection is started (Visual or Select mode), or when the selection
|
|
405 is changed, Vim becomes the owner of the windowing system's primary selection
|
|
406 (on MS-Windows the |gui-clipboard| is used; under X11, the |x11-selection| is
|
|
407 used - you should read whichever of these is appropriate now).
|
|
408
|
|
409 *clipboard*
|
|
410 There is a special register for storing this selection, it is the "*
|
|
411 register. Nothing is put in here unless the information about what text is
|
236
|
412 selected is about to change (e.g. with a left mouse click somewhere), or when
|
7
|
413 another application wants to paste the selected text. Then the text is put
|
|
414 in the "* register. For example, to cut a line and make it the current
|
|
415 selection/put it on the clipboard: >
|
|
416
|
|
417 "*dd
|
|
418
|
|
419 Similarly, when you want to paste a selection from another application, e.g.,
|
|
420 by clicking the middle mouse button, the selection is put in the "* register
|
|
421 first, and then 'put' like any other register. For example, to put the
|
|
422 selection (contents of the clipboard): >
|
|
423
|
|
424 "*p
|
|
425
|
|
426 When using this register under X11, also see |x11-selection|. This also
|
|
427 explains the related "+ register.
|
|
428
|
|
429 Note that when pasting text from one Vim into another separate Vim, the type
|
|
430 of selection (character, line, or block) will also be copied. For other
|
|
431 applications the type is always character. However, if the text gets
|
|
432 transferred via the |x11-cut-buffer|, the selection type is ALWAYS lost.
|
|
433
|
|
434 When the "unnamed" string is included in the 'clipboard' option, the unnamed
|
|
435 register is the same as the "* register. Thus you can yank to and paste the
|
|
436 selection without prepending "* to commands.
|
|
437
|
|
438 ==============================================================================
|
|
439 5. Menus *menus*
|
|
440
|
|
441 For an introduction see |usr_42.txt| in the user manual.
|
|
442
|
|
443
|
|
444 5.1 Using Menus *using-menus*
|
|
445
|
|
446 Basically, menus can be used just like mappings. You can define your own
|
|
447 menus, as many as you like.
|
|
448 Long-time Vim users won't use menus much. But the power is in adding your own
|
|
449 menus and menu items. They are most useful for things that you can't remember
|
|
450 what the key sequence was.
|
|
451
|
|
452 For creating menus in a different language, see |:menutrans|.
|
|
453
|
|
454 *menu.vim*
|
|
455 The default menus are read from the file "$VIMRUNTIME/menu.vim". See
|
|
456 |$VIMRUNTIME| for where the path comes from. You can set up your own menus.
|
|
457 Starting off with the default set is a good idea. You can add more items, or,
|
|
458 if you don't like the defaults at all, start with removing all menus
|
|
459 |:unmenu-all|. You can also avoid the default menus being loaded by adding
|
|
460 this line to your .vimrc file (NOT your .gvimrc file!): >
|
|
461 :let did_install_default_menus = 1
|
|
462 If you also want to avoid the Syntax menu: >
|
|
463 :let did_install_syntax_menu = 1
|
|
464 If you do want the Syntax menu but not all the entries for each available
|
|
465 syntax file (which take quite a bit of time to load): >
|
|
466 :let skip_syntax_sel_menu = 1
|
|
467 <
|
|
468 *console-menus*
|
|
469 Although this documentation is in the GUI section, you can actually use menus
|
|
470 in console mode too. You will have to load |menu.vim| explicitly then, it is
|
|
471 not done by default. You can use the |:emenu| command and command-line
|
|
472 completion with 'wildmenu' to access the menu entries almost like a real menu
|
|
473 system. To do this, put these commands in your .vimrc file: >
|
|
474 :source $VIMRUNTIME/menu.vim
|
|
475 :set wildmenu
|
|
476 :set cpo-=<
|
|
477 :set wcm=<C-Z>
|
|
478 :map <F4> :emenu <C-Z>
|
|
479 Pressing <F4> will start the menu. You can now use the cursor keys to select
|
|
480 a menu entry. Hit <Enter> to execute it. Hit <Esc> if you want to cancel.
|
|
481 This does require the |+menu| feature enabled at compile time.
|
|
482
|
|
483 *tear-off-menus*
|
11
|
484 KDE, GTK+ and Motif support Tear-off menus. These are sort of sticky menus or
|
7
|
485 pop-up menus that are present all the time. If the resizing does not work
|
|
486 correctly, this may be caused by using something like "Vim*geometry" in the
|
|
487 defaults. Use "Vim.geometry" instead.
|
|
488
|
|
489 The Win32 GUI version emulates Motif's tear-off menus. Actually, a Motif user
|
|
490 will spot the differences easily, but hopefully they're just as useful. You
|
|
491 can also use the |:tearoff| command together with |hidden-menus| to create
|
|
492 floating menus that do not appear on the main menu bar.
|
|
493
|
|
494
|
|
495 5.2 Creating New Menus *creating-menus*
|
|
496
|
|
497 *:me* *:menu* *:noreme* *:noremenu*
|
|
498 *:am* *:amenu* *:an* *:anoremenu*
|
|
499 *:nme* *:nmenu* *:nnoreme* *:nnoremenu*
|
|
500 *:ome* *:omenu* *:onoreme* *:onoremenu*
|
|
501 *:vme* *:vmenu* *:vnoreme* *:vnoremenu*
|
|
502 *:ime* *:imenu* *:inoreme* *:inoremenu*
|
|
503 *:cme* *:cmenu* *:cnoreme* *:cnoremenu*
|
|
504 *E330* *E327* *E331* *E336* *E333*
|
|
505 *E328* *E329* *E337*
|
|
506 To create a new menu item, use the ":menu" commands. They are mostly like
|
|
507 the ":map" set of commands but the first argument is a menu item name, given
|
236
|
508 as a path of menus and submenus with a '.' between them, e.g.: >
|
7
|
509
|
|
510 :menu File.Save :w<CR>
|
|
511 :inoremenu File.Save <C-O>:w<CR>
|
|
512 :menu Edit.Big\ Changes.Delete\ All\ Spaces :%s/[ ^I]//g<CR>
|
|
513
|
|
514 This last one will create a new item in the menu bar called "Edit", holding
|
|
515 the mouse button down on this will pop up a menu containing the item
|
|
516 "Big Changes", which is a sub-menu containing the item "Delete All Spaces",
|
|
517 which when selected, performs the operation.
|
|
518
|
|
519 Special characters in a menu name:
|
|
520
|
|
521 & The next character is the shortcut key. Make sure each
|
|
522 shortcut key is only used once in a (sub)menu. If you want to
|
|
523 insert a literal "&" in the menu name use "&&".
|
|
524 <Tab> Separates the menu name from right-aligned text. This can be
|
|
525 used to show the equivalent typed command. The text "<Tab>"
|
|
526 can be used here for convenience. If you are using a real
|
|
527 Tab, don't forget to put a backslash before it!
|
|
528 Example: >
|
|
529
|
|
530 :amenu &File.&Open<Tab>:e :browse e<CR>
|
|
531
|
|
532 [typed literally]
|
|
533 With the shortcut "F" (while keeping the <Alt> key pressed), and then "O",
|
|
534 this menu can be used. The second part is shown as "Open :e". The ":e"
|
|
535 is right aligned, and the "O" is underlined, to indicate it is the shortcut.
|
|
536
|
|
537 The ":amenu" command can be used to define menu entries for all modes at once.
|
|
538 To make the command work correctly, a character is automatically inserted for
|
|
539 some modes:
|
|
540 mode inserted appended ~
|
|
541 Normal nothing nothing
|
|
542 Visual <C-C> <C-\><C-G>
|
|
543 Insert <C-O>
|
|
544 Cmdline <C-C> <C-\><C-G>
|
|
545 Op-pending <C-C> <C-\><C-G>
|
|
546
|
|
547 Appending CTRL-\ CTRL-G is for going back to insert mode when 'insertmode' is
|
|
548 set. |CTRL-\_CTRL-G|
|
|
549
|
|
550 Example: >
|
|
551
|
|
552 :amenu File.Next :next^M
|
|
553
|
|
554 is equal to: >
|
|
555
|
|
556 :nmenu File.Next :next^M
|
|
557 :vmenu File.Next ^C:next^M^\^G
|
|
558 :imenu File.Next ^O:next^M
|
|
559 :cmenu File.Next ^C:next^M^\^G
|
|
560 :omenu File.Next ^C:next^M^\^G
|
|
561
|
|
562 Careful: In Insert mode this only works for a SINGLE Normal mode command,
|
|
563 because of the CTRL-O. If you have two or more commands, you will need to use
|
|
564 the ":imenu" command. For inserting text in any mode, you can use the
|
|
565 expression register: >
|
|
566
|
|
567 :amenu Insert.foobar "='foobar'<CR>P
|
|
568
|
|
569 Note that the '<' and 'k' flags in 'cpoptions' also apply here (when
|
|
570 included they make the <> form and raw key codes not being recognized).
|
|
571
|
|
572 Note that <Esc> in Cmdline mode executes the command, like in a mapping. This
|
|
573 is Vi compatible. Use CTRL-C to quit Cmdline mode.
|
|
574
|
|
575 *:menu-<silent>* *:menu-silent*
|
|
576 To define a menu which will not be echoed on the command line, add
|
|
577 "<silent>" as the first argument. Example: >
|
|
578 :menu <silent> Settings.Ignore\ case :set ic<CR>
|
|
579 The ":set ic" will not be echoed when using this menu. Messages from the
|
|
580 executed command are still given though. To shut them up too, add a ":silent"
|
|
581 in the executed command: >
|
|
582 :menu <silent> Search.Header :exe ":silent normal /Header\r"<CR>
|
|
583 <
|
|
584 *:menu-<script>* *:menu-script*
|
|
585 The "to" part of the menu will be inspected for mappings. If you don't want
|
|
586 this, use the ":noremenu" command (or the similar one for a specific mode).
|
|
587 If you do want to use script-local mappings, add "<script>" as the very first
|
|
588 argument to the ":menu" command or after "<silent>".
|
|
589
|
|
590 *menu-priority*
|
|
591 You can give a priority to a menu. Menus with a higher priority go more to
|
|
592 the right. The priority is given as a number before the ":menu" command.
|
|
593 Example: >
|
|
594 :80menu Buffer.next :bn<CR>
|
|
595
|
|
596 The default menus have these priorities:
|
|
597 File 10
|
|
598 Edit 20
|
|
599 Tools 40
|
|
600 Syntax 50
|
|
601 Buffers 60
|
|
602 Window 70
|
|
603 Help 9999
|
|
604
|
|
605 When no or zero priority is given, 500 is used.
|
|
606 The priority for the PopUp menu is not used.
|
|
607
|
|
608 The Help menu will be placed on the far right side of the menu bar on systems
|
|
609 which support this (Motif and GTK+). For GTK+ 2, this is not done anymore
|
|
610 because right-aligning the Help menu is now discouraged UI design.
|
|
611
|
|
612 You can use a priority higher than 9999, to make it go after the Help menu,
|
|
613 but that is non-standard and is discouraged. The highest possible priority is
|
|
614 about 32000. The lowest is 1.
|
|
615
|
|
616 *sub-menu-priority*
|
|
617 The same mechanism can be used to position a sub-menu. The priority is then
|
|
618 given as a dot-separated list of priorities, before the menu name: >
|
|
619 :menu 80.500 Buffer.next :bn<CR>
|
|
620 Giving the sub-menu priority is only needed when the item is not to be put
|
|
621 in a normal position. For example, to put a sub-menu before the other items: >
|
|
622 :menu 80.100 Buffer.first :brew<CR>
|
|
623 Or to put a sub-menu after the other items, and further items with default
|
|
624 priority will be put before it: >
|
|
625 :menu 80.900 Buffer.last :blast<CR>
|
|
626 When a number is missing, the default value 500 will be used: >
|
|
627 :menu .900 myMenu.test :echo "text"<CR>
|
|
628 The menu priority is only used when creating a new menu. When it already
|
|
629 existed, e.g., in another mode, the priority will not change. Thus, the
|
|
630 priority only needs to be given the first time a menu is used.
|
|
631 An exception is the PopUp menu. There is a separate menu for each mode
|
|
632 (Normal, Op-pending, Visual, Insert, Cmdline). The order in each of these
|
|
633 menus can be different. This is different from menu-bar menus, which have
|
|
634 the same order for all modes.
|
|
635 NOTE: sub-menu priorities currently don't work for all versions of the GUI.
|
|
636
|
|
637 *menu-separator* *E332*
|
|
638 Menu items can be separated by a special item that inserts some space between
|
|
639 items. Depending on the system this is displayed as a line or a dotted line.
|
|
640 These items must start with a '-' and end in a '-'. The part in between is
|
|
641 used to give it a unique name. Priorities can be used as with normal items.
|
|
642 Example: >
|
|
643 :menu Example.item1 :do something
|
|
644 :menu Example.-Sep- :
|
|
645 :menu Example.item2 :do something different
|
|
646 Note that the separator also requires a rhs. It doesn't matter what it is,
|
|
647 because the item will never be selected. Use a single colon to keep it
|
|
648 simple.
|
|
649
|
|
650 *gui-toolbar*
|
11
|
651 The toolbar is currently available in the Win32, Athena, Motif, GTK+ (X11),
|
236
|
652 KDE and Photon GUI. It should turn up in other GUIs in due course. The
|
|
653 default toolbar is setup in menu.vim.
|
|
654 The display of the toolbar is controlled by the 'guioptions' letter 'T'. You
|
7
|
655 can thus have menu & toolbar together, or either on its own, or neither.
|
|
656 The appearance is controlled by the 'toolbar' option. You can chose between
|
|
657 an image, text or both.
|
|
658
|
|
659 *toolbar-icon*
|
|
660 The toolbar is defined as a special menu called ToolBar, which only has one
|
|
661 level. Vim interprets the items in this menu as follows:
|
|
662 1) If an "icon=" argument was specified, the file with this name is used.
|
|
663 The file can either be specified with the full path or with the base name.
|
|
664 In the last case it is searched for in the "bitmaps" directory in
|
236
|
665 'runtimepath', like in point 3. Examples: >
|
7
|
666 :amenu icon=/usr/local/pixmaps/foo_icon.xpm ToolBar.Foo :echo "Foo"<CR>
|
|
667 :amenu icon=FooIcon ToolBar.Foo :echo "Foo"<CR>
|
|
668 < Note that in the first case the extension is included, while in the second
|
|
669 case it is omitted.
|
|
670 If the file cannot be opened the next points are tried.
|
|
671 A space in the file name must be escaped with a backslash.
|
|
672 A menu priority must come _after_ the icon argument: >
|
|
673 :amenu icon=foo 1.42 ToolBar.Foo :echo "42!"<CR>
|
|
674 2) An item called 'BuiltIn##', where ## is a number, is taken as number ## of
|
236
|
675 the built-in bitmaps available in Vim. Currently there are 31 numbered
|
7
|
676 from 0 to 30 which cover most common editing operations |builtin-tools|. >
|
|
677 :amenu ToolBar.BuiltIn22 :call SearchNext("back")<CR>
|
|
678 3) An item with another name is first searched for in the directory
|
|
679 "bitmaps" in 'runtimepath'. If found, the bitmap file is used as the
|
|
680 toolbar button image. Note that the exact filename is OS-specific: For
|
|
681 example, under Win32 the command >
|
|
682 :amenu ToolBar.Hello :echo "hello"<CR>
|
|
683 < would find the file 'hello.bmp'. Under GTK+/X11 it is 'Hello.xpm'. With
|
|
684 GTK+ 2 the files 'Hello.png', 'Hello.xpm' and 'Hello.bmp' are checked for
|
|
685 existence, and the first one found would be used.
|
|
686 For MS-Windows and GTK+ 2 the bitmap is scaled to fit the button. For
|
|
687 MS-Windows a size of 18 by 18 pixels works best.
|
|
688 For MS-Windows the bitmap should have 16 colors with the standard palette.
|
|
689 The light grey pixels will be changed to the Window frame color and the
|
|
690 dark grey pixels to the window shadow color. More colors might also work,
|
|
691 depending on your system.
|
|
692 4) If the bitmap is still not found, Vim checks for a match against its list
|
|
693 of built-in names. Each built-in button image has a name.
|
|
694 So the command >
|
|
695 :amenu ToolBar.Open :e
|
|
696 < will show the built-in "open a file" button image if no open.bmp exists.
|
|
697 All the built-in names can be seen used in menu.vim.
|
|
698 5) If all else fails, a blank, but functioning, button is displayed.
|
|
699
|
|
700 *builtin-tools*
|
|
701 nr Name Normal action ~
|
|
702 00 New open new window
|
|
703 01 Open browse for file to open in current window
|
|
704 02 Save write buffer to file
|
|
705 03 Undo undo last change
|
|
706 04 Redo redo last undone change
|
|
707 05 Cut delete selected text to clipboard
|
|
708 06 Copy copy selected text to clipboard
|
|
709 07 Paste paste text from clipboard
|
|
710 08 Print print current buffer
|
|
711 09 Help open a buffer on Vim's builtin help
|
|
712 10 Find start a search command
|
|
713 11 SaveAll write all modified buffers to file
|
|
714 12 SaveSesn write session file for current situation
|
|
715 13 NewSesn write new session file
|
|
716 14 LoadSesn load session file
|
|
717 15 RunScript browse for file to run as a Vim script
|
|
718 16 Replace prompt for substitute command
|
|
719 17 WinClose close current window
|
|
720 18 WinMax make current window use many lines
|
|
721 19 WinMin make current window use few lines
|
|
722 20 WinSplit split current window
|
|
723 21 Shell start a shell
|
|
724 22 FindPrev search again, backward
|
|
725 23 FindNext search again, forward
|
|
726 24 FindHelp prompt for word to search help for
|
|
727 25 Make run make and jump to first error
|
|
728 26 TagJump jump to tag under the cursor
|
|
729 27 RunCtags build tags for files in current directory
|
|
730 28 WinVSplit split current window vertically
|
|
731 29 WinMaxWidth make current window use many columns
|
|
732 30 WinMinWidth make current window use few columns
|
|
733
|
|
734 *hidden-menus* *win32-hidden-menus*
|
|
735 In the Win32 and GTK+ GUI, starting a menu name with ']' excludes that menu
|
|
736 from the main menu bar. You must then use the |:popup| or |:tearoff| command
|
|
737 to display it.
|
|
738
|
|
739 *popup-menu*
|
434
|
740 In the Win32, KDE, GTK+, Motif, Athena and Photon GUI, you can define the
|
|
741 special menu "PopUp". This is the menu that is displayed when the right mouse
|
|
742 button is pressed, if 'mousemodel' is set to popup or popup_setpos.
|
7
|
743
|
|
744
|
|
745 5.3 Showing What Menus Are Mapped To *showing-menus*
|
|
746
|
|
747 To see what an existing menu is mapped to, use just one argument after the
|
|
748 menu commands (just like you would with the ":map" commands). If the menu
|
|
749 specified is a submenu, then all menus under that hierarchy will be shown.
|
|
750 If no argument is given after :menu at all, then ALL menu items are shown
|
236
|
751 for the appropriate mode (e.g., Command-line mode for :cmenu).
|
7
|
752
|
|
753 Special characters in the list, just before the rhs:
|
|
754 * The menu was defined with "nore" to disallow remapping.
|
|
755 & The menu was defined with "<script>" to allow remapping script-local
|
|
756 mappings only.
|
|
757 - The menu was disabled.
|
|
758
|
|
759 Note that hitting <Tab> while entering a menu name after a menu command may
|
|
760 be used to complete the name of the menu item.
|
|
761
|
|
762
|
|
763 5.4 Executing Menus *execute-menus*
|
|
764
|
|
765 *:em* *:emenu* *E334* *E335*
|
|
766 :[range]em[enu] {menu} Execute {menu} from the command line.
|
|
767 The default is to execute the Normal mode
|
|
768 menu. If a range is specified, it executes
|
|
769 the Visual mode menu.
|
|
770 If used from <c-o>, it executes the
|
|
771 insert-mode menu Eg: >
|
|
772 :emenu File.Exit
|
|
773
|
|
774 If the console-mode vim has been compiled with WANT_MENU defined, you can
|
|
775 use :emenu to access useful menu items you may have got used to from GUI
|
|
776 mode. See 'wildmenu' for an option that works well with this. See
|
|
777 |console-menus| for an example.
|
|
778
|
|
779 When using a range, if the lines match with '<,'>, then the menu is executed
|
|
780 using the last visual selection.
|
|
781
|
|
782
|
|
783 5.5 Deleting Menus *delete-menus*
|
|
784
|
|
785 *:unme* *:unmenu*
|
|
786 *:aun* *:aunmenu*
|
|
787 *:nunme* *:nunmenu*
|
|
788 *:ounme* *:ounmenu*
|
|
789 *:vunme* *:vunmenu*
|
|
790 *:iunme* *:iunmenu*
|
|
791 *:cunme* *:cunmenu*
|
|
792 To delete a menu item or a whole submenu, use the unmenu commands, which are
|
|
793 analogous to the unmap commands. Eg: >
|
|
794 :unmenu! Edit.Paste
|
|
795
|
|
796 This will remove the Paste item from the Edit menu for Insert and
|
|
797 Command-line modes.
|
|
798
|
|
799 Note that hitting <Tab> while entering a menu name after an umenu command
|
|
800 may be used to complete the name of the menu item for the appropriate mode.
|
|
801
|
|
802 To remove all menus use: *:unmenu-all* >
|
|
803 :unmenu * " remove all menus in Normal and visual mode
|
|
804 :unmenu! * " remove all menus in Insert and Command-line mode
|
|
805 :aunmenu * " remove all menus in all modes
|
|
806
|
|
807 If you want to get rid of the menu bar: >
|
|
808 :set guioptions-=m
|
|
809
|
|
810
|
|
811 5.6 Disabling Menus *disable-menus*
|
|
812
|
|
813 *:menu-disable* *:menu-enable*
|
|
814 If you do not want to remove a menu, but disable it for a moment, this can be
|
|
815 done by adding the "enable" or "disable" keyword to a ":menu" command.
|
|
816 Examples: >
|
|
817 :menu disable &File.&Open\.\.\.
|
|
818 :amenu enable *
|
|
819 :amenu disable &Tools.*
|
|
820
|
|
821 The command applies to the modes as used with all menu commands. Note that
|
|
822 characters like "&" need to be included for translated names to be found.
|
|
823 When the argument is "*", all menus are affected. Otherwise the given menu
|
|
824 name and all existing submenus below it are affected.
|
|
825
|
|
826
|
|
827 5.7 Examples for Menus *menu-examples*
|
|
828
|
|
829 Here is an example on how to add menu items with menu's! You can add a menu
|
|
830 item for the keyword under the cursor. The register "z" is used. >
|
|
831
|
|
832 :nmenu Words.Add\ Var wb"zye:menu! Words.<C-R>z <C-R>z<CR>
|
|
833 :nmenu Words.Remove\ Var wb"zye:unmenu! Words.<C-R>z<CR>
|
|
834 :vmenu Words.Add\ Var "zy:menu! Words.<C-R>z <C-R>z <CR>
|
|
835 :vmenu Words.Remove\ Var "zy:unmenu! Words.<C-R>z<CR>
|
|
836 :imenu Words.Add\ Var <Esc>wb"zye:menu! Words.<C-R>z <C-R>z<CR>a
|
|
837 :imenu Words.Remove\ Var <Esc>wb"zye:unmenu! Words.<C-R>z<CR>a
|
|
838
|
|
839 (the rhs is in <> notation, you can copy/paste this text to try out the
|
|
840 mappings, or put these lines in your gvimrc; "<C-R>" is CTRL-R, "<CR>" is
|
|
841 the <CR> key. |<>|)
|
|
842
|
|
843
|
|
844 5.8 Tooltips & Menu tips
|
|
845
|
|
846 See section |42.4| in the user manual.
|
|
847
|
|
848 *:tmenu* *:tm*
|
|
849 :tm[enu] {menupath} {rhs} Define a tip for a menu or tool. {only in
|
|
850 X11 and Win32 GUI}
|
|
851
|
|
852 :tm[enu] [menupath] List menu tips. {only in X11 and Win32 GUI}
|
|
853
|
|
854 *:tunmenu* *:tu*
|
|
855 :tu[nmenu] {menupath} Remove a tip for a menu or tool.
|
|
856 {only in X11 and Win32 GUI}
|
|
857
|
|
858 When a tip is defined for a menu item, it appears in the command-line area
|
|
859 when the mouse is over that item, much like a standard Windows menu hint in
|
236
|
860 the status bar. (Except when Vim is in Command-line mode, when of course
|
7
|
861 nothing is displayed.)
|
|
862 When a tip is defined for a ToolBar item, it appears as a tooltip when the
|
|
863 mouse pauses over that button, in the usual fashion. Use the |hl-Tooltip|
|
|
864 highlight group to change its colors.
|
|
865
|
|
866 A "tip" can be defined for each menu item. For example, when defining a menu
|
|
867 item like this: >
|
|
868 :amenu MyMenu.Hello :echo "Hello"<CR>
|
|
869 The tip is defined like this: >
|
|
870 :tmenu MyMenu.Hello Displays a greeting.
|
|
871 And delete it with: >
|
|
872 :tunmenu MyMenu.Hello
|
|
873
|
236
|
874 Tooltips are currently only supported for the X11 and Win32 GUI. However, they
|
7
|
875 should appear for the other gui platforms in the not too distant future.
|
|
876
|
|
877 The ":tmenu" command works just like other menu commands, it uses the same
|
|
878 arguments. ":tunmenu" deletes an existing menu tip, in the same way as the
|
|
879 other unmenu commands.
|
|
880
|
|
881 If a menu item becomes invalid (i.e. its actions in all modes are deleted) Vim
|
|
882 deletes the menu tip (and the item) for you. This means that :aunmenu deletes
|
|
883 a menu item - you don't need to do a :tunmenu as well.
|
|
884
|
|
885
|
|
886 5.9 Popup Menus
|
|
887
|
|
888 In the Win32 and GTK+ GUI, you can cause a menu to popup at the cursor.
|
|
889 This behaves similarly to the PopUp menus except that any menu tree can
|
|
890 be popped up.
|
|
891
|
|
892 This command is for backwards compatibility, using it is discouraged, because
|
|
893 it behaves in a strange way.
|
|
894
|
|
895 *:popup* *:popu*
|
|
896 :popu[p] {name} Popup the menu {name}. The menu named must
|
|
897 have at least one subentry, but need not
|
|
898 appear on the menu-bar (see |hidden-menus|).
|
|
899 {only available for Win32 and GTK GUI}
|
|
900
|
398
|
901 :popu[p]! {name} Like above, but use the position of the mouse
|
|
902 pointer instead of the cursor.
|
|
903
|
7
|
904 Example: >
|
|
905 :popup File
|
398
|
906 will make the "File" menu (if there is one) appear at the text cursor (mouse
|
|
907 pointer if ! was used). >
|
7
|
908
|
|
909 :amenu ]Toolbar.Make :make<CR>
|
|
910 :popup ]Toolbar
|
|
911 This creates a popup menu that doesn't exist on the main menu-bar.
|
|
912
|
|
913 Note that a menu that starts with ']' will not be displayed.
|
|
914
|
|
915 ==============================================================================
|
|
916 6. Extras *gui-extras*
|
|
917
|
|
918 This section describes other features which are related to the GUI.
|
|
919
|
|
920 - With the GUI, there is no wait for one second after hitting escape, because
|
|
921 the key codes don't start with <Esc>.
|
|
922
|
|
923 - Typing ^V followed by a special key in the GUI will insert "<Key>", since
|
|
924 the internal string used is meaningless. Modifiers may also be held down to
|
|
925 get "<Modifiers-Key>".
|
|
926
|
|
927 - In the GUI, the modifiers SHIFT, CTRL, and ALT (or META) may be used within
|
236
|
928 mappings of special keys and mouse events. E.g.: :map <M-LeftDrag> <LeftDrag>
|
7
|
929
|
|
930 - In the GUI, several normal keys may have modifiers in mappings etc, these
|
|
931 are <Space>, <Tab>, <NL>, <CR>, <Esc>.
|
|
932
|
|
933 - To check in a Vim script if the GUI is being used, you can use something
|
|
934 like this: >
|
|
935
|
|
936 if has("gui_running")
|
|
937 echo "yes, we have a GUI"
|
|
938 else
|
|
939 echo "Boring old console"
|
|
940 endif
|
8
|
941 < *setting-guifont*
|
|
942 - When you use the same vimrc file on various systems, you can use something
|
|
943 like this to set options specifically for each type of GUI: >
|
|
944
|
|
945 if has("gui_running")
|
|
946 if has("gui_gtk2")
|
|
947 :set guifont=Luxi\ Mono\ 12
|
|
948 elseif has("gui_kde")
|
|
949 :set guifont=Luxi\ Mono/12/-1/5/50/0/0/0/1/0
|
|
950 elseif has("x11")
|
|
951 " Also for GTK 1
|
|
952 :set guifont=*-lucidatypewriter-medium-r-normal-*-*-180-*-*-m-*-*
|
|
953 elseif has("gui_win32")
|
|
954 :set guifont=Luxi_Mono:h12:cANSI
|
|
955 endif
|
|
956 endif
|
7
|
957
|
678
|
958 A recommended Japanese font is MS Mincho. You can find info here:
|
|
959 http://www.lexikan.com/mincho.htm
|
|
960
|
7
|
961 ==============================================================================
|
|
962 7. Shell Commands *gui-shell*
|
|
963
|
|
964 For the X11 GUI the external commands are executed inside the gvim window.
|
|
965 See |gui-pty|.
|
|
966
|
|
967 WARNING: Executing an external command from the X11 GUI will not always
|
|
968 work. "normal" commands like "ls", "grep" and "make" mostly work fine.
|
|
969 Commands that require an intelligent terminal like "less" and "ispell" won't
|
|
970 work. Some may even hang and need to be killed from another terminal. So be
|
|
971 careful!
|
|
972
|
|
973 For the Win32 GUI the external commands are executed in a separate window.
|
|
974 See |gui-shell-win32|.
|
|
975
|
|
976 vim:tw=78:sw=4:ts=8:ft=help:norl:
|