Tag: sourceedit |
Tag: sourceedit |
||
Line 93: | Line 93: | ||
==See also== |
==See also== |
||
− | *[[VimTip356|Quick yank and paste]] |
+ | * [[VimTip356|Quick yank and paste]] |
* [[Cut/copy and paste using visual selection]] |
* [[Cut/copy and paste using visual selection]] |
||
+ | * [[In line copy and paste to system clipboard]] |
||
+ | * [[Accessing the system clipboard]] |
||
==Comments== |
==Comments== |
Revision as of 22:21, 20 May 2016
created August 13, 2002 · complexity intermediate · version 6.0
Here is how to cut-and-paste or copy-and-paste text using a visual selection in Vim. See Cut/copy and paste using visual selection for the main article.
Cut and paste:
- Position the cursor where you want to begin cutting.
- Press
v
to select characters (or uppercaseV
to select whole lines, orCtrl-v
to select rectangular blocks). - Move the cursor to the end of what you want to cut.
- Press
d
to cut (ory
to copy). - Move to where you would like to paste.
- Press
P
to paste before the cursor, orp
to paste after.
Copy and paste is performed with the same steps except for step 4 where you would press y
instead of d
:
d
stands for delete in Vim, which in other editors is usually called cuty
stands for yank in Vim, which in other editors is usually called copy
Copying and cutting in normal mode
In normal mode, one can copy (yank) with y{motion}
, where {motion}
is a Vim motion. For example, yw
copies to the beginning of the next word. Other helpful yanking commands include:
yy
orY
– yank the current line, including the newline character at the end of the liney$
– yank to the end of the current line (but don't yank the newline character); note that many people like to remapY
toy$
in line withC
andD
yiw
– yank the current word (excluding surrounding whitespace)yaw
– yank the current word (including leading or trailing whitespace)
Cutting can be done using d{motion}
.
Pasting in normal mode
In normal mode, one can use p
to paste after the cursor, or P
to paste before the cursor.
The variants gp
and gP
move the cursor after the pasted text, instead of leaving the cursor stationary.
To select a register from which to paste, one can use "{register}p
to paste from the register {register}
. See Pasting registers for more information.
Copying and cutting in command-line mode
To copy text in command-line mode, one must first open the command-line window with <C-f>
. After this, one can copy as in normal mode.
Pasting in command-line mode
There are two approaches to pasting in command-line mode. The first is to open the command-line window with <C-f>
, and then paste as in normal mode.
The second approach is to use <C-r>{register}
to paste the contents of the register {register}
. In particular, <C-r>"
pastes from the default register (so the same as p
in normal mode). See Pasting registers for more information.
Multiple copying
Main article: Pasting registers.
Deleted or copied text is placed in the unnamed register. If wanted, a register can be specified so the text is also copied to the named register. A register is a location in Vim's memory identified with a single letter. A double quote character is used to specify that the next letter typed is the name of a register.
For example, you could select the text hello
then type "ay
to copy "hello" to the a
register. Then you could select the text world
and type "by
to copy "world" to the b
register. After moving the cursor to another location, the text could be pasted: type "ap
to paste "hello" or "bp
to paste "world". These commands paste the text after the cursor. Alternatively, type "aP
or "bP
to paste before the cursor.
Windows clipboard
When using Vim under Windows, the clipboard can be accessed with the following:
- In step 4, press Shift+Delete to cut or Ctrl+Insert to copy.
- In step 6, press Shift+Insert to paste.
Different instances
How does one copy and paste between two instances of Vim on different Linux consoles?
After copying text, open a new buffer for a new file:
:e ~/dummy
- Paste the text to the new buffer.
- Write the new buffer
:w
. - Switch to the previous buffer
:bp
to release *.swp. - Now switch to the other console.
- Put the cursor at the desired place.
- Read the dummy file
:r ~/dummy
Increasing the buffer size
By default, only the first 50 lines in a register are saved, and a register is not saved if it contains more than 10 kilobytes. :help 'viminfo'
In the example below, the first line displays the current settings, while the second line sets:
'100
Marks will be remembered for the last 100 edited files.<100
Limits the number of lines saved for each register to 100 lines; if a register contains more than 100 lines, only the first 100 lines are saved.s20
Limits the maximum size of each item to 20 kilobytes; if a register contains more than 20 kilobytes, the register is not saved.h
Disables search highlighting when Vim starts.
:set viminfo? :set viminfo='100,<100,s20,h
See also
- Quick yank and paste
- Cut/copy and paste using visual selection
- In line copy and paste to system clipboard
- Accessing the system clipboard