mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-03 17:24:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			259 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			259 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
*usr_09.txt*	Nvim
 | 
						|
 | 
						|
		     VIM USER MANUAL - by Bram Moolenaar
 | 
						|
 | 
						|
				Using the GUI
 | 
						|
 | 
						|
 | 
						|
Vim works in an ordinary terminal, while gVim has a Graphical User Interface
 | 
						|
(GUI).  It can do the same things and a few more.  The GUI offers menus, a
 | 
						|
toolbar, scrollbars and other items.  This chapter is about these extra things
 | 
						|
that the GUI offers.
 | 
						|
 | 
						|
|09.1|	Parts of the GUI
 | 
						|
|09.2|	Using the mouse
 | 
						|
|09.3|	The clipboard
 | 
						|
|09.4|	Select mode
 | 
						|
 | 
						|
     Next chapter: |usr_10.txt|  Making big changes
 | 
						|
 Previous chapter: |usr_08.txt|  Splitting windows
 | 
						|
Table of contents: |usr_toc.txt|
 | 
						|
 | 
						|
==============================================================================
 | 
						|
*09.1*	Parts of the GUI
 | 
						|
 | 
						|
You might have an icon on your desktop that starts gvim.  Otherwise, one of
 | 
						|
these commands should do it: >
 | 
						|
 | 
						|
	gvim file.txt
 | 
						|
	vim -g file.txt
 | 
						|
 | 
						|
If this doesn't work you don't have a version of Vim with GUI support.  You
 | 
						|
will have to install one first.
 | 
						|
   Vim will open a window and display "file.txt" in it.  What the window looks
 | 
						|
like depends on the version of Vim.  It should resemble the following picture
 | 
						|
(for as far as this can be shown in ASCII!).
 | 
						|
 | 
						|
	+----------------------------------------------------+
 | 
						|
	| file.txt + (~/dir) - VIM			   X |	<- window title
 | 
						|
	+----------------------------------------------------+
 | 
						|
	| File	Edit  Tools  Syntax  Buffers  Window  Help   |	<- menubar
 | 
						|
	+----------------------------------------------------+
 | 
						|
	| aaa  bbb  ccc  ddd  eee  fff	ggg  hhh  iii  jjj   |	<- toolbar
 | 
						|
	| aaa  bbb  ccc  ddd  eee  fff	ggg  hhh  iii  jjj   |
 | 
						|
	+----------------------------------------------------+
 | 
						|
	| file text					 | ^ |
 | 
						|
	| ~						 | # |
 | 
						|
	| ~						 | # |	<- scrollbar
 | 
						|
	| ~						 | # |
 | 
						|
	| ~						 | # |
 | 
						|
	| ~						 | # |
 | 
						|
	|						 | V |
 | 
						|
	+----------------------------------------------------+
 | 
						|
 | 
						|
The largest space is occupied by the file text.  This shows the file in the
 | 
						|
same way as in a terminal.  With some different colors and another font
 | 
						|
perhaps.
 | 
						|
 | 
						|
 | 
						|
THE WINDOW TITLE
 | 
						|
 | 
						|
At the very top is the window title.  This is drawn by your window system.
 | 
						|
Vim will set the title to show the name of the current file.  First comes the
 | 
						|
name of the file.  Then some special characters and the directory of the file
 | 
						|
in parens.  These special characters can be present:
 | 
						|
 | 
						|
	• -	The file cannot be modified (e.g., a help file)
 | 
						|
	• +	The file contains changes
 | 
						|
	• =	The file is read-only
 | 
						|
	• =+	The file is read-only, contains changes anyway
 | 
						|
 | 
						|
If nothing is shown you have an ordinary, unchanged file.
 | 
						|
 | 
						|
 | 
						|
THE MENUBAR
 | 
						|
 | 
						|
You know how menus work, right?  Vim has the usual items, plus a few more.
 | 
						|
Browse them to get an idea of what you can use them for.  A relevant submenu
 | 
						|
is Edit/Global Settings.  You will find these entries:
 | 
						|
 | 
						|
	Toggle Toolbar		make the toolbar appear/disappear
 | 
						|
	Toggle Bottom Scrollbar	make a scrollbar appear/disappear at the bottom
 | 
						|
	Toggle Left Scrollbar	make a scrollbar appear/disappear at the left
 | 
						|
	Toggle Right Scrollbar	make a scrollbar appear/disappear at the right
 | 
						|
 | 
						|
 | 
						|
THE TOOLBAR
 | 
						|
 | 
						|
This contains icons for the most often used actions.  Hopefully the icons are
 | 
						|
self-explanatory.  There are tooltips to get an extra hint (move the mouse
 | 
						|
pointer to the icon without clicking and don't move it for a second).
 | 
						|
 | 
						|
The "Edit/Global Settings/Toggle Toolbar" menu item can be used to make the
 | 
						|
toolbar disappear.  If you never want a toolbar, use this command in your
 | 
						|
vimrc file: >
 | 
						|
 | 
						|
	:set guioptions-=T
 | 
						|
 | 
						|
This removes the 'T' flag from the 'guioptions' option.  Other parts of the
 | 
						|
GUI can also be enabled or disabled with this option.  See the help for it.
 | 
						|
 | 
						|
 | 
						|
THE SCROLLBARS
 | 
						|
 | 
						|
By default there is one scrollbar on the right.  It does the obvious thing.
 | 
						|
When you split the window, each window will get its own scrollbar.
 | 
						|
   You can make a horizontal scrollbar appear with the menu item
 | 
						|
Edit/Global Settings/Toggle Bottom Scrollbar.  This is useful in diff mode, or
 | 
						|
when the 'wrap' option has been reset (more about that later).
 | 
						|
 | 
						|
When there are vertically split windows, only the windows on the right side
 | 
						|
will have a scrollbar.  However, when you move the cursor to a window on the
 | 
						|
left, it will be this one that the scrollbar controls.  This takes a bit of
 | 
						|
time to get used to.
 | 
						|
   When you work with vertically split windows, consider adding a scrollbar on
 | 
						|
the left.  This can be done with a menu item, or with the 'guioptions' option:
 | 
						|
>
 | 
						|
	:set guioptions+=l
 | 
						|
 | 
						|
This adds the 'l' flag to 'guioptions'.
 | 
						|
 | 
						|
==============================================================================
 | 
						|
*09.2*	Using the mouse
 | 
						|
 | 
						|
Standards are wonderful.  In Microsoft Windows, you can use the mouse to
 | 
						|
select text in a standard manner.  The X Window system also has a standard
 | 
						|
system for using the mouse.  Unfortunately, these two standards are not the
 | 
						|
same. Fortunately, you can customize Vim.
 | 
						|
 | 
						|
The following commands makes the mouse work more like a Microsoft Windows mouse: >
 | 
						|
 | 
						|
	set selection=exclusive
 | 
						|
	set selectmode=mouse,key
 | 
						|
	set keymodel=startsel,stopsel
 | 
						|
 | 
						|
The mouse can be further tuned.  Check out these options if you want to change
 | 
						|
the way how the mouse works:
 | 
						|
 | 
						|
	'mouse'			in which mode the mouse is used by Vim
 | 
						|
	'mousemodel'		what effect a mouse click has
 | 
						|
	'mousetime'		time between clicks for a double-click
 | 
						|
	'mousehide'		hide the mouse while typing
 | 
						|
	'selectmode'		whether the mouse starts Visual or Select mode
 | 
						|
 | 
						|
==============================================================================
 | 
						|
*09.3*	The clipboard
 | 
						|
 | 
						|
In section |04.7| the basic use of the clipboard was explained.  There is one
 | 
						|
essential thing to explain about X-windows: There are actually two places to
 | 
						|
exchange text between programs.  MS-Windows doesn't have this.
 | 
						|
 | 
						|
In X-Windows there is the "current selection".  This is the text that is
 | 
						|
currently highlighted.  In Vim this is the Visual area (this assumes you are
 | 
						|
using the default option settings).  You can paste this selection in another
 | 
						|
application without any further action.
 | 
						|
   For example, in this text select a few words with the mouse.  Vim will
 | 
						|
switch to Visual mode and highlight the text.  Now start another gvim, without
 | 
						|
a file name argument, so that it displays an empty window.  Click the middle
 | 
						|
mouse button.  The selected text will be inserted.
 | 
						|
 | 
						|
The "current selection" will only remain valid until some other text is
 | 
						|
selected.  After doing the paste in the other gvim, now select some characters
 | 
						|
in that window.  You will notice that the words that were previously selected
 | 
						|
in the other gvim window are displayed differently.  This means that it no
 | 
						|
longer is the current selection.
 | 
						|
 | 
						|
You don't need to select text with the mouse, using the keyboard commands for
 | 
						|
Visual mode works just as well.
 | 
						|
 | 
						|
 | 
						|
THE REAL CLIPBOARD
 | 
						|
 | 
						|
Now for the other place with which text can be exchanged.  We call this the
 | 
						|
"real clipboard", to avoid confusion.  Often both the "current selection" and
 | 
						|
the "real clipboard" are called clipboard, you'll have to get used to that.
 | 
						|
   To put text on the real clipboard, select a few different words in one of
 | 
						|
the gvims you have running.  Then use the Edit/Copy menu entry.  Now the text
 | 
						|
has been copied to the real clipboard.  You can't see this, unless you have
 | 
						|
some application that shows the clipboard contents (e.g., KDE's Klipper).
 | 
						|
   Now select the other gvim, position the cursor somewhere and use the
 | 
						|
Edit/Paste menu.  You will see the text from the real clipboard is inserted.
 | 
						|
 | 
						|
 | 
						|
USING BOTH
 | 
						|
 | 
						|
This use of both the "current selection" and the "real clipboard" might sound
 | 
						|
a bit confusing.  But it is very useful.  Let's show this with an example.
 | 
						|
Use one gvim with a text file and perform these actions:
 | 
						|
 | 
						|
-  Select two words in Visual mode.
 | 
						|
-  Use the Edit/Copy menu to get these words onto the clipboard.
 | 
						|
-  Select one other word in Visual mode.
 | 
						|
-  Use the Edit/Paste menu item.  What will happen is that the single selected
 | 
						|
   word is replaced with the two words from the clipboard.
 | 
						|
-  Move the mouse pointer somewhere else and click the middle button.  You
 | 
						|
   will see that the word you just overwrote with the clipboard is inserted
 | 
						|
   here.
 | 
						|
 | 
						|
If you use the "current selection" and the "real clipboard" with care, you can
 | 
						|
do a lot of useful editing with them.
 | 
						|
 | 
						|
 | 
						|
USING THE KEYBOARD
 | 
						|
 | 
						|
If you don't like using the mouse, you can access the current selection and
 | 
						|
the real clipboard with two registers.  The "* register is for the current
 | 
						|
selection.
 | 
						|
   To make text become the current selection, use Visual mode.  For example,
 | 
						|
to select a whole line just press "V".
 | 
						|
   To insert the current selection before the cursor: >
 | 
						|
 | 
						|
	"*P
 | 
						|
 | 
						|
Notice the uppercase "P".  The lowercase "p" puts the text after the cursor.
 | 
						|
 | 
						|
The "+ register is used for the real clipboard.  For example, to copy the text
 | 
						|
from the cursor position until the end of the line to the clipboard: >
 | 
						|
 | 
						|
	"+y$
 | 
						|
 | 
						|
Remember, "y" is yank, which is Vim's copy command.
 | 
						|
   To insert the contents of the real clipboard before the cursor: >
 | 
						|
 | 
						|
	"+P
 | 
						|
 | 
						|
It's the same as for the current selection, but uses the plus (+) register
 | 
						|
instead of the star "*" register.
 | 
						|
 | 
						|
==============================================================================
 | 
						|
*09.4*	Select mode
 | 
						|
 | 
						|
And now something that is used more often on MS-Windows than on X-Windows.
 | 
						|
But both can do it.  You already know about Visual mode.  Select mode is like
 | 
						|
Visual mode, because it is also used to select text.  But there is an obvious
 | 
						|
difference: When typing text, the selected text is deleted and the typed text
 | 
						|
replaces it.
 | 
						|
 | 
						|
To start working with Select mode, you must first enable it (for MS-Windows
 | 
						|
it is probably already enabled, but you can do this anyway): >
 | 
						|
 | 
						|
	:set selectmode+=mouse
 | 
						|
 | 
						|
Now use the mouse to select some text.  It is highlighted like in Visual mode.
 | 
						|
Now press a letter.  The selected text is deleted, and the single letter
 | 
						|
replaces it.  You are in Insert mode now, thus you can continue typing.
 | 
						|
 | 
						|
Since typing normal text causes the selected text to be deleted, you can not
 | 
						|
use the normal movement commands "hjkl", "w", etc.  Instead, use the shifted
 | 
						|
function keys.  <S-Left> (shifted cursor left key) moves the cursor left.  The
 | 
						|
selected text is changed like in Visual mode.  The other shifted cursor keys
 | 
						|
do what you expect.  <S-End> and <S-Home> also work.
 | 
						|
 | 
						|
You can tune the way Select mode works with the 'selectmode' option.
 | 
						|
 | 
						|
==============================================================================
 | 
						|
 | 
						|
Next chapter: |usr_10.txt|  Making big changes
 | 
						|
 | 
						|
Copyright: see |manual-copyright|  vim:tw=78:ts=8:noet:ft=help:norl:
 |