vim 按e键的问题
迷茫
迷茫 2017-05-16 16:40:12
0
1
736

我在用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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!