【vim小小記】vim的複製粘貼(包括系統剪貼簿)

來源:互聯網
上載者:User

標籤:vim   ctrl v   剪貼簿   複製   粘貼   

1、vim常用複製粘貼命令


Vim的複製粘貼命令無疑是y (yank),p(paster),加上yy,P


PS:

vim有個很有意思的約定(我覺得是一種約定),就是某個命令的大小寫都是實現某種功能,只是方向不同,比如:

w 跳轉到下個word,W:跳轉到上個wordf  某行正向尋找並跳轉    F: 反向....

然後部分雙寫的字母有行操作:

yy   複製一行dd   刪除一行

所以,

p就是在當前游標後粘貼,P就是在當前游標前粘貼


另外,說完p,其實還有幾個命令有時也是很有用的

gp,和p的功能基本一致,只是粘貼完,它會把游標移動至粘貼內容之後;gP同理:pu[t] ,注意,這個是在命令介面輸入的pu/put,它的意思是把x寄存器的內容粘貼到下一行


2、vim的寄存器和系統剪貼簿
寄存器簡介

vim強大之處之一就是它內建一堆寄存器,每個寄存器獨立使用,你可以在不同寄存器中儲存不同資料,命令,你可以把這個想象成一個加強版的剪貼簿,當然它的功能不止剪貼簿這麼簡單。如果你想看vim的官方文檔有關部分:

:help  registers


根據官方手冊:vim有9種寄存器

There are nine types of registers:                      registers E354
1. The unnamed register ""
2. 10 numbered registers "0 to "9
3. The small delete register "-
4. 26 named registers "a to "z or "A to "Z
5. four read-only registers ":, "., "% and "#
6. the expression register "=
7. The selection and drop registers "*, "+ and "~
8. The black hole register "_
9. Last search pattern register "/


1.無名(unnamed)寄存器:"",緩衝最後一次操作內容;

2.數字(numbered)寄存器:"0 ~"9,緩衝最近操作內容,複製與刪除有別, "0寄存器緩衝最近一次複製的內容,"1-"9緩衝最近9次刪除內容

3.行內刪除(small delete)寄存器:"-,緩衝行內刪除內容;

4.具名(named)寄存器:"a ~ "z或"A - "0Z,指定時可用;

5.唯讀(read-only)寄存器:":,".,"%,"#,分別緩衝最近命令、最近插入文本、當前檔案名稱、當前交替檔案名稱;

6.運算式(expression)寄存器:"=,唯讀,用於執行運算式命令;

7.選擇及拖拽(selection and drop)寄存器:"*,"+,"~,存取GUI選擇文本,可用於與外部應用互動,使用前提為系統剪下板(clipboard)可用;

8.黑洞(black hole)寄存器:"_,不快取作業內容(乾淨刪除);

9.模式寄存器(last search pattern):"/,緩衝最近搜尋模式。

至於每個寄存器更加具體的使用方法,我希望大家能查詢手冊,畢竟,這篇文章重點不在寄存器,可能哪天會寫一篇小記講講寄存器吧


基本操作

聊聊寄存器的基本操作把

現在輸入命令,你就可以查詢一下目前寄存器的情況

:reg

寄存器的使用方法也很簡單:通過“ 加上 寄存器名,就可以訪問特定的寄存器:

"ap      粘貼字母a寄存器內容"1y      把選取內容複寫到數字寄存器1


系統剪貼簿

細心的人已經發現我重點標註的寄存器部分了,就是那個選擇及拖拽寄存器,這就是系統的剪貼簿,我們通常使用的ctrl+c  ctrl+v 的內容就儲存在這個寄存器中,所以你要把需要複製的內容放在+寄存器中,就可以在gui介面中用粘貼或ctrl+v粘貼了,同理,粘貼在vim中也一樣

"+y    複製到系統剪貼簿"+p    粘貼"+gp  粘貼並且移動游標到粘貼內容後


但是光是輸入命令"+p就已經讓人覺得很麻煩了,這時候,vim的map功能就又可以大顯神通了,我們只需要把“+y  和 ”+gp  map到你喜歡的快速鍵上即可:

首先開啟vimrc(如果沒有,請建立一個)

vim ~/.vimrc

然後在其中輸入:

nmap <c-v> "+gpnmap <c-c> "+y

你現在就可以使用ctrl+c  和ctrl+v 了,但是!我本人是不推薦用這個快速鍵的,因為本身<c-v>是我很常用的塊命令

所以,我一般修改成:

nmap <leader>v "+gpnmap <leader>c "+y

至於<leader>是什麼按鍵,就可以按照你的喜好來拉,我的是‘,‘

let mapleader=","


ps.說一下,我用的是nmap,說明這個命令只有在normal情況下才生效,在insert模式下是不生效的,為什麼要這樣設定呢?因為有時候你確實需要輸入<leader>c/v的內容,比如,c  ,v ,而且,vim主要操作我覺得還是應該在normal模式下,這才是vim的高效的原因。

【vim小小記】vim的複製粘貼(包括系統剪貼簿)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.