当我在vim中搜索并按“esc”键时,光标返回到以前的位置。

4

似乎我的vim安装出了问题,但我不确定具体原因。虽然我并不把vim作为主编辑器使用,但我是一个长期的vim用户。

当我搜索时:

/foo

我想编辑找到的位置,所以我按下 ESC(准备进入插入模式)。vim 现在跳回到我在文件中的起始位置。例如,如果我在一个有 3000 行的文件中的第 0 行,搜索特定字符串,在第 1700 行找到它,并想要编辑它 - ESC 将我带回到第 0 行。
发生了什么?我是否意外设置了某些奇怪的模式?或者我忘记了应该知道的热键组合?

1
<esc> 取消搜索。只需按下 <cr> 即可。 - Matt
这怎么是一个编程问题? - melpomene
是的,它可能属于https://vi.stackexchange.com。 - Jonathan Wakely
2个回答

9
这是启用incsearch选项时的预期行为:
Note that the match will be shown, but the cursor will return to its
original position when no match is found and when pressing <Esc>.  You
still need to finish the search command with <Enter> to move the
cursor to the match.

如果incsearch没有开启,则光标一开始不会跳转到第一个匹配项,只有在按下<Enter>后才会移动。

我不喜欢这个incsearch,在vim中,输入:set nois可以关闭它。 你也可以将set nois添加到.vimrc文件中,使其成为默认设置。 - music_piano

3

您说:

所以我按ESC键(准备进入插入模式)。

在进入插入模式之前,您不需要按ESC键,而是需要按下 enter 键(在vim中称为 <CR> 表示回车符)。

因此,如果您想查找 foo 并开始插入文本,请输入

/foo<CR>i

请记住,<CR>是按一次enter键的操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接