我自己找到一個方法了,來自官方的幫助文件,檢視幫助文件,help iminsert
vim從「插入模式」ESC退出後可以關閉輸入法,只需要再vimrc配置文件中敲入以下程式碼:
原文連結如下:
但是這樣你會發現當你再進入「插入模式」的時候,輸入法還是關閉的,只能輸入英文,比較笨一些的辦法就是把輸入法重新切換一次,不過我從文件中找到幫助,當回到插入模式的時候只要按下快捷鍵<ctrl+6>即可再次開啟輸入法,可以輸入中文。
那麼新的問題來了,有沒有什麼方法可以不需要按ctrl+6,直接回到插入模式就開啟輸入法呢?還請知道的小夥伴能賜教,我也是剛學vim。
----------更新-----------
我又找到方法了,其實很簡單,在上面說到的這一段程式碼中
只要把iminsert的值設定為2就行了。也就是inoremap <ESC> <ESC>:set iminsert=2<CR>
關於iminsert的值的含義,官方幫助文件(透過help iminsert檢視)給出解釋:
具體什麼意思我也不明白,不過我試了一下,效果確實是我想要的。從插入模式退出,關閉輸入法,可直接輸入英文,這樣我就可以輸入 :w 來儲存,或者其他命令,如果需要輸入中文,比如編輯檔案,檔名中包含中文,這時候可以按ctrl+6來開啟輸入法。然後 i 回到插入模式,輸入法又自動開啟,可以繼續輸入中文。
看了網上很多帖子,都要用外掛,我搞了半天也沒得到想要的結果,最終發現這個比較完美的解決辦法,分享給大家。
ps:vim版本8.1
我自己找到一個方法了,來自官方的幫助文件,檢視幫助文件,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