Vim Cheat Sheet 圖解按鍵圖表 (2011)

Vim 的操作圖表,此篇有中文版的版本,不過已經是 2006年的版本,詳見:

此篇是 Vim 組合鍵的列表:

閱讀全文〈Vim Cheat Sheet 圖解按鍵圖表 (2011)〉

將 Vim 編譯成 WebAssembly 可在瀏覽器使用

想要讓 Vim 在到處都可以使用,最快的方式,就是跑在瀏覽器上,但是 Vim 功能太強大,要怎麼在瀏覽器跑,怎麼樣都不太可能重寫一套,這邊有人直接將 Vim 編成 WebAssembly,就可以在瀏覽器使用 Vim 囉~

閱讀全文〈將 Vim 編譯成 WebAssembly 可在瀏覽器使用〉

Vim 輸入部份字串 即時向上、下搜尋

Vim 可以使用 / 來做字串搜尋(含 regex 搜尋),輸入完成後,可以按 n / N 來向上、下切換同樣字串的位置。

Vim 8.0.1238 之後,支援一個新功能,只要輸入部份字串,就可以先向上、向下來搜尋,以便繼續把相關的字補齊(或者如果找到也就解決了)。

閱讀全文〈Vim 輸入部份字串 即時向上、下搜尋〉

Vim easymotion 快速移動位置的外掛套件

Vim 要快速上下左右移動,除了平常 C-F、C-B 移動半頁 和 一行一行移動外,要快速移動到某個位置,可以用這個外掛套件來達成。

閱讀全文〈Vim easymotion 快速移動位置的外掛套件〉

Vim 遇到不正確的參數: pumvisible() ? "\" : "\" 修正

Vim 安裝 YouCompleteMe、Supertab 等等外掛,於 Vim 7.0 都正常,但是某些機器升級到 Vim 8.0 後,就出現下述錯誤:

  • $ vim
    處理 /home/user/.vim/bundle/supertab/plugin/supertab.vim 時發生錯誤:
    行 1000:
    E475: 不正確的參數: pumvisible() ? "\" : "\"

要如何修復呢?

閱讀全文〈Vim 遇到不正確的參數: pumvisible() ? "\" : "\" 修正〉

Syntastic:Vim 存檔自動做「語法檢查」的外掛套件

每次在寫完部份段落的程式後,都會需要執行看看有沒有 syntax error,看有沒有漏了 {} 之類等等的問題。

Vim 想要在每次存檔時,自動執行 syntax check 可以使用 Syntastic 的外掛套件來達成。

註:此篇 Syntastic 的設定範例是使用 PHP 和 Python

閱讀全文〈Syntastic:Vim 存檔自動做「語法檢查」的外掛套件〉

Vim 8.0 於 Linux 使用滑鼠選取自動複製的快速鍵

Vim 8.0 於 Linux 的 CLI 環境,使用滑鼠選取文字的話,預設不是 Xwindow 的選取方式,而是 Vim 內部的選取方式(v),所以文字要複製沒辦法使用 Ctrl + c 等等複製到系統的記憶體。

  • 註1:預設為 set mouse=a 的模式
  • 註2:Debian stretch 目前安裝就是 Vim 8.0,就會遇到此情況

想要複製到系統的記憶體,可以使用下述兩種方式:

  • 按住 Shift 後,在用滑鼠選取,可以使用 Ctrl + c 複製,或 此時用滑鼠中間就可以貼上。(再按一下 Shift 選取反白才會消失)
  • :set mouse= 或 :set mouse=r 或 :set mouse=v (設定不要為 a 就可以使用標準系統的選取、複製模式)

相關說明

*'mouse'* *E538*
'mouse'         string  (default "", "a" for GUI, MS-DOS and Win32)
            global
            {not in Vi}
    Enable the use of the mouse.  Only works for certain terminals
    (xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with
    sysmouse and Linux console with gpm).  For using the mouse in the
    GUI, see |gui-mouse|.
    The mouse can be enabled for different modes:
        n   Normal mode
        v   Visual mode
        i   Insert mode
        c   Command-line mode
        h   all previous modes when editing a help file
        a   all previous modes
        r   for |hit-enter| and |more-prompt| prompt
    Normally you would enable the mouse in all four modes with:
        :set mouse=a
    When the mouse is not enabled, the GUI will still use the mouse for
    modeless selection.  This doesn't move the text cursor.

    See |mouse-using|.  Also see |'clipboard'|.

    Note: When enabling the mouse in a terminal, copy/paste will use the
    "* register if there is access to an X-server.  The xterm handling of
    the mouse buttons can still be used by keeping the shift key pressed.
    Also see the 'clipboard' option.