Heim > Fragen und Antworten > Hauptteil
Als ich Vimtutor zum Erlernen von Vim verwendete, kam ich zu diesem Abschnitt, wie unten gezeigt. Ich stellte fest, dass beim Drücken der e-Taste nicht zum Ende des Wortes gesprungen wurde, sondern zum zweiten Buchstaben vom letzten Buchstaben des Wortes. Unterscheidet sich das von dem, was oben steht?
ps: Nachdem Sie i gedrückt haben, um in den Einfügemodus zu gelangen, können Sie durch erneutes Drücken von Esc einen Buchstaben vorwärts springen. Aber die meisten Leute werden es nicht auf diese Weise verwenden, und ich habe es zufällig getestet. Aber wenn ich oben e drücke, komme ich nicht zum Ende des Wortes, was mich stört. Ist das bei allen so? (Der Vim meines Testkollegen unter Ubuntu hat die gleiche Situation wie meiner)
VIM – Vi IMproved 7.4 (2013, 10. August, zusammengestellt am 19. November 2014, 14:10:23)
Enthält Patches: 1-525
Kompiliert von Arch Linux
Jumbo-Version mit GTK2-Grafikoberfläche.
高洛峰2017-05-16 16:42:12
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