首頁>Club>
11
回覆列表
  • 1 # 手機使用者85334863695

    對於 不能使用 ctrl+shift+c/v, 以及 vim 中 沒有 , 暫存器的使用者

    我來說一下我的解決方案

    簡短的如下

    在 .vimrc 增加如下對映

    使用:

    選中(visual mode) 下 按 ;y 複製

    在任何模式 按 ;p 貼上

    詳細的如下

    說明

    環境如下

    Windows 10: 1709WSL: Ubuntu 1904 代表組合鍵 + 代表回車鍵 可以從 1 到 12, 代表 代表換行的控制字元,而不是 , 的連線,在 linux 上 換行為 ,在 VIM 輸入控制字元,比如 ,需要按下

    前言

    在網上看到最新的 Windows 版本支援用 ctrl+shift+c/v 進行復制貼上, 或者有的可以在 shell 視窗 > 屬性 > 選項中開啟這個功能。我這個不行。

    而且 沒有 加號(系統)暫存器, 再加之懶得重新編譯 vim(開啟 featured) . 所以我只有另尋解決辦法.

    在命令列下,已經有很好的解決方法: 可以右擊進行復制(先選中)和貼上另外 也可以使用 ctrl+c 複製 (有兩個功能,分別是中斷和複製)

    vim 下就比較麻煩了。我嘗試了很多種方法,從操作的舒適程度,以及實現效果來選擇出最終最優的解決方法: 透過執行 windows 的 , 程式進行復制貼上

    複製

    從 VIM 中 複製文字到 Windoes 剪下板。

    暫存器

    透過 VIM 暫存器實現: 將 visual 模式下選中的文字複製到 vim 暫存器,然後將暫存器內容透過 shell 處理進入到剪下板。

    首先選中(在 visual 模式下),用 將內容儲存到 暫存器,然後在命令列模式下 (執行 shell 命令。 a 暫存器的內容直接 作為引數文字傳遞(命令列模式下,再接暫存器名字,可以將暫存器內容複製過來)

    然而複製的文字很可能不能直接在 shell 下作為引數,有特殊字元,比如 , 等等。所以要進行轉義,用 vim 的 函式 (我試了 , 效果不怎麼好)

    把上面的操作對映到按鍵下, 我對映的是 , 就得到如下的 vim 鍵盤對映在 visual 模式下選中,依次按下 即可複製

    然而在複製多行時,暫存器中會包含換行控制字元 或 ,,這在傳遞到 shell 中時執行會截斷這個引數(在引數還沒有輸入完全按下 enter 回車), 所以有時不會成功。而且有些字元 escape 也很難轉換為 shell 的原文字引數

    所以,這個方法行不通

    新建檔案

    在 visual 模式下選中,依次按下 即可複製

    各部分解釋如下

    : 複製選中區域到 暫存器: 新建檔案 到新視窗: 複製 內容到 檔案並儲存退出: 執行 shell 命令, shell 命令的內容就是複製 檔案內容到剪下板,再刪除檔案

    這個辦法可以很好地複製, 唯一的缺點就是開啟新 buffer 視窗,再關閉,螢幕畫面變化大,看著不舒服

    write 命令

    write 命令縮寫為 w, 直接使用就是 儲存緩衝區

    他後面可以接 shell 命令與 shell 互動

    這是對於整個檔案,也可以選擇一部分,而進入 visual 模式下選中,再按下, 則進入命令列且將選擇的位置也輸入進命令列這是可以 直接 傳遞給 程式。 執行後,選中的部分備剪下掉了,可以按 恢復

    貼上

    從 Windows 剪下板 貼上到 VIM

    pastetoggle

    如果 VIM 沒有設定 , 那麼可以直接右擊貼上,設定了之後要按住 再右擊貼上

    然而這樣存在問題,就是 vim 設定了 autoindent, 它會錯誤的將貼上進的文字進行縮排, 而不是貼上原文。

    這個辦法可以 , 解決,設定了 後,就可以原文貼上,

    而這樣輸入命令切換很麻煩, 可以 ,或者其他按鍵,這樣按一次就可以切換 paste 狀態。

    這樣比平常的 paste 動作 要多一個 操作,所以不好

    windows paste 程式

    在 瞭解到上面 複製時使用的 程式,我就在想是不是 windows 有也專門 的程式 (這個程式是和 cmd 互動的,加之, wsl 也可以執行 程式)

    很遺憾,windows 沒有

    對映如下

    在任何模式下按下 即可貼上

    這個是在新行開始貼上,如果在行內貼上,貼上的內容在一行內,可以按下 執行退格操作(同樣可以對映一下)

    再在 檔案中增加如下對映

  • 中秋節和大豐收的關聯?
  • 劉備建立蜀定都哪裡?