1 需求
系統復制粘貼主要是滿足下面兩個需求。
-
在多個對象之間復制粘貼
- vim窗口與vim窗口之間
- 外部界面與vim窗口之間
-
不變復制粘貼。從外部界面復制粘貼到vim窗口時,文本不發生任何變化。
2 vim寄存器
2.1 寄存器介紹
不得不介紹以下vim寄存器,它是復制粘貼的中間媒介。
在vim中通過以下命令能查看所有寄存器:
:reg
vim包含以下寄存器:
寄存器名稱 | 編號 |
---|---|
匿名寄存器 | "" |
編號寄存器 | "0 到 "9 |
小刪除寄存器 | "- |
26個命名寄存器 | "a 到 "z |
3個只讀寄存器 | ": 和 ". 和 "% |
Buffer交替文件寄存器 | "# |
表達式寄存器 | "= |
選區和拖放寄存器 | "* 和 "+ 和 "~ |
黑洞寄存器 | "_ |
搜索模式寄存器 | "/ |
2.2 復制粘貼過程
從A對象到B對象的復制粘貼,其邏輯過程是:
- 首先,將數據或文本從A對象復制到寄存器;
- 然后,將數據或文本從寄存器復制到B對象。
注意:系統復制粘貼使用+寄存器。
2.3 "寄存器的啟用
通過命令查看"寄存其是否啟用。
:reg
如果沒看到+寄存器,說明未啟用。這是需要安裝vim-gtk。
sudo apt-get install vim-gtk
安裝完畢以后,再次檢測+寄存器,這時會發現已啟用。
3 復制粘貼操作
3.1 vim窗口與vim窗口之間
步驟如下:
- 選擇文本,使用"+y復制文本;
- 定位到目的窗口然后,使用"+p粘貼文本。
3.2 從vim窗口到外部界面
步驟如下:
- 選擇文本,使用"+y復制文本;
- 定位到外部界面后,使用右鍵粘貼或者外部軟件自身的快捷鍵完成粘貼。
3.3 從外部界面到vim窗口
對於少量文本,步驟如下:
- 在外部界面中,選擇復制文本;
- 進入vim窗口定位位置,使用"+p粘貼文本。
3.4 從外部界面到vim窗口(不變粘貼)
這種情況一般是復制大量文本,要求在粘貼過程中文本保證不變。
步驟如下:
- 在外部界面中,選擇復制文本;
- 進入vim窗口定位位置,輸入命令:
:set paste
其目的是取消自動縮進等自動操作,避免文本發生不在期望中的變化。
- 使用"+p粘貼文本。
- 粘貼完成后,輸入命令:
:set nopaste
其目的是回復自動縮進的自動操作。