回覆列表
  • 1 # 使用者2925793970369

    我自己找到一個方法了,來自官方的幫助文件,檢視幫助文件,help iminsert

    vim從「插入模式」ESC退出後可以關閉輸入法,只需要再vimrc配置文件中敲入以下程式碼:

    在gvim的_vimrc中加入以下程式碼:if has("gui_running") set imactivatekey=C-space inoremap <ESC> <ESC>:set iminsert=0<CR>endif說明:1. set imactivatekey=C-space這一行的作用是讓gvim控制輸入法,好讓下面的引數起作用。2. inoremap <ESC> <ESC>:set iminsert=0<CR>是在按下 ESC 的時候,自動關閉輸入法,直接就可以修改檔案了。

    原文連結如下:

    Gvim在切換模式的時候自動切換輸入法

    但是這樣你會發現當你再進入「插入模式」的時候,輸入法還是關閉的,只能輸入英文,比較笨一些的辦法就是把輸入法重新切換一次,不過我從文件中找到幫助,當回到插入模式的時候只要按下快捷鍵<ctrl+6>即可再次開啟輸入法,可以輸入中文。

    那麼新的問題來了,有沒有什麼方法可以不需要按ctrl+6,直接回到插入模式就開啟輸入法呢?還請知道的小夥伴能賜教,我也是剛學vim。

    ----------更新-----------

    我又找到方法了,其實很簡單,在上面說到的這一段程式碼中

    if has("gui_running") set imactivatekey=C-space inoremap <ESC> <ESC>:set iminsert=0<CR> endif

    只要把iminsert的值設定為2就行了。也就是inoremap <ESC> <ESC>:set iminsert=2<CR>

    關於iminsert的值的含義,官方幫助文件(透過help iminsert檢視)給出解釋:

    具體什麼意思我也不明白,不過我試了一下,效果確實是我想要的。從插入模式退出,關閉輸入法,可直接輸入英文,這樣我就可以輸入 :w 來儲存,或者其他命令,如果需要輸入中文,比如編輯檔案,檔名中包含中文,這時候可以按ctrl+6來開啟輸入法。然後 i 回到插入模式,輸入法又自動開啟,可以繼續輸入中文。

    看了網上很多帖子,都要用外掛,我搞了半天也沒得到想要的結果,最終發現這個比較完美的解決辦法,分享給大家。

    ps:vim版本8.1

  • 中秋節和大豐收的關聯?
  • 叉車的使用壽命是多少?