vim命令复制粘贴命令_linux编辑文件命令vim(vi/vim)
今天被vim的復制粘貼弄得很煩,它不像windows那樣,每次復制會把以前的內容覆蓋。所以有時粘貼出來的東西并不是你想要的。
在不同終端中,用vim打開的兩個文件之間的復制粘貼
1. 用同一個終端,直接使用這個命令:
vim file1 file2
這樣就可以直接用y和p復制粘貼了。
但是這樣比較麻煩,需要在兩個文件之間切換。
2. 之所以不能直接用y和p復制粘貼。是因為每個終端中的vim復制的內容存儲在不同的地方。在這里我們將存儲vim復制到的內容的地方叫做寄存器。
可以使用一下命令查看vim的寄存器的內容:
在vim的normal模式下:
:reg
這樣就可以看到寄存器的名字及其存放的內容了。如下圖所示:
其中,寄存器的名字都是以“開頭的。如果想將 “/ 這個寄存器的內容粘貼到文件中,可以在normal模式下使用如下命令:
”/p
默認按下p粘貼的是 ”“ 這個寄存器的內容。
在這些寄存器中, ”+ 這個寄存器是全局的。也就是說,兩文件中,其他寄存器的內容都可以不一樣,但是 “+ 這個寄存器的內容是一樣的。所以,你可以使用以下命令將內容復制到 ”+ 這個寄存器中:
“+y
然后在另外一個文件中,使用如下命令粘貼;
”+p
這樣就可以了實現兩個文件之間的復制粘貼了。另外,使用鼠標右鍵paste粘貼的內容也是 ”+ 這個寄存器的,可以說它就是系統粘貼板。
如果寄存器列表中沒有 “+ 這個寄存器,可能是沒有安裝vim的圖形界面所致。
Debian/Ubuntu下可以通過安裝vim-gnome解決,命令如下:
$ sudo apt-get install vim-gnome
3. 通過配置 ~/.vimrc 文件實現兩個文件之間的復制粘貼。
把下面這段代碼貼到你的.vimrc里面去,然后選擇一段文本,用xw來copy,在另 外的終端上用xr來貼。原理非常簡單,就是利用一個文件來作中轉。
” transfer/read and write one block of text between vim sessions
” Usage:
” `from’ session:
” ma
” move to end-of-block
” xw
“
” `to’ session:
” move to where I want block inserted
” xr
“
if has(“unix”)
nmap xr :r $HOME/.vimxfer
nmap xw :’a,.w! $HOME/.vimxfer
vmap xr c:r $HOME/.vimxfer
vmap xw :w! $HOME/.vimxfer
else
nmap xr :r c:/.vimxfer
nmap xw :’a,.w! c:/.vimxfer
vmap xr c:r c:/.vimxfer
vmap xw :w! c:/.vimxfer
endif
參考文章:
http://www.cnblogs.com/end/archive/2012/06/01/2531147.html
http://blog.sina.com.cn/s/blog_66f64e510101bqib.html
總結
以上是生活随笔為你收集整理的vim命令复制粘贴命令_linux编辑文件命令vim(vi/vim)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Account group 0170 r
- 下一篇: checkpoint group IB_