Answers:
Cygwin vim带有vim的默认配置,这使vim处于vi兼容模式,在该模式下,它试图尽可能地模拟原始vi。除其他限制外,箭头键在该模式下不起作用,而退格键只是将光标向左移动而不是擦除字符。
创建一个空~/.vimrc
就足以禁用vi兼容模式:
touch ~/.vimrc
话虽如此,i进入插入模式仍然应该起作用。您需要提供有关在何处以及如何运行vim的更多详细信息。另外,您实际上是在运行Cygwin随附的vim还是Windows的vim本机版本?
更新资料
您可以在〜/ .vimrc中添加以下设置,使其类似于默认的vim
set nocompatible
set backspace=indent,eol,start
set backup
set history=50
set ruler
set background=dark
set showcmd
set incsearch
syntax on
set hlsearch
如果vim没有找到您的vimrc文件,则可能是在寻找.virc
文件。在这种情况下,重命名文件,更改将被应用。
最简单的方法是复制Cygwin VIM的样本vimrc文件
cp /usr/share/vim/vim*/vimrc_example.vim /etc/vimrc
这将解决系统上每个帐户的问题。如果出于某种原因,您只想为特定用户进行更改,请执行
cp /usr/share/vim/vim*/vimrc_example.vim ~/.vimrc
见参考这里
在使用cygwin的Windows 8.1中尝试vim时,我遇到了箭头键问题。问题是在插入模式下用箭头键导航时打印A / B / C / D。对我有用的解决方案是:
cp vimrc_example.vim ~/.vimrc
基本上,以上命令将vimrc_example.vim
文件复制到/home/<user name>/.vimrc
。
根据终端程序的特性,当您按下光标键时,它将发送一个以ESC键开头的字符序列。例如,向上箭头键发送三个字符ESC [A。在vim处于输入模式的情况下,当看到ESC时,按光标键可能会终止输入模式,并且随后的字符可以解释为vim命令。由于它退出输入模式,因此您需要再次按i才能继续插入文本。也许这就是您正在发生的事情。
检查您的终端是否具有可以更改仿真的选项,例如VT-100,VT-220,或指定按Backspace或Del键时发送的内容的设置。更改这些设置可能会获得所需的行为。如果您使用的是本机Windows命令控制台,则可能没有这些选项。
您可能需要避免在输入模式下使用光标键。按ESC退出输入模式,然后移动光标,然后再次按i进行更多输入。这就是我们的前辈在vim变得足够聪明以在输入模式下解释光标键之前必须要做的。
ESC
和按压之间的延迟是否i
重要?