为什么我需要按escape两次来取消vim搜索?

为什么我需要按escape两次来取消vim搜索?,vim,Vim,我经常在搜索某样东西,但在搜索过程中发现没有匹配项。要取消搜索,我必须按escape两次。我已经删除了整个.vimrc文件,以查看是什么插件导致了这种情况。奇怪的是,如果我没有.vimrc文件,我只需要按escape一次即使我有一个空的.vimrc文件,我也需要按escape两次。 如果我安装了haya14busa/incsearch.vim,我必须按两次escape并等待一秒钟,然后取消搜索。这很麻烦。最初,“终端”是你办公室里的一种物理设备,它由一个屏幕、一个键盘和一些通过(通常是)串行线进

我经常在搜索某样东西,但在搜索过程中发现没有匹配项。要取消搜索,我必须按escape两次。我已经删除了整个.vimrc文件,以查看是什么插件导致了这种情况。奇怪的是,如果我没有.vimrc文件,我只需要按escape一次即使我有一个空的.vimrc文件,我也需要按escape两次。

如果我安装了haya14busa/incsearch.vim,我必须按两次escape并等待一秒钟,然后取消搜索。这很麻烦。

最初,“终端”是你办公室里的一种物理设备,它由一个屏幕、一个键盘和一些通过(通常是)串行线进行通信的基本电路组成。它将与一台大型“主机”计算机进行通信,该计算机将接受数十个甚至数百个用户的登录。现代的“终端仿真器”(xterm、iterm或您使用的任何东西)只不过是这些物理终端之一的软件仿真;有着所有的限制

终端与主机通信的唯一方式是通过串行线路和键盘接口。这就是为什么ASCII字符集有32个所谓的“控制字符”来控制通信的各个方面和/或向大型机发送特殊消息。这些控制代码是通过按住控制键并按字母(因此该键的名称)发送的

您可能熟悉其中一些代码,但其他代码已不再使用。转义码就是其中之一:数字27,通常表示为
^[
(它在大多数键盘上都有自己的专用键,但按Control+[将执行完全相同的操作)

问题是31个代码对于现代键盘上的所有功能来说都是不够的:箭头键、插入键、F1-12等等。 因此,大多数终端模拟器所做的是发送一系列以转义字符开头的字符,以表示某些特殊含义。例如,在我的系统上,我的键盘发送
^[OP
(三个字符:转义,然后是“OP”),而“向上箭头”发送
^[[A
。这些代码在您的系统上可能不同,但它们应该是2或3个字符(您可以在shell或Vim的插入模式下按
^V
,然后按键进行检查)

所有这些都是可行的,但有一些警告。如果应用程序收到转义字符,则它必须决定我们是否要使用转义,或者它是特殊转义序列(如箭头键或F1)的开始。另一个警告是,快速连续按“escape O p”实际上可能触发F1

所以Vim会等待一段时间,看看我们是在使用escape还是密钥序列。您可以使用该设置来控制此超时;默认情况下,它设置为1秒;但在大多数机器上,将其设置为例如200可能没问题。不过,它可能会导致连接速度较慢(如ssh)的问题

请注意,gVim没有遇到这个问题,因为它不使用终端仿真器来依赖其键盘输入。世界其他地区从20世纪60年代开始发展,图形界面的键盘输入更为先进和强大。

最初,它是一个“终端”是你办公室里的一个物理设备,它由一个屏幕、一个键盘和一些通过(通常是)串行线路进行通信的基本电路组成。它可以与一台大型“主机”计算机进行通信,该计算机可以接受几十个甚至数百个用户的登录。一个现代的“终端模拟器”(xterm、iterm或任何你使用的东西)不过是对其中一个物理终端的软件模拟;有着所有的限制

终端与主机通信的唯一方式是通过串行线和键盘接口。这就是为什么ASCII字符集有32个所谓的“控制字符”控制通信的各个方面和/或向主机发送特殊消息。这些控制代码通过按住控制键并按字母(因此该键的名称)发送

您可能熟悉其中一些代码,但其他代码已不再使用。转义代码就是其中之一:编号27,通常表示为
^[
(大多数键盘上都有自己的专用键,但按Control+[将执行完全相同的操作)

问题是31个代码对于现代键盘上的所有功能来说都是不够的:箭头键、插入键、F1-12等等。 因此,大多数终端模拟器所做的是发送一系列以转义字符开头的字符,以表示某些特殊含义。例如,在我的系统上,我的键盘发送
^[OP
(三个字符:转义,然后是“OP”),而“向上箭头”发送
^[[A
。这些代码在您的系统上可能不同,但它们应该是2或3个字符(您可以在shell或Vim的插入模式下按
^V
,然后按键进行检查)

所有这些都是可行的,但有一些警告。如果应用程序收到转义字符,则它必须决定我们是否要使用转义,或者它是特殊转义序列(如箭头键或F1)的开始。另一个警告是,快速连续按“escape O p”实际上可能触发F1

所以Vim会等待一段时间,看看我们是在使用escape还是密钥序列。您可以使用该设置来控制此超时;默认情况下,它设置为1秒;但在大多数机器上,将其设置为例如200可能没问题。不过,它可能会导致连接速度较慢(如ssh)的问题


请注意,gVim没有遇到这个问题,因为它不使用终端仿真器来依赖其键盘输入。自20世纪60年代以来,世界其他地区都在进步,图形界面的键盘输入功能显著增强。

如果您在终端中运行,则延迟很可能是由
Esc这一事实造成的
与其他键结合使用以实现类似的功能。不同的