annotate runtime/doc/gui.txt @ 26086:781b2d806215

Added tag v8.2.3576 for changeset afc5987e9670b1af0a583a34ddc230f9213a6068
author Bram Moolenaar <Bram@vim.org>
date Wed, 03 Nov 2021 14:30:05 +0100
parents 84c7dc0fdcd2
children d19b7aee1925
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25161
84c7dc0fdcd2 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24569
diff changeset
1 *gui.txt* For Vim version 8.2. Last change: 2021 Jun 27
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 VIM REFERENCE MANUAL by Bram Moolenaar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 Vim's Graphical User Interface *gui* *GUI*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 1. Starting the GUI |gui-start|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 2. Scrollbars |gui-scrollbars|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 3. Mouse Control |gui-mouse|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 4. Making GUI Selections |gui-selections|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 5. Menus |menus|
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
14 6. Font |gui-font|
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
15 7. Extras |gui-extras|
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
16 8. Shell Commands |gui-shell|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 Other GUI documentation:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 |gui_x11.txt| For specific items of the X11 GUI.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 |gui_w32.txt| For specific items of the Win32 GUI.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 1. Starting the GUI *gui-start* *E229* *E233*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 First you must make sure you actually have a version of Vim with the GUI code
694
07d199fe02ed updated for version 7.0209
vimboss
parents: 678
diff changeset
27 included. You can check this with the ":version" command, it says "with xxx
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 5697
diff changeset
28 GUI", where "xxx" is X11-Motif, X11-Athena, Photon, GTK2, GTK3, etc., or
694
07d199fe02ed updated for version 7.0209
vimboss
parents: 678
diff changeset
29 "MS-Windows 32 bit GUI version".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 How to start the GUI depends on the system used. Mostly you can run the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 GUI version of Vim with:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 gvim [options] [files...]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 The X11 version of Vim can run both in GUI and in non-GUI mode. See
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 |gui-x11-start|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
38 *gui-init* *gvimrc* *.gvimrc* *_gvimrc* *$MYGVIMRC*
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
39 The gvimrc file is where GUI-specific startup commands should be placed. It
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
40 is always sourced after the |vimrc| file. If you have one then the $MYGVIMRC
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
41 environment variable has its name.
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
42
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 When the GUI starts up initializations are carried out, in this order:
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
44 - The 'term' option is set to "builtin_gui" and terminal options are reset to
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 465
diff changeset
45 their default value for the GUI |terminal-options|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 - If the system menu file exists, it is sourced. The name of this file is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 normally "$VIMRUNTIME/menu.vim". You can check this with ":version". Also
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 see |$VIMRUNTIME|. To skip loading the system menu include 'M' in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 'guioptions'. *buffers-menu* *no_buffers_menu*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 The system menu file includes a "Buffers" menu. If you don't want this, set
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 the "no_buffers_menu" variable in your .vimrc (not .gvimrc!): >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 :let no_buffers_menu = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 < NOTE: Switching on syntax highlighting also loads the menu file, thus
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 disabling the Buffers menu must be done before ":syntax on".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 The path names are truncated to 35 characters. You can truncate them at a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 different length, for example 50, like this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 :let bmenu_max_pathlen = 50
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 - If the "-U {gvimrc}" command-line option has been used when starting Vim,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 the {gvimrc} file will be read for initializations. The following
42
c75153d791d0 updated for version 7.0026
vimboss
parents: 11
diff changeset
60 initializations are skipped. When {gvimrc} is "NONE" no file will be read
c75153d791d0 updated for version 7.0026
vimboss
parents: 11
diff changeset
61 for initializations.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 - For Unix and MS-Windows, if the system gvimrc exists, it is sourced. The
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 name of this file is normally "$VIM/gvimrc". You can check this with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 ":version". Also see |$VIM|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 - The following are tried, and only the first one that exists is used:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 - If the GVIMINIT environment variable exists and is not empty, it is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 executed as an Ex command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 - If the user gvimrc file exists, it is sourced. The name of this file is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 normally "$HOME/.gvimrc". You can check this with ":version".
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
70 - For Win32, $HOME is set by Vim if needed, see |$HOME-windows|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 - When a "_gvimrc" file is not found, ".gvimrc" is tried too. And vice
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 versa.
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
73 The name of the first file found is stored in $MYGVIMRC, unless it was
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
74 already set.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 - If the 'exrc' option is set (which is NOT the default) the file ./.gvimrc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 is sourced, if it exists and isn't the same file as the system or user
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77 gvimrc file. If this file is not owned by you, some security restrictions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 apply. When ".gvimrc" is not found, "_gvimrc" is tried too. For Macintosh
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 and DOS/Win32 "_gvimrc" is tried first.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 NOTE: All but the first one are not carried out if Vim was started with
11763
21f3930dfe6e Documentation updates.
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
82 "-u NONE" or "-u DEFAULTS" and no "-U" argument was given, or when started
21f3930dfe6e Documentation updates.
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
83 with "-U NONE".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 All this happens AFTER the normal Vim initializations, like reading your
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86 .vimrc file. See |initialization|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 But the GUI window is only opened after all the initializations have been
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88 carried out. If you want some commands to be executed just after opening the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 GUI window, use the |GUIEnter| autocommand event. Example: >
465
49669e1a7c5c updated for version 7.0125
vimboss
parents: 434
diff changeset
90 :autocmd GUIEnter * winpos 100 50
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 You can use the gvimrc files to set up your own customized menus (see |:menu|)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 and initialize other things that you may want to set up differently from the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94 terminal version.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 Recommended place for your personal GUI initializations:
4863
c4d4f0fc12b9 updated for version 7.3.1178
Bram Moolenaar <bram@vim.org>
parents: 3082
diff changeset
97 Unix $HOME/.gvimrc or $HOME/.vim/gvimrc
18912
ccd16426a1f9 patch 8.2.0017: OS/2 and MS-DOS are still mentioned
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
98 Win32 $HOME/_gvimrc, $HOME/vimfiles/gvimrc
4863
c4d4f0fc12b9 updated for version 7.3.1178
Bram Moolenaar <bram@vim.org>
parents: 3082
diff changeset
99 or $VIM/_gvimrc
c4d4f0fc12b9 updated for version 7.3.1178
Bram Moolenaar <bram@vim.org>
parents: 3082
diff changeset
100 Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc
c4d4f0fc12b9 updated for version 7.3.1178
Bram Moolenaar <bram@vim.org>
parents: 3082
diff changeset
101 or $VIM/.gvimrc
19526
22f0dda71638 patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents: 18912
diff changeset
102 Haiku $HOME/config/settings/vim/gvimrc
4863
c4d4f0fc12b9 updated for version 7.3.1178
Bram Moolenaar <bram@vim.org>
parents: 3082
diff changeset
103
c4d4f0fc12b9 updated for version 7.3.1178
Bram Moolenaar <bram@vim.org>
parents: 3082
diff changeset
104 The personal initialization files are searched in the order specified above
c4d4f0fc12b9 updated for version 7.3.1178
Bram Moolenaar <bram@vim.org>
parents: 3082
diff changeset
105 and only the first one that is found is read.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 There are a number of options which only have meaning in the GUI version of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 Vim. These are 'guicursor', 'guifont', 'guipty' and 'guioptions'. They are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 documented in |options.txt| with all the other options.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110
862
bb084e291010 updated for version 7.0g03
vimboss
parents: 859
diff changeset
111 If using the Motif or Athena version of the GUI (but not for the GTK+ or
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 8
diff changeset
112 Win32 version), a number of X resources are available. See |gui-resources|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 Another way to set the colors for different occasions is with highlight
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 groups. The "Normal" group is used to set the background and foreground
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116 colors. Example (which looks nice): >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118 :highlight Normal guibg=grey90
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120 The "guibg" and "guifg" settings override the normal background and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121 foreground settings. The other settings for the Normal highlight group are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122 not used. Use the 'guifont' option to set the font.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124 Also check out the 'guicursor' option, to set the colors for the cursor in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 various modes.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 Vim tries to make the window fit on the screen when it starts up. This avoids
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 that you can't see part of it. On the X Window System this requires a bit of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 guesswork. You can change the height that is used for the window title and a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 task bar with the 'guiheadroom' option.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 *:winp* *:winpos* *E188*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 :winp[os]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 Display current position of the top left corner of the GUI vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 window in pixels. Does not work in all versions.
13437
02b3f719eacb Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12804
diff changeset
136 Also see |getwinpos()|, |getwinposx()| and |getwinposy()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 :winp[os] {X} {Y} *E466*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 Put the GUI vim window at the given {X} and {Y} coordinates.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140 The coordinates should specify the position in pixels of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 top left corner of the window. Does not work in all versions.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142 Does work in an (new) xterm |xterm-color|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 When the GUI window has not been opened yet, the values are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144 remembered until the window is opened. The position is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145 adjusted to make the window fit on the screen (if possible).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 *:win* *:winsize* *E465*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148 :win[size] {width} {height}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 Set the window height to {width} by {height} characters.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150 Obsolete, use ":set lines=11 columns=22".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 If you get less lines than expected, check the 'guiheadroom'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 option.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154 If you are running the X Window System, you can get information about the
5697
c2098c3095e7 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
155 window Vim is running in with these commands: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156 :!xwininfo -id $WINDOWID
5697
c2098c3095e7 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
157 :!xprop -id $WINDOWID
c2098c3095e7 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
158 :execute '!xwininfo -id ' . v:windowid
c2098c3095e7 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
159 :execute '!xprop -id ' . v:windowid
3082
3502a7f991fc Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
160 <
3502a7f991fc Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
161 *gui-IME* *iBus*
3502a7f991fc Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
162 Input methods for international characters in X that rely on the XIM
3502a7f991fc Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
163 framework, most notably iBus, have been known to produce undesirable results
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
164 in gvim. These may include an inability to enter spaces, or long delays
3082
3502a7f991fc Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
165 between typing a character and it being recognized by the application.
3502a7f991fc Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
166
3502a7f991fc Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
167 One workaround that has been successful, for unknown reasons, is to prevent
3502a7f991fc Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
168 gvim from forking into the background by starting it with the |-f| argument.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 2. Scrollbars *gui-scrollbars*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172
98
98435a8ddb09 updated for version 7.0038
vimboss
parents: 42
diff changeset
173 There are vertical scrollbars and a horizontal scrollbar. You may
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 configure which ones appear with the 'guioptions' option.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 The interface looks like this (with ":set guioptions=mlrb"):
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177
2642
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
178 +------------------------------+ `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
179 | File Edit Help | <- Menu bar (m) `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
180 +-+--------------------------+-+ `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
181 |^| |^| `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
182 |#| Text area. |#| `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
183 | | | | `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
184 |v|__________________________|v| `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
185 Normal status line -> |-+ File.c 5,2 +-| `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
186 between Vim windows |^|""""""""""""""""""""""""""|^| `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
187 | | | | `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
188 | | Another file buffer. | | `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
189 | | | | `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
190 |#| |#| `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
191 Left scrollbar (l) -> |#| |#| <- Right `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
192 |#| |#| scrollbar (r) `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
193 | | | | `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
194 |v| |v| `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
195 +-+--------------------------+-+ `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
196 | |< #### >| | <- Bottom `
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
197 +-+--------------------------+-+ scrollbar (b) `
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 Any of the scrollbar or menu components may be turned off by not putting the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 appropriate letter in the 'guioptions' string. The bottom scrollbar is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201 only useful when 'nowrap' is set.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 VERTICAL SCROLLBARS *gui-vert-scroll*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 Each Vim window has a scrollbar next to it which may be scrolled up and down
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 to move through the text in that buffer. The size of the scrollbar-thumb
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 indicates the fraction of the buffer which can be seen in the window.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 When the scrollbar is dragged all the way down, the last line of the file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 will appear in the top of the window.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 If a window is shrunk to zero height (by the growth of another window) its
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 98
diff changeset
213 scrollbar disappears. It reappears when the window is restored.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 If a window is vertically split, it will get a scrollbar when it is the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216 current window and when, taking the middle of the current window and drawing a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217 vertical line, this line goes through the window.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 When there are scrollbars on both sides, and the middle of the current window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219 is on the left half, the right scrollbar column will contain scrollbars for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 the rightmost windows. The same happens on the other side.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223 HORIZONTAL SCROLLBARS *gui-horiz-scroll*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 The horizontal scrollbar (at the bottom of the Vim GUI) may be used to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 scroll text sideways when the 'wrap' option is turned off. The
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 scrollbar-thumb size is such that the text of the longest visible line may be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228 scrolled as far as possible left and right. The cursor is moved when
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229 necessary, it must remain on a visible character (unless 'virtualedit' is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 set).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231
98
98435a8ddb09 updated for version 7.0038
vimboss
parents: 42
diff changeset
232 Computing the length of the longest visible line takes quite a bit of
98435a8ddb09 updated for version 7.0038
vimboss
parents: 42
diff changeset
233 computation, and it has to be done every time something changes. If this
98435a8ddb09 updated for version 7.0038
vimboss
parents: 42
diff changeset
234 takes too much time or you don't like the cursor jumping to another line,
98435a8ddb09 updated for version 7.0038
vimboss
parents: 42
diff changeset
235 include the 'h' flag in 'guioptions'. Then the scrolling is limited by the
98435a8ddb09 updated for version 7.0038
vimboss
parents: 42
diff changeset
236 text of the current cursor line.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
237
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238 *athena-intellimouse*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239 If you have an Intellimouse and an X server that supports using the wheel,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240 then you can use the wheel to scroll the text up and down in gvim. This works
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 with XFree86 4.0 and later, and with some older versions when you add patches.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242 See |scroll-mouse-wheel|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244 For older versions of XFree86 you must patch your X server. The following
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
245 page has a bit of information about using the Intellimouse on Linux as well as
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246 links to the patches and X server binaries (may not have the one you need
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247 though):
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
248 http://www.inria.fr/koala/colas/mouse-wheel-scroll/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
250 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251 3. Mouse Control *gui-mouse*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253 The mouse only works if the appropriate flag in the 'mouse' option is set.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 When the GUI is switched on, and 'mouse' wasn't set yet, the 'mouse' option is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255 automatically set to "a", enabling it for all modes except for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256 |hit-enter| prompt. If you don't want this, a good place to change the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 'mouse' option is the "gvimrc" file.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
258
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
259 Other options that are relevant:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
260 'mousefocus' window focus follows mouse pointer |gui-mouse-focus|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
261 'mousemodel' what mouse button does which action
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
262 'mousehide' hide mouse pointer while typing text
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
263 'selectmode' whether to start Select mode or Visual mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
264
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
265 A quick way to set these is with the ":behave" command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
266 *:behave* *:be*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
267 :be[have] {model} Set behavior for mouse and selection. Valid
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
268 arguments are:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
269 mswin MS-Windows behavior
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
270 xterm Xterm behavior
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
271
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
272 Using ":behave" changes these options:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
273 option mswin xterm ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
274 'selectmode' "mouse,key" ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
275 'mousemodel' "popup" "extend"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
276 'keymodel' "startsel,stopsel" ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
277 'selection' "exclusive" "inclusive"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
278
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
279 In the $VIMRUNTIME directory, there is a script called |mswin.vim|, which will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
280 also map a few keys to the MS-Windows cut/copy/paste commands. This is NOT
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
281 compatible, since it uses the CTRL-V, CTRL-X and CTRL-C keys. If you don't
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
282 mind, use this command: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
283 :so $VIMRUNTIME/mswin.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
284
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
285 For scrolling with a wheel on a mouse, see |scroll-mouse-wheel|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
286
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
288 3.1 Moving Cursor with Mouse *gui-mouse-move*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
289
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
290 Click the left mouse button somewhere in a text buffer where you want the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
291 cursor to go, and it does!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
292 This works in when 'mouse' contains ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
293 Normal mode 'n' or 'a'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
294 Visual mode 'v' or 'a'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
295 Insert mode 'i' or 'a'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297 Select mode is handled like Visual mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
298
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
299 You may use this with an operator such as 'd' to delete text from the current
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
300 cursor position to the position you point to with the mouse. That is, you hit
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
301 'd' and then click the mouse somewhere.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
302
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
303 *gui-mouse-focus*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
304 The 'mousefocus' option can be set to make the keyboard focus follow the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
305 mouse pointer. This means that the window where the mouse pointer is, is the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
306 active window. Warning: this doesn't work very well when using a menu,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
307 because the menu command will always be applied to the top window.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
308
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
309 If you are on the ':' line (or '/' or '?'), then clicking the left or right
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
310 mouse button will position the cursor on the ':' line (if 'mouse' contains
18639
cb3163d590a1 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18594
diff changeset
311 'c' or 'a').
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
312
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
313 In any situation the middle mouse button may be clicked to paste the current
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
314 selection.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
315
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
316
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
317 3.2 Selection with Mouse *gui-mouse-select*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
318
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
319 The mouse can be used to start a selection. How depends on the 'mousemodel'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
320 option:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
321 'mousemodel' is "extend": use the right mouse button
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
322 'mousemodel' is "popup": use the left mouse button, while keeping the Shift
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
323 key pressed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
324
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
325 If there was no selection yet, this starts a selection from the old cursor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
326 position to the position pointed to with the mouse. If there already is a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
327 selection then the closest end will be extended.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
328
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
329 If 'selectmode' contains "mouse", then the selection will be in Select mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
330 This means that typing normal text will replace the selection. See
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
331 |Select-mode|. Otherwise, the selection will be in Visual mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
332
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
333 Double clicking may be done to make the selection word-wise, triple clicking
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
334 makes it line-wise, and quadruple clicking makes it rectangular block-wise.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
335
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
336 See |gui-selections| on how the selection is used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
337
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
338
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
339 3.3 Other Text Selection with Mouse *gui-mouse-modeless*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
340 *modeless-selection*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
341 A different kind of selection is used when:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
342 - in Command-line mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
343 - in the Command-line window and pointing in another window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
344 - at the |hit-enter| prompt
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
345 - whenever the current mode is not in the 'mouse' option
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
346 - when holding the CTRL and SHIFT keys in the GUI
1619
b9740fb41986 updated for version 7.2a
vimboss
parents: 1235
diff changeset
347
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
348 Since Vim continues like the selection isn't there, and there is no mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
349 associated with the selection, this is called modeless selection. Any text in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
350 the Vim window can be selected. Select the text by pressing the left mouse
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
351 button at the start, drag to the end and release. To extend the selection,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
352 use the right mouse button when 'mousemodel' is "extend", or the left mouse
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
353 button with the shift key pressed when 'mousemodel' is "popup".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
354 The selection is removed when the selected text is scrolled or changed.
1619
b9740fb41986 updated for version 7.2a
vimboss
parents: 1235
diff changeset
355
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
356 On the command line CTRL-Y can be used to copy the selection into the
1619
b9740fb41986 updated for version 7.2a
vimboss
parents: 1235
diff changeset
357 clipboard. To do this from Insert mode, use CTRL-O : CTRL-Y <CR>. When
b9740fb41986 updated for version 7.2a
vimboss
parents: 1235
diff changeset
358 'guioptions' contains a or A (default on X11), the selection is automatically
b9740fb41986 updated for version 7.2a
vimboss
parents: 1235
diff changeset
359 copied to the "* register.
b9740fb41986 updated for version 7.2a
vimboss
parents: 1235
diff changeset
360
b9740fb41986 updated for version 7.2a
vimboss
parents: 1235
diff changeset
361 The middle mouse button can then paste the text. On non-X11 systems, you can
b9740fb41986 updated for version 7.2a
vimboss
parents: 1235
diff changeset
362 use CTRL-R +.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
363
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
364
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
365 3.4 Using Mouse on Status Lines *gui-mouse-status*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
366
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
367 Clicking the left or right mouse button on the status line below a Vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
368 window makes that window the current window. This actually happens on button
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
369 release (to be able to distinguish a click from a drag action).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
370
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
371 With the left mouse button a status line can be dragged up and down, thus
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
372 resizing the windows above and below it. This does not change window focus.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
373
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
374 The same can be used on the vertical separator: click to give the window left
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
375 of it focus, drag left and right to make windows wider and narrower.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
376
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
377
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
378 3.5 Various Mouse Clicks *gui-mouse-various*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
379
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
380 <S-LeftMouse> Search forward for the word under the mouse click.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
381 When 'mousemodel' is "popup" this starts or extends a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382 selection.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
383 <S-RightMouse> Search backward for the word under the mouse click.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
384 <C-LeftMouse> Jump to the tag name under the mouse click.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
385 <C-RightMouse> Jump back to position before the previous tag jump
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
386 (same as "CTRL-T")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
387
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
388
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
389 3.6 Mouse Mappings *gui-mouse-mapping*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
390
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
391 The mouse events, complete with modifiers, may be mapped. Eg: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
392 :map <S-LeftMouse> <RightMouse>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
393 :map <S-LeftDrag> <RightDrag>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
394 :map <S-LeftRelease> <RightRelease>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
395 :map <2-S-LeftMouse> <2-RightMouse>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
396 :map <2-S-LeftDrag> <2-RightDrag>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
397 :map <2-S-LeftRelease> <2-RightRelease>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
398 :map <3-S-LeftMouse> <3-RightMouse>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
399 :map <3-S-LeftDrag> <3-RightDrag>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
400 :map <3-S-LeftRelease> <3-RightRelease>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
401 :map <4-S-LeftMouse> <4-RightMouse>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
402 :map <4-S-LeftDrag> <4-RightDrag>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
403 :map <4-S-LeftRelease> <4-RightRelease>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
404 These mappings make selection work the way it probably should in a Motif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
405 application, with shift-left mouse allowing for extending the visual area
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
406 rather than the right mouse button.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
407
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
408 Mouse mapping with modifiers does not work for modeless selection.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
409
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
410
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
411 3.7 Drag and drop *drag-n-drop*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
412
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
413 You can drag and drop one or more files into the Vim window, where they will
25161
84c7dc0fdcd2 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24569
diff changeset
414 be opened as if a |:drop| command was used. You can check if this is
84c7dc0fdcd2 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24569
diff changeset
415 supported with the *drop_file* feature: `has('drop_file')`.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
416
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
417 If you hold down Shift while doing this, Vim changes to the first dropped
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
418 file's directory. If you hold Ctrl Vim will always split a new window for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
419 file. Otherwise it's only done if the current buffer has been changed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
420
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
421 You can also drop a directory on Vim. This starts the explorer plugin for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
422 that directory (assuming it was enabled, otherwise you'll get an error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
423 message). Keep Shift pressed to change to the directory instead.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
424
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
425 If Vim happens to be editing a command line, the names of the dropped files
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
426 and directories will be inserted at the cursor. This allows you to use these
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
427 names with any Ex command. Special characters (space, tab, double quote and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
428 '|'; backslash on non-MS-Windows systems) will be escaped.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
429
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
430 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
431 4. Making GUI Selections *gui-selections*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
432
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
433 *quotestar*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
434 You may make selections with the mouse (see |gui-mouse-select|), or by using
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
435 Vim's Visual mode (see |v|). If 'a' is present in 'guioptions', then
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
436 whenever a selection is started (Visual or Select mode), or when the selection
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
437 is changed, Vim becomes the owner of the windowing system's primary selection
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
438 (on MS-Windows the |gui-clipboard| is used; under X11, the |x11-selection| is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
439 used - you should read whichever of these is appropriate now).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
440
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
441 *clipboard*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
442 There is a special register for storing this selection, it is the "*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
443 register. Nothing is put in here unless the information about what text is
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 98
diff changeset
444 selected is about to change (e.g. with a left mouse click somewhere), or when
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
445 another application wants to paste the selected text. Then the text is put
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
446 in the "* register. For example, to cut a line and make it the current
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
447 selection/put it on the clipboard: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
448
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
449 "*dd
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
450
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
451 Similarly, when you want to paste a selection from another application, e.g.,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
452 by clicking the middle mouse button, the selection is put in the "* register
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
453 first, and then 'put' like any other register. For example, to put the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
454 selection (contents of the clipboard): >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
455
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
456 "*p
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
457
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
458 When using this register under X11, also see |x11-selection|. This also
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
459 explains the related "+ register.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
460
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
461 Note that when pasting text from one Vim into another separate Vim, the type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
462 of selection (character, line, or block) will also be copied. For other
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
463 applications the type is always character. However, if the text gets
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
464 transferred via the |x11-cut-buffer|, the selection type is ALWAYS lost.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
465
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
466 When the "unnamed" string is included in the 'clipboard' option, the unnamed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
467 register is the same as the "* register. Thus you can yank to and paste the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
468 selection without prepending "* to commands.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
469
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
470 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
471 5. Menus *menus*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
472
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
473 For an introduction see |usr_42.txt| in the user manual.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
474
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
475
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
476 5.1 Using Menus *using-menus*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
477
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
478 Basically, menus can be used just like mappings. You can define your own
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
479 menus, as many as you like.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
480 Long-time Vim users won't use menus much. But the power is in adding your own
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
481 menus and menu items. They are most useful for things that you can't remember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
482 what the key sequence was.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
483
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
484 For creating menus in a different language, see |:menutrans|.
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12559
diff changeset
485 If you don't want to use menus at all, see |'go-M'|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
486
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
487 *menu.vim*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
488 The default menus are read from the file "$VIMRUNTIME/menu.vim". See
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
489 |$VIMRUNTIME| for where the path comes from. You can set up your own menus.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
490 Starting off with the default set is a good idea. You can add more items, or,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
491 if you don't like the defaults at all, start with removing all menus
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
492 |:unmenu-all|. You can also avoid the default menus being loaded by adding
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
493 this line to your .vimrc file (NOT your .gvimrc file!): >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
494 :let did_install_default_menus = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
495 If you also want to avoid the Syntax menu: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
496 :let did_install_syntax_menu = 1
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
497 The first item in the Syntax menu can be used to show all available filetypes
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
498 in the menu (which can take a bit of time to load). If you want to have all
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
499 filetypes already present at startup, add: >
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
500 :let do_syntax_sel_menu = 1
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
501
12804
6687b321fb91 patch 8.0.1279: initializing menus can be slow
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
502 The following menuitems show all available color schemes, keymaps and compiler
6687b321fb91 patch 8.0.1279: initializing menus can be slow
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
503 settings:
6687b321fb91 patch 8.0.1279: initializing menus can be slow
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
504 Edit > Color Scheme ~
6687b321fb91 patch 8.0.1279: initializing menus can be slow
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
505 Edit > Keymap ~
6687b321fb91 patch 8.0.1279: initializing menus can be slow
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
506 Tools > Set Compiler ~
6687b321fb91 patch 8.0.1279: initializing menus can be slow
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
507 However, they can also take a bit of time to load, because they search all
6687b321fb91 patch 8.0.1279: initializing menus can be slow
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
508 related files from the directories in 'runtimepath'. Therefore they are
6687b321fb91 patch 8.0.1279: initializing menus can be slow
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
509 loaded lazily (by the |CursorHold| event), or you can also load them manually.
6687b321fb91 patch 8.0.1279: initializing menus can be slow
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
510 If you want to have all these items already present at startup, add: >
6687b321fb91 patch 8.0.1279: initializing menus can be slow
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
511 :let do_no_lazyload_menus = 1
6687b321fb91 patch 8.0.1279: initializing menus can be slow
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
512
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12559
diff changeset
513 Note that the menu.vim is sourced when `:syntax on` or `:filetype on` is
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12559
diff changeset
514 executed or after your .vimrc file is sourced. This means that the 'encoding'
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12559
diff changeset
515 option and the language of messages (`:language messages`) must be set before
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12559
diff changeset
516 that (if you want to change them).
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12559
diff changeset
517
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
518 *console-menus*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
519 Although this documentation is in the GUI section, you can actually use menus
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
520 in console mode too. You will have to load |menu.vim| explicitly then, it is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
521 not done by default. You can use the |:emenu| command and command-line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
522 completion with 'wildmenu' to access the menu entries almost like a real menu
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
523 system. To do this, put these commands in your .vimrc file: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
524 :source $VIMRUNTIME/menu.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
525 :set wildmenu
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
526 :set cpo-=<
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
527 :set wcm=<C-Z>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
528 :map <F4> :emenu <C-Z>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
529 Pressing <F4> will start the menu. You can now use the cursor keys to select
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
530 a menu entry. Hit <Enter> to execute it. Hit <Esc> if you want to cancel.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
531 This does require the |+menu| feature enabled at compile time.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
532
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
533 *tear-off-menus*
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 5697
diff changeset
534 GTK+ 2 and Motif support Tear-off menus. These are sort of sticky menus or
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
535 pop-up menus that are present all the time. If the resizing does not work
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
536 correctly, this may be caused by using something like "Vim*geometry" in the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
537 defaults. Use "Vim.geometry" instead.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
538
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 5697
diff changeset
539 As to GTK+ 3, tear-off menus have been deprecated since GTK+ 3.4.
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 5697
diff changeset
540 Accordingly, they are disabled if gvim is linked against GTK+ 3.4 or later.
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 5697
diff changeset
541
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
542 The Win32 GUI version emulates Motif's tear-off menus. Actually, a Motif user
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
543 will spot the differences easily, but hopefully they're just as useful. You
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
544 can also use the |:tearoff| command together with |hidden-menus| to create
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
545 floating menus that do not appear on the main menu bar.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
546
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
547
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
548 5.2 Creating New Menus *creating-menus*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
549
14952
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
550 *:me* *:menu* *:noreme* *:noremenu*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
551 *E330* *E327* *E331* *E336* *E333*
1120
e6db096b07a1 updated for version 7.1a
vimboss
parents: 874
diff changeset
552 *E328* *E329* *E337* *E792*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
553 To create a new menu item, use the ":menu" commands. They are mostly like
18594
e9a47bcf7b94 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 17909
diff changeset
554 the ":map" set of commands (see |map-modes|), but the first argument is a menu
e9a47bcf7b94 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 17909
diff changeset
555 item name, given as a path of menus and submenus with a '.' between them,
e9a47bcf7b94 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 17909
diff changeset
556 e.g.: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
557
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
558 :menu File.Save :w<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
559 :inoremenu File.Save <C-O>:w<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
560 :menu Edit.Big\ Changes.Delete\ All\ Spaces :%s/[ ^I]//g<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
561
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
562 This last one will create a new item in the menu bar called "Edit", holding
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
563 the mouse button down on this will pop up a menu containing the item
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
564 "Big Changes", which is a sub-menu containing the item "Delete All Spaces",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
565 which when selected, performs the operation.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
566
14952
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
567 To create a menu for terminal mode, use |:tlmenu| instead of |:tmenu| unlike
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
568 key mapping (|:tmap|). This is because |:tmenu| is already used for defining
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
569 tooltips for menus. See |terminal-typing|.
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
570
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
571 Special characters in a menu name:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
572
19657
da791e5c0139 patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19526
diff changeset
573 *menu-shortcut*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
574 & The next character is the shortcut key. Make sure each
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
575 shortcut key is only used once in a (sub)menu. If you want to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
576 insert a literal "&" in the menu name use "&&".
19657
da791e5c0139 patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19526
diff changeset
577 *menu-text*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
578 <Tab> Separates the menu name from right-aligned text. This can be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
579 used to show the equivalent typed command. The text "<Tab>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
580 can be used here for convenience. If you are using a real
1235
d24983341b50 updated for version 7.1
vimboss
parents: 1189
diff changeset
581 tab, don't forget to put a backslash before it!
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
582 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
583
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
584 :amenu &File.&Open<Tab>:e :browse e<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
585
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
586 [typed literally]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
587 With the shortcut "F" (while keeping the <Alt> key pressed), and then "O",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
588 this menu can be used. The second part is shown as "Open :e". The ":e"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
589 is right aligned, and the "O" is underlined, to indicate it is the shortcut.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
590
22441
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
591 *:am* *:amenu* *:an* *:anoremenu*
14952
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
592 The ":amenu" command can be used to define menu entries for all modes at once,
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
593 except for Terminal mode. To make the command work correctly, a character is
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
594 automatically inserted for some modes:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
595 mode inserted appended ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
596 Normal nothing nothing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
597 Visual <C-C> <C-\><C-G>
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
598 Insert <C-\><C-O>
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
599 Cmdline <C-C> <C-\><C-G>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
600 Op-pending <C-C> <C-\><C-G>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
601
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
602 Appending CTRL-\ CTRL-G is for going back to insert mode when 'insertmode' is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
603 set. |CTRL-\_CTRL-G|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
604
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
605 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
606
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
607 :amenu File.Next :next^M
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
608
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
609 is equal to: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
610
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
611 :nmenu File.Next :next^M
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
612 :vmenu File.Next ^C:next^M^\^G
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
613 :imenu File.Next ^\^O:next^M
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
614 :cmenu File.Next ^C:next^M^\^G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
615 :omenu File.Next ^C:next^M^\^G
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
616
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
617 Careful: In Insert mode this only works for a SINGLE Normal mode command,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
618 because of the CTRL-O. If you have two or more commands, you will need to use
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
619 the ":imenu" command. For inserting text in any mode, you can use the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
620 expression register: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
621
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
622 :amenu Insert.foobar "='foobar'<CR>P
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
623
24569
e3ec2ec8841a Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 22441
diff changeset
624 The special text <Cmd> begins a "command menu", it executes the command
e3ec2ec8841a Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 22441
diff changeset
625 directly without changing modes. Where you might use ":...<CR>" you can
e3ec2ec8841a Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 22441
diff changeset
626 instead use "<Cmd>...<CR>". See |<Cmd>| for more info. Example: >
e3ec2ec8841a Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 22441
diff changeset
627 anoremenu File.Next <Cmd>next<CR>
e3ec2ec8841a Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 22441
diff changeset
628
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
629 Note that the '<' and 'k' flags in 'cpoptions' also apply here (when
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
630 included they make the <> form and raw key codes not being recognized).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
631
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
632 Note that <Esc> in Cmdline mode executes the command, like in a mapping. This
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
633 is Vi compatible. Use CTRL-C to quit Cmdline mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
634
22441
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
635 *:nme* *:nmenu* *:nnoreme* *:nnoremenu* *:nunme* *:nunmenu*
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
636 Menu commands starting with "n" work in Normal mode. |mapmode-n|
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
637
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
638 *:ome* *:omenu* *:onoreme* *:onoremenu* *:ounme* *:ounmenu*
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
639 Menu commands starting with "o" work in Operator-pending mode. |mapmode-o|
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
640
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
641 *:vme* *:vmenu* *:vnoreme* *:vnoremenu* *:vunme* *:vunmenu*
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
642 Menu commands starting with "v" work in Visual mode. |mapmode-v|
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
643
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
644 *:xme* *:xmenu* *:xnoreme* *:xnoremenu* *:xunme* *:xunmenu*
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
645 Menu commands starting with "x" work in Visual and Select mode. |mapmode-x|
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
646
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
647 *:sme* *:smenu* *:snoreme* *:snoremenu* *:sunme* *:sunmenu*
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
648 Menu commands starting with "s" work in Select mode. |mapmode-s|
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
649
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
650 *:ime* *:imenu* *:inoreme* *:inoremenu* *:iunme* *:iunmenu*
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
651 Menu commands starting with "i" work in Insert mode. |mapmode-i|
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
652
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
653 *:cme* *:cmenu* *:cnoreme* *:cnoremenu* *:cunme* *:cunmenu*
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
654 Menu commands starting with "c" work in Cmdline mode. |mapmode-c|
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
655
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
656 *:tlm* *:tlmenu* *:tln* *:tlnoremenu* *:tlu* *:tlunmenu*
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
657 Menu commands starting with "tl" work in Terminal mode. |mapmode-t|
a3bb84cd0f59 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
658
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
659 *:menu-<silent>* *:menu-silent*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
660 To define a menu which will not be echoed on the command line, add
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
661 "<silent>" as the first argument. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
662 :menu <silent> Settings.Ignore\ case :set ic<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
663 The ":set ic" will not be echoed when using this menu. Messages from the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
664 executed command are still given though. To shut them up too, add a ":silent"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
665 in the executed command: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
666 :menu <silent> Search.Header :exe ":silent normal /Header\r"<CR>
859
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 856
diff changeset
667 "<silent>" may also appear just after "<special>" or "<script>".
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 856
diff changeset
668
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 856
diff changeset
669 *:menu-<special>* *:menu-special*
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 856
diff changeset
670 Define a menu with <> notation for special keys, even though the "<" flag
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 856
diff changeset
671 may appear in 'cpoptions'. This is useful if the side effect of setting
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 856
diff changeset
672 'cpoptions' is not desired. Example: >
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 856
diff changeset
673 :menu <special> Search.Header /Header<CR>
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 856
diff changeset
674 "<special>" must appear as the very first argument to the ":menu" command or
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 856
diff changeset
675 just after "<silent>" or "<script>".
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 856
diff changeset
676
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
677 *:menu-<script>* *:menu-script*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
678 The "to" part of the menu will be inspected for mappings. If you don't want
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
679 this, use the ":noremenu" command (or the similar one for a specific mode).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
680 If you do want to use script-local mappings, add "<script>" as the very first
859
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 856
diff changeset
681 argument to the ":menu" command or just after "<silent>" or "<special>".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
682
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
683 *menu-priority*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
684 You can give a priority to a menu. Menus with a higher priority go more to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
685 the right. The priority is given as a number before the ":menu" command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
686 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
687 :80menu Buffer.next :bn<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
688
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
689 The default menus have these priorities:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
690 File 10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
691 Edit 20
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
692 Tools 40
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
693 Syntax 50
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
694 Buffers 60
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
695 Window 70
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
696 Help 9999
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
697
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
698 When no or zero priority is given, 500 is used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
699 The priority for the PopUp menu is not used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
700
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
701 The Help menu will be placed on the far right side of the menu bar on systems
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 5697
diff changeset
702 which support this (Motif and GTK+). For GTK+ 2 and 3, this is not done
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 5697
diff changeset
703 anymore because right-aligning the Help menu is now discouraged UI design.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
704
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
705 You can use a priority higher than 9999, to make it go after the Help menu,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
706 but that is non-standard and is discouraged. The highest possible priority is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
707 about 32000. The lowest is 1.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
708
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
709 *sub-menu-priority*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
710 The same mechanism can be used to position a sub-menu. The priority is then
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
711 given as a dot-separated list of priorities, before the menu name: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
712 :menu 80.500 Buffer.next :bn<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
713 Giving the sub-menu priority is only needed when the item is not to be put
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
714 in a normal position. For example, to put a sub-menu before the other items: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
715 :menu 80.100 Buffer.first :brew<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
716 Or to put a sub-menu after the other items, and further items with default
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
717 priority will be put before it: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
718 :menu 80.900 Buffer.last :blast<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
719 When a number is missing, the default value 500 will be used: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
720 :menu .900 myMenu.test :echo "text"<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
721 The menu priority is only used when creating a new menu. When it already
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
722 existed, e.g., in another mode, the priority will not change. Thus, the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
723 priority only needs to be given the first time a menu is used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
724 An exception is the PopUp menu. There is a separate menu for each mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
725 (Normal, Op-pending, Visual, Insert, Cmdline). The order in each of these
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
726 menus can be different. This is different from menu-bar menus, which have
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
727 the same order for all modes.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
728 NOTE: sub-menu priorities currently don't work for all versions of the GUI.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
729
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
730 *menu-separator* *E332*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
731 Menu items can be separated by a special item that inserts some space between
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
732 items. Depending on the system this is displayed as a line or a dotted line.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
733 These items must start with a '-' and end in a '-'. The part in between is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
734 used to give it a unique name. Priorities can be used as with normal items.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
735 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
736 :menu Example.item1 :do something
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
737 :menu Example.-Sep- :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
738 :menu Example.item2 :do something different
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
739 Note that the separator also requires a rhs. It doesn't matter what it is,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
740 because the item will never be selected. Use a single colon to keep it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
741 simple.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
742
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
743 *gui-toolbar*
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 8
diff changeset
744 The toolbar is currently available in the Win32, Athena, Motif, GTK+ (X11),
862
bb084e291010 updated for version 7.0g03
vimboss
parents: 859
diff changeset
745 and Photon GUI. It should turn up in other GUIs in due course. The
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 98
diff changeset
746 default toolbar is setup in menu.vim.
4707450c2b33 updated for version 7.0066
vimboss
parents: 98
diff changeset
747 The display of the toolbar is controlled by the 'guioptions' letter 'T'. You
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
748 can thus have menu & toolbar together, or either on its own, or neither.
2207
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
749 The appearance is controlled by the 'toolbar' option. You can choose between
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
750 an image, text or both.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
751
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
752 *toolbar-icon*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
753 The toolbar is defined as a special menu called ToolBar, which only has one
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
754 level. Vim interprets the items in this menu as follows:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
755 1) If an "icon=" argument was specified, the file with this name is used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
756 The file can either be specified with the full path or with the base name.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
757 In the last case it is searched for in the "bitmaps" directory in
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 98
diff changeset
758 'runtimepath', like in point 3. Examples: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
759 :amenu icon=/usr/local/pixmaps/foo_icon.xpm ToolBar.Foo :echo "Foo"<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
760 :amenu icon=FooIcon ToolBar.Foo :echo "Foo"<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
761 < Note that in the first case the extension is included, while in the second
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
762 case it is omitted.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
763 If the file cannot be opened the next points are tried.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
764 A space in the file name must be escaped with a backslash.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
765 A menu priority must come _after_ the icon argument: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
766 :amenu icon=foo 1.42 ToolBar.Foo :echo "42!"<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
767 2) An item called 'BuiltIn##', where ## is a number, is taken as number ## of
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 98
diff changeset
768 the built-in bitmaps available in Vim. Currently there are 31 numbered
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
769 from 0 to 30 which cover most common editing operations |builtin-tools|. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
770 :amenu ToolBar.BuiltIn22 :call SearchNext("back")<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
771 3) An item with another name is first searched for in the directory
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
772 "bitmaps" in 'runtimepath'. If found, the bitmap file is used as the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
773 toolbar button image. Note that the exact filename is OS-specific: For
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
774 example, under Win32 the command >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
775 :amenu ToolBar.Hello :echo "hello"<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
776 < would find the file 'hello.bmp'. Under GTK+/X11 it is 'Hello.xpm'. With
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
777 GTK+ 2 the files 'Hello.png', 'Hello.xpm' and 'Hello.bmp' are checked for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
778 existence, and the first one found would be used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
779 For MS-Windows and GTK+ 2 the bitmap is scaled to fit the button. For
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
780 MS-Windows a size of 18 by 18 pixels works best.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
781 For MS-Windows the bitmap should have 16 colors with the standard palette.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
782 The light grey pixels will be changed to the Window frame color and the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
783 dark grey pixels to the window shadow color. More colors might also work,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
784 depending on your system.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
785 4) If the bitmap is still not found, Vim checks for a match against its list
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
786 of built-in names. Each built-in button image has a name.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
787 So the command >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
788 :amenu ToolBar.Open :e
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
789 < will show the built-in "open a file" button image if no open.bmp exists.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
790 All the built-in names can be seen used in menu.vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
791 5) If all else fails, a blank, but functioning, button is displayed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
792
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
793 *builtin-tools*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
794 nr Name Normal action ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
795 00 New open new window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
796 01 Open browse for file to open in current window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
797 02 Save write buffer to file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
798 03 Undo undo last change
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
799 04 Redo redo last undone change
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
800 05 Cut delete selected text to clipboard
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
801 06 Copy copy selected text to clipboard
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
802 07 Paste paste text from clipboard
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
803 08 Print print current buffer
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
804 09 Help open a buffer on Vim's builtin help
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
805 10 Find start a search command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
806 11 SaveAll write all modified buffers to file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
807 12 SaveSesn write session file for current situation
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
808 13 NewSesn write new session file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
809 14 LoadSesn load session file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
810 15 RunScript browse for file to run as a Vim script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
811 16 Replace prompt for substitute command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
812 17 WinClose close current window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
813 18 WinMax make current window use many lines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
814 19 WinMin make current window use few lines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
815 20 WinSplit split current window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
816 21 Shell start a shell
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
817 22 FindPrev search again, backward
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
818 23 FindNext search again, forward
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
819 24 FindHelp prompt for word to search help for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
820 25 Make run make and jump to first error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
821 26 TagJump jump to tag under the cursor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
822 27 RunCtags build tags for files in current directory
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
823 28 WinVSplit split current window vertically
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
824 29 WinMaxWidth make current window use many columns
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
825 30 WinMinWidth make current window use few columns
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
826
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
827 *hidden-menus* *win32-hidden-menus*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
828 In the Win32 and GTK+ GUI, starting a menu name with ']' excludes that menu
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
829 from the main menu bar. You must then use the |:popup| or |:tearoff| command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
830 to display it.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
831
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12487
diff changeset
832 *window-toolbar* *WinBar*
12487
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
833 Each window can have a local toolbar. This uses the first line of the window,
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12487
diff changeset
834 thus reduces the space for the text by one line. The items in the toolbar
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12487
diff changeset
835 must start with "WinBar".
12487
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
836
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12487
diff changeset
837 Only text can be used. When using Unicode, special characters can be used to
12487
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
838 make the items look like icons.
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
839
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
840 If the items do not fit then the last ones cannot be used. The toolbar does
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
841 not wrap.
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
842
12559
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
843 Note that Vim may be in any mode when executing these commands. The menu
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
844 should be defined for Normal mode and will be executed without changing the
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
845 current mode. Thus if the current window is in Visual mode and the menu
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
846 command does not intentionally change the mode, Vim will remain in Visual
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
847 mode. Best is to use `:nnoremenu` to avoid side effects.
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
848
12487
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
849 Example for debugger tools: >
12559
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
850 nnoremenu 1.10 WinBar.Step :Step<CR>
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
851 nnoremenu 1.20 WinBar.Next :Next<CR>
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
852 nnoremenu 1.30 WinBar.Finish :Finish<CR>
34c8ec888122 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
853 nnoremenu 1.40 WinBar.Cont :Continue<CR>
12487
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
854 <
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
855 The window toolbar uses the ToolbarLine and ToolbarButton highlight groups.
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
856
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12487
diff changeset
857 When splitting the window the window toolbar is not copied to the new window.
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12487
diff changeset
858
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
859 *popup-menu*
862
bb084e291010 updated for version 7.0g03
vimboss
parents: 859
diff changeset
860 In the Win32, GTK+, Motif, Athena and Photon GUI, you can define the
434
9595cf1d80a7 updated for version 7.0112
vimboss
parents: 398
diff changeset
861 special menu "PopUp". This is the menu that is displayed when the right mouse
9595cf1d80a7 updated for version 7.0112
vimboss
parents: 398
diff changeset
862 button is pressed, if 'mousemodel' is set to popup or popup_setpos.
12487
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
863 Example: >
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
864 nnoremenu 1.40 PopUp.&Paste "+gP
3f16cf18386c patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
865 menu PopUp
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
866
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
867
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
868 5.3 Showing What Menus Are Mapped To *showing-menus*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
869
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
870 To see what an existing menu is mapped to, use just one argument after the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
871 menu commands (just like you would with the ":map" commands). If the menu
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
872 specified is a submenu, then all menus under that hierarchy will be shown.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
873 If no argument is given after :menu at all, then ALL menu items are shown
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 98
diff changeset
874 for the appropriate mode (e.g., Command-line mode for :cmenu).
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
875
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
876 Special characters in the list, just before the rhs:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
877 * The menu was defined with "nore" to disallow remapping.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
878 & The menu was defined with "<script>" to allow remapping script-local
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
879 mappings only.
19721
bceeded72898 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19657
diff changeset
880 s The menu was defined with "<silent>" to avoid showing what it is
bceeded72898 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19657
diff changeset
881 mapped to when triggered.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
882 - The menu was disabled.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
883
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
884 Note that hitting <Tab> while entering a menu name after a menu command may
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
885 be used to complete the name of the menu item.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
886
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
887
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
888 5.4 Executing Menus *execute-menus*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
889
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
890 *:em* *:emenu* *E334* *E335*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
891 :[range]em[enu] {menu} Execute {menu} from the command line.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
892 The default is to execute the Normal mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
893 menu. If a range is specified, it executes
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
894 the Visual mode menu.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
895 If used from <c-o>, it executes the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
896 insert-mode menu Eg: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
897 :emenu File.Exit
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
898
14952
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
899 :[range]em[enu] {mode} {menu} Like above, but execute the menu for {mode}:
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
900 'n': |:nmenu| Normal mode
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
901 'v': |:vmenu| Visual mode
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
902 's': |:smenu| Select mode
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
903 'o': |:omenu| Operator-pending mode
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
904 't': |:tlmenu| Terminal mode
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
905 'i': |:imenu| Insert mode
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
906 'c': |:cmenu| Cmdline mode
15033
f8b0f1e42f2c Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14952
diff changeset
907
14952
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
908
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
909 If the console-mode vim has been compiled with WANT_MENU defined, you can
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
910 use :emenu to access useful menu items you may have got used to from GUI
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
911 mode. See 'wildmenu' for an option that works well with this. See
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
912 |console-menus| for an example.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
913
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
914 When using a range, if the lines match with '<,'>, then the menu is executed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
915 using the last visual selection.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
916
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
917
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
918 5.5 Deleting Menus *delete-menus*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
919
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
920 *:unme* *:unmenu*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
921 *:aun* *:aunmenu*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
922 To delete a menu item or a whole submenu, use the unmenu commands, which are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
923 analogous to the unmap commands. Eg: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
924 :unmenu! Edit.Paste
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
925
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
926 This will remove the Paste item from the Edit menu for Insert and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
927 Command-line modes.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
928
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
929 Note that hitting <Tab> while entering a menu name after an umenu command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
930 may be used to complete the name of the menu item for the appropriate mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
931
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
932 To remove all menus use: *:unmenu-all* >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
933 :unmenu * " remove all menus in Normal and visual mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
934 :unmenu! * " remove all menus in Insert and Command-line mode
15375
6012cc6936f7 patch 8.1.0695: internal error when using :popup
Bram Moolenaar <Bram@vim.org>
parents: 15033
diff changeset
935 :aunmenu * " remove all menus in all modes, except for Terminal
6012cc6936f7 patch 8.1.0695: internal error when using :popup
Bram Moolenaar <Bram@vim.org>
parents: 15033
diff changeset
936 " mode
6012cc6936f7 patch 8.1.0695: internal error when using :popup
Bram Moolenaar <Bram@vim.org>
parents: 15033
diff changeset
937 :tlunmenu * " remove all menus in Terminal mode
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
938
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
939 If you want to get rid of the menu bar: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
940 :set guioptions-=m
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
941
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
942
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
943 5.6 Disabling Menus *disable-menus*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
944
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
945 *:menu-disable* *:menu-enable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
946 If you do not want to remove a menu, but disable it for a moment, this can be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
947 done by adding the "enable" or "disable" keyword to a ":menu" command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
948 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
949 :menu disable &File.&Open\.\.\.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
950 :amenu enable *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
951 :amenu disable &Tools.*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
952
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
953 The command applies to the modes as used with all menu commands. Note that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
954 characters like "&" need to be included for translated names to be found.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
955 When the argument is "*", all menus are affected. Otherwise the given menu
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
956 name and all existing submenus below it are affected.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
957
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
958
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
959 5.7 Examples for Menus *menu-examples*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
960
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
961 Here is an example on how to add menu items with menu's! You can add a menu
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
962 item for the keyword under the cursor. The register "z" is used. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
963
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
964 :nmenu Words.Add\ Var wb"zye:menu! Words.<C-R>z <C-R>z<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
965 :nmenu Words.Remove\ Var wb"zye:unmenu! Words.<C-R>z<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
966 :vmenu Words.Add\ Var "zy:menu! Words.<C-R>z <C-R>z <CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
967 :vmenu Words.Remove\ Var "zy:unmenu! Words.<C-R>z<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
968 :imenu Words.Add\ Var <Esc>wb"zye:menu! Words.<C-R>z <C-R>z<CR>a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
969 :imenu Words.Remove\ Var <Esc>wb"zye:unmenu! Words.<C-R>z<CR>a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
970
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
971 (the rhs is in <> notation, you can copy/paste this text to try out the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
972 mappings, or put these lines in your gvimrc; "<C-R>" is CTRL-R, "<CR>" is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
973 the <CR> key. |<>|)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
974
19657
da791e5c0139 patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19526
diff changeset
975 *tooltips* *menu-tips*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
976 5.8 Tooltips & Menu tips
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
977
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
978 See section |42.4| in the user manual.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
979
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
980 *:tmenu* *:tm*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
981 :tm[enu] {menupath} {rhs} Define a tip for a menu or tool. {only in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
982 X11 and Win32 GUI}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
983
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
984 :tm[enu] [menupath] List menu tips. {only in X11 and Win32 GUI}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
985
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
986 *:tunmenu* *:tu*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
987 :tu[nmenu] {menupath} Remove a tip for a menu or tool.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
988 {only in X11 and Win32 GUI}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
989
14952
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
990 Note: To create menus for terminal mode, use |:tlmenu| instead.
405309f9dd13 patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 14421
diff changeset
991
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
992 When a tip is defined for a menu item, it appears in the command-line area
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
993 when the mouse is over that item, much like a standard Windows menu hint in
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 98
diff changeset
994 the status bar. (Except when Vim is in Command-line mode, when of course
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
995 nothing is displayed.)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
996 When a tip is defined for a ToolBar item, it appears as a tooltip when the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
997 mouse pauses over that button, in the usual fashion. Use the |hl-Tooltip|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
998 highlight group to change its colors.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
999
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1000 A "tip" can be defined for each menu item. For example, when defining a menu
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1001 item like this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1002 :amenu MyMenu.Hello :echo "Hello"<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1003 The tip is defined like this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1004 :tmenu MyMenu.Hello Displays a greeting.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1005 And delete it with: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1006 :tunmenu MyMenu.Hello
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1007
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 98
diff changeset
1008 Tooltips are currently only supported for the X11 and Win32 GUI. However, they
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1009 should appear for the other gui platforms in the not too distant future.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1010
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1011 The ":tmenu" command works just like other menu commands, it uses the same
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1012 arguments. ":tunmenu" deletes an existing menu tip, in the same way as the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1013 other unmenu commands.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1014
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1015 If a menu item becomes invalid (i.e. its actions in all modes are deleted) Vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1016 deletes the menu tip (and the item) for you. This means that :aunmenu deletes
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1017 a menu item - you don't need to do a :tunmenu as well.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1018
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1019
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1020 5.9 Popup Menus
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1021
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1022 In the Win32 and GTK+ GUI, you can cause a menu to popup at the cursor.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1023 This behaves similarly to the PopUp menus except that any menu tree can
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1024 be popped up.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1025
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1026 This command is for backwards compatibility, using it is discouraged, because
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1027 it behaves in a strange way.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1028
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1029 *:popup* *:popu*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1030 :popu[p] {name} Popup the menu {name}. The menu named must
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1031 have at least one subentry, but need not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1032 appear on the menu-bar (see |hidden-menus|).
13437
02b3f719eacb Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12804
diff changeset
1033 {only available for Win32 and GTK GUI or in
17909
cc953757ed2a Runtime files update.
Bram Moolenaar <Bram@vim.org>
parents: 16808
diff changeset
1034 the terminal}
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1035
398
d5dbe17efce2 updated for version 7.0105
vimboss
parents: 302
diff changeset
1036 :popu[p]! {name} Like above, but use the position of the mouse
d5dbe17efce2 updated for version 7.0105
vimboss
parents: 302
diff changeset
1037 pointer instead of the cursor.
13437
02b3f719eacb Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12804
diff changeset
1038 In the terminal this is the last known
02b3f719eacb Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12804
diff changeset
1039 position, which is usually at the last click
14006
665fe1f419b0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
1040 or release (mouse movement is irrelevant).
398
d5dbe17efce2 updated for version 7.0105
vimboss
parents: 302
diff changeset
1041
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1042 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1043 :popup File
398
d5dbe17efce2 updated for version 7.0105
vimboss
parents: 302
diff changeset
1044 will make the "File" menu (if there is one) appear at the text cursor (mouse
d5dbe17efce2 updated for version 7.0105
vimboss
parents: 302
diff changeset
1045 pointer if ! was used). >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1046
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1047 :amenu ]Toolbar.Make :make<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1048 :popup ]Toolbar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1049 This creates a popup menu that doesn't exist on the main menu-bar.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1050
13437
02b3f719eacb Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12804
diff changeset
1051 Note that in the GUI the :popup command will return immediately, before a
02b3f719eacb Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12804
diff changeset
1052 selection has been made. In the terminal the commands waits for the user to
02b3f719eacb Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12804
diff changeset
1053 make a selection.
02b3f719eacb Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12804
diff changeset
1054
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1055 Note that a menu that starts with ']' will not be displayed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1056
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1057 ==============================================================================
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1058 6. Font
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1059
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1060 This section describes font related options.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1061
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1062 GUIFONT *gui-font*
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1063
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1064 'guifont' is the option that tells Vim what font to use. In its simplest form
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1065 the value is just one font name. It can also be a list of font names
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1066 separated with commas. The first valid font is used. When no valid font can
16808
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1067 be found you will get an error message.
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1068
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1069 On systems where 'guifontset' is supported (X11) and 'guifontset' is not
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1070 empty, then 'guifont' is not used. See |xfontset|.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1071
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1072 Note: As to the GTK GUIs, no error is given against any invalid names, and the
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1073 first element of the list is always picked up and made use of. This is
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1074 because, instead of identifying a given name with a font, the GTK GUIs use it
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1075 to construct a pattern and try to look up a font which best matches the
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1076 pattern among available fonts, and this way, the matching never fails. An
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1077 invalid name doesn't matter because a number of font properties other than
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1078 name will do to get the matching done.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1079
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1080 Spaces after a comma are ignored. To include a comma in a font name precede
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1081 it with a backslash. Setting an option requires an extra backslash before a
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1082 space and a backslash. See also |option-backslash|. For example: >
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1083 :set guifont=Screen15,\ 7x13,font\\,with\\,commas
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1084 will make Vim try to use the font "Screen15" first, and if it fails it will
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1085 try to use "7x13" and then "font,with,commas" instead.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1086
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1087 If none of the fonts can be loaded, Vim will keep the current setting. If an
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1088 empty font list is given, Vim will try using other resource settings (for X,
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1089 it will use the Vim.font resource), and finally it will try some builtin
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1090 default which should always be there ("7x13" in the case of X). The font
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1091 names given should be "normal" fonts. Vim will try to find the related bold
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1092 and italic fonts.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1093
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1094 For Win32, GTK, Motif, Mac OS and Photon: >
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1095 :set guifont=*
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1096 will bring up a font requester, where you can pick the font you want.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1097
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1098 The font name depends on the GUI used. See |setting-guifont| for a way to set
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1099 'guifont' for various systems.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1100
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1101 For the GTK+ 2 and 3 GUIs, the font name looks like this: >
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1102 :set guifont=Andale\ Mono\ 11
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1103 That's all. XLFDs are not used. For Chinese this is reported to work well: >
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1104 if has("gui_gtk2")
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1105 set guifont=Bitstream\ Vera\ Sans\ Mono\ 12,Fixed\ 12
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1106 set guifontwide=Microsoft\ Yahei\ 12,WenQuanYi\ Zen\ Hei\ 12
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1107 endif
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1108 <
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1109 (Replace gui_gtk2 with gui_gtk3 for the GTK+ 3 GUI)
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1110
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1111 For Mac OSX you can use something like this: >
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1112 :set guifont=Monaco:h10
21825
0db0640e16e0 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 19721
diff changeset
1113
0db0640e16e0 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 19721
diff changeset
1114 Mono-spaced fonts *E236*
0db0640e16e0 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 19721
diff changeset
1115
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1116 Note that the fonts must be mono-spaced (all characters have the same width).
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1117 An exception is GTK: all fonts are accepted, but mono-spaced fonts look best.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1118
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1119 To preview a font on X11, you might be able to use the "xfontsel" program.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1120 The "xlsfonts" program gives a list of all available fonts.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1121
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1122 For the Win32 GUI *E244* *E245*
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1123 - Takes these options in the font name (use a ':' to separate the options):
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1124 hXX - height is XX (points, can be floating-point)
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1125 wXX - width is XX (points, can be floating-point)
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1126 WXX - weight is XX (see Note on Weights below)
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1127 b - bold. This is equivalent to setting the weight to 700.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1128 i - italic
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1129 u - underline
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1130 s - strikeout
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1131 cXX - character set XX. Valid charsets are: ANSI, ARABIC, BALTIC,
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1132 CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK, HANGEUL,
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1133 HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS, SYMBOL, THAI,
16808
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1134 TURKISH and VIETNAMESE. Normally you would use "cDEFAULT".
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1135 qXX - quality XX. Valid quality names are: PROOF, DRAFT, ANTIALIASED,
16808
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1136 NONANTIALIASED, CLEARTYPE and DEFAULT. Normally you would use
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1137 "qDEFAULT".
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1138 Some quality values are not supported in legacy OSs.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1139 - A '_' can be used in the place of a space, so you don't need to use
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1140 backslashes to escape the spaces.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1141 Examples: >
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1142 :set guifont=courier_new:h12:w5:b:cRUSSIAN
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1143 :set guifont=Andale_Mono:h7.5:w4.5
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1144
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1145 See also |font-sizes|.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1146
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1147 Note on Weights: Fonts often come with a variety of weights. "Normal" weights
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1148 in Windows have a value of 400 and, left unspecified, this is the value that
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1149 will be used when attempting to find fonts. Windows will often match fonts
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1150 based on their weight with higher priority than the font name which means a
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1151 Book or Medium variant of a font might be used despite specifying a Light or
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1152 ExtraLight variant. If you are experiencing heavier weight substitution, then
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1153 explicitly setting a lower weight value may mitigate against this unwanted
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1154 substitution.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1155
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1156
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1157 GUIFONTWIDE *gui-fontwide*
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1158
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1159 When not empty, 'guifontwide' specifies a comma-separated list of fonts to be
16808
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1160 used for double-width characters. The first font that can be loaded is used.
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1161
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1162 Note: The size of these fonts must be exactly twice as wide as the one
16808
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1163 specified with 'guifont' and the same height. If there is a mismatch then the
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1164 text will not be drawn correctly.
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1165
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1166 All GUI versions but GTK+:
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1167
16808
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1168 'guifontwide' is only used when 'encoding' is set to "utf-8" and 'guifontset'
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1169 is empty or invalid.
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1170 When 'guifont' is set and a valid font is found in it and 'guifontwide' is
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1171 empty Vim will attempt to find a matching double-width font and set
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1172 'guifontwide' to it.
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1173
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1174 GTK+ GUI only: *guifontwide_gtk*
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1175
16808
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1176 If set and valid, 'guifontwide' is always used for double width characters,
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1177 even if 'encoding' is not set to "utf-8".
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1178 Vim does not attempt to find an appropriate value for 'guifontwide'
16808
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1179 automatically. If 'guifontwide' is empty Pango/Xft will choose the font for
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1180 characters not available in 'guifont'. Thus you do not need to set
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1181 'guifontwide' at all unless you want to override the choice made by Pango/Xft.
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1182
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1183 Windows +multibyte only: *guifontwide_win_mbyte*
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1184
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1185 If set and valid, 'guifontwide' is used for IME instead of 'guifont'.
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1186
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1187 ==============================================================================
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1188 7. Extras *gui-extras*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1189
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1190 This section describes other features which are related to the GUI.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1191
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1192 - With the GUI, there is no wait for one second after hitting escape, because
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1193 the key codes don't start with <Esc>.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1194
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1195 - Typing ^V followed by a special key in the GUI will insert "<Key>", since
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1196 the internal string used is meaningless. Modifiers may also be held down to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1197 get "<Modifiers-Key>".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1198
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1199 - In the GUI, the modifiers SHIFT, CTRL, and ALT (or META) may be used within
16808
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1200 mappings of special keys and mouse events.
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1201 E.g.: :map <M-LeftDrag> <LeftDrag>
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1202
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1203 - In the GUI, several normal keys may have modifiers in mappings etc, these
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1204 are <Space>, <Tab>, <NL>, <CR>, <Esc>.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1205
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1206 - To check in a Vim script if the GUI is being used, you can use something
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1207 like this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1208
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1209 if has("gui_running")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1210 echo "yes, we have a GUI"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1211 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1212 echo "Boring old console"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1213 endif
8
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1214 < *setting-guifont*
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1215 - When you use the same vimrc file on various systems, you can use something
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1216 like this to set options specifically for each type of GUI: >
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1217
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1218 if has("gui_running")
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1219 if has("gui_gtk2")
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1220 :set guifont=Luxi\ Mono\ 12
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1221 elseif has("x11")
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1222 " Also for GTK 1
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1223 :set guifont=*-lucidatypewriter-medium-r-normal-*-*-180-*-*-m-*-*
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1224 elseif has("gui_win32")
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1225 :set guifont=Luxi_Mono:h12:cANSI
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1226 endif
7edf9b6e4c36 Various changes
vimboss
parents: 7
diff changeset
1227 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1228
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 667
diff changeset
1229 A recommended Japanese font is MS Mincho. You can find info here:
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 667
diff changeset
1230 http://www.lexikan.com/mincho.htm
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 667
diff changeset
1231
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1232 ==============================================================================
16439
9d20e26dc13c patch 8.1.1224: MS-Windows: cannot specify font weight
Bram Moolenaar <Bram@vim.org>
parents: 15375
diff changeset
1233 8. Shell Commands *gui-shell*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1234
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1235 For the X11 GUI the external commands are executed inside the gvim window.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1236 See |gui-pty|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1237
16808
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1238 WARNING: Executing an external command from the X11 GUI will not always work.
c002c4899529 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16553
diff changeset
1239 "normal" commands like "ls", "grep" and "make" mostly work fine.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1240 Commands that require an intelligent terminal like "less" and "ispell" won't
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1241 work. Some may even hang and need to be killed from another terminal. So be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1242 careful!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1243
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1244 For the Win32 GUI the external commands are executed in a separate window.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1245 See |gui-shell-win32|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1246
14421
2f7e67dd088c Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14006
diff changeset
1247 vim:tw=78:sw=4:ts=8:noet:ft=help:norl: