vim 按e鍵的問題
迷茫
迷茫 2017-05-16 16:40:12
0
1
762

我在用vimtutor學習vim時,到這一節,如下圖。發現我按e鍵不是跳到單字的結尾,而是單字倒數的第二個字母後面。這跟它上面說的不一樣呢?

ps:在按i 進入插入模式後,再按esc又會往前跳一個字母。不過這個一般人不會這麼用,我也只是剛好測試到而已。而上面的按e不能到單字的結尾,這個卻令我苦惱,大家是這個情況麼? (我測試同事的ubuntu下的vim跟我這個情況一樣呢)

環境

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 19 2014 14:10:23)
包含補丁: 1-525
編譯者 Arch Linux
巨型版本 附 GTK2 圖形介面。

#
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(1)
小葫芦

e 鍵的表現應該是對的,出現這個狀況的原因估計是你遊標的長相問題~
正常來說,此時間標會把最後一個字高亮出來:

不只為啥你的遊標正常模式下是一條豎線。但是位置應該是正確的,因為這時候按 i 進入編輯模式的話遊標是會被插入到最後一個字母前面的。


ps 裡的表現也是正常的,如果不習慣的話,可以用 a 代替 i,這樣遊標會插入到當前字母的後面,按esc會回到原來的位置。


題主好較真…
我們知道 vim 有好多種模式,其中 normal 模式下遊標位於一個字元上,insert 模式下遊標位於一個字元的左邊或右邊,切換模式的時候肯定會發生遊標的移動。從 normal 轉到 insert 時,透過i可以移到左邊,a移到右邊。而 insert 轉到 normal 時,基本上只有透過 esc,簡單起見只能從向左移動和向右移動之間選擇一種。
一般來說切換到 normal 模式最多的情況是當你輸入完一段文字以後,這段時光標在行末,顯然是向左移動比較合理。
Source
如果你不喜歡這樣,可以在 .vimrc 裡加上:

inoremap <silent> <Esc> <C-O>:stopinsert<CR>

Prevent escape from moving the cursor one character to the left

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板