回覆列表
  • 1 # 使用者2156634856219

    根據平臺不同,要分兩種情況。先用下面命令確定你屬於哪一種,

    情況一,

    如果結果裡你找到加號開頭的, 恭喜你,你的vim沒問題,是你姿勢問題。

    用 代替將選中的內容複製到系統剪貼簿,效果和一致。 用代替將剪貼簿內容複製到指定位置,也可以用。

    ,,,也一樣,用之前前面加。

    如果想偷懶用直接把內容複製到系統剪貼簿,需要到vim配置檔案里加一行屬性。用下面命令開始配置,

    然後,加入下面這行,

    現在你的,,,已經能和 和 一個效果,並且能互相混用。

    情況二,

    如果找到的是負號開頭的,說明你的vim不支援系統剪下板,我的MacOS系統自帶vim就不支援,所以跑來了。需要先重新安裝vim,

    Linux系統,

    MacOS,

    安裝好之後,重複情況一的操作即可。

    問題解決了,有幾個細節再解釋一下,滿足一下好奇心。

    首先,vim裡,,,複製,剪下下來的內容臨時存放在一個叫vim暫存器(Register)的地方。而且暫存器有好幾個。下面vim命令可以看到暫存器列表,

    而以及用到的是系統剪貼簿(system clipboard)。vim暫存器和系統剪貼簿不是一個東西。顧名思義,vim暫存器的資料作用域僅限於vim本地,甚至如果開多個vim視窗,每個視窗都有一套自己完整的暫存器,互相不影響。而系統剪貼簿作為系統級別的全域性變數,兩邊當然不能混用。

    所以vim專門提供了暫存器作為對系統剪貼簿的對映。可以理解成自動把暫存器的內容再複製一份到系統剪貼簿,前提是你得把屬性設定成開啟。有些版本(比如MacOS自帶的vim)就不支援這個對映。重灌vim就是為了開啟這個開關。(如果有簡便的直接改設定方法,請糾正我)。開啟以後用命令把內容複製到和系統剪貼簿關聯的暫存器上。而只是複製到預設無名暫存器上。

    最後就是把預設無名暫存器 和系統剪貼簿也關聯上。 就是用也可以備份到系統剪貼簿。缺點是破壞了預設暫存器的本地性。因為操作也會被等同於處理,貼上的是暫存器的內容, 貼上的時候預設暫存器內容就會被覆蓋。 表現出來的就是複製一次,到任意vim視窗都可以貼上。但這個特性恰恰是很多人想要的。

    還有個細節,大部分系統上和是等價的。但在有的系統上不等價,比如Linux,

    :對應和用到的系統剪貼簿:desktop clipboard ():對應圖形介面中滑鼠框選的內容(可以用滑鼠中鍵黏貼):X11 primary selection ()

    所以看到也不要慌,試試看用和能不能複製貼上。可以的話就說明是混用的,不行就老老實實用。

    以上。遇到此坑的同學瞭解一下。

    參考文獻:

    【Vim documentation: change】【How to copy to clipboard in Vim?】【如何將 Vim 剪貼簿裡面的東西貼上到 Vim 之外的地方?】【Accessing the system clipboard】【Macbook終端vim使用系統剪下板】

  • 中秋節和大豐收的關聯?
  • 杜甫的《秋夕》的大意是什麼?