VIM系統複製粘貼


1 需求

系統複製粘貼主要是知足下面兩個需求。vim

  • 在多個對象之間複製粘貼
    • vim窗口與vim窗口之間
    • 外部界面與vim窗口之間
  • 不變複製粘貼。從外部界面複製粘貼到vim窗口時,文本不發生任何變化。

2 vim寄存器

2.1 寄存器介紹

不得不介紹如下vim寄存器,它是複製粘貼的中間媒介。code

在vim中經過如下命令能查看全部寄存器:對象

:reg

vim包含如下寄存器:get

寄存器名稱 編號
匿名寄存器 ""
編號寄存器 "0 到 "9
小刪除寄存器 "-
26個命名寄存器 "a 到 "z
3個只讀寄存器 ": 和 ". 和 "%
Buffer交替文件寄存器 "#
表達式寄存器 "=
選區和拖放寄存器 "* 和 "+ 和 "~
黑洞寄存器 "_
搜索模式寄存器 "/

2.2 複製粘貼過程

從A對象到B對象的複製粘貼,其邏輯過程是:table

  • 首先,將數據或文本從A對象複製到寄存器;
  • 而後,將數據或文本從寄存器複製到B對象。

注意:系統複製粘貼使用+寄存器。ast

2.3 "寄存器的啓用

經過命令查看"寄存其是否啓用。class

:reg

若是沒看到+寄存器,說明未啓用。這是須要安裝vim-gtk。軟件

sudo apt-get install vim-gtk

安裝完畢之後,再次檢測+寄存器,這時會發現已啓用。搜索


3 複製粘貼操做

3.1 vim窗口與vim窗口之間

步驟以下:im

  • 選擇文本,使用"+y複製文本;
  • 定位到目的窗口而後,使用"+p粘貼文本。

3.2 從vim窗口到外部界面

步驟以下:

  • 選擇文本,使用"+y複製文本;
  • 定位到外部界面後,使用右鍵粘貼或者外部軟件自身的快捷鍵完成粘貼。

3.3 從外部界面到vim窗口

對於少許文本,步驟以下:

  • 在外部界面中,選擇複製文本;
  • 進入vim窗口定位位置,使用"+p粘貼文本。

3.4 從外部界面到vim窗口(不變粘貼)

這種狀況通常是複製大量文本,要求在粘貼過程當中文本保證不變。
步驟以下:

  • 在外部界面中,選擇複製文本;
  • 進入vim窗口定位位置,輸入命令:
:set paste

其目的是取消自動縮進等自動操做,避免文本發生不在指望中的變化。

  • 使用"+p粘貼文本。
  • 粘貼完成後,輸入命令:
:set nopaste

其目的是回覆自動縮進的自動操做。