cygwin vim命令与普通vim不同吗?


28

我无法在cygwin中使用vim编辑文本文件。

我必须按i很多次才能插入文本。有时它起作用,有时却不起作用。每当我上下移动光标时,我必须按多次。

可能是什么问题呢?是否backspace在Cygwin的工作?


您是否在本机Windows控制台中,在另一个作为本机应用程序运行的终端模拟器中,在X下运行的终端模拟器中运行?什么版本的Windows?按压ESC和按压之间的延迟是否i重要?
吉尔(Gilles)“所以,别再邪恶了”,

Answers:


34

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文件。在这种情况下,重命名文件,更改将被应用。


如果您会说过如何设置不兼容,那就太好了。
gideon

您知道cygwin的默认家庭位置在哪里吗?我想通过GUI而不是cygwin创建.virc
Alex

13

最简单的方法是复制Cygwin VIM的样本vimrc文件

cp /usr/share/vim/vim*/vimrc_example.vim /etc/vimrc

这将解决系统上每个帐户的问题。如果出于某种原因,您只想为特定用户进行更改,请执行

cp /usr/share/vim/vim*/vimrc_example.vim ~/.vimrc

参考这里


1
这应该是一个可以接受的答案,因为该示例实际上默认情况下会打开语法突出显示功能,而且人们可能已经习惯了许多其他默认设置。
JohnEye 2015年

在PC重新启动之前无法工作。但这有效!
3bdalla

出色的答案,简单易用,并通过全新的cygwin安装解决了所有我遇到的所有问题,语法突出显示是意外的收获
crobicha

到目前为止,这是最好的答案!
西奥多·R·史密斯,

1
该文件在哪里?我在/ usr / share /中搜索该目录,但后来看不到任何名为vim的目录。
neo33 '16

3

在使用cygwin的Windows 8.1中尝试vim时,我遇到了箭头键问题。问题是在插入模式下用箭头键导航时打印A / B / C / D。对我有用的解决方案是:

cp vimrc_example.vim ~/.vimrc

基本上,以上命令将vimrc_example.vim文件复制到/home/<user name>/.vimrc


这为我解决了。我在vim中无法使用插入键和箭头遇到同样的问题。这是在Windows 10
Yanick吉鲁阿尔


1

尝试这种方式:

  • 第一:

    cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc
    
  • 然后,将此行添加到您的./.bashrc文件中:

    alias vi="vim"
    

0

没有命令是完全相同的。听起来您输入有问题。您的键盘弄乱了,或者您的终端处于混乱状态之类的东西。


0

根据终端程序的特性,当您按下光标键时,它将发送一个以ESC键开头的字符序列。例如,向上箭头键发送三个字符ESC [A。在vim处于输入模式的情况下,当看到ESC时,按光标键可能会终止输入模式,并且随后的字符可以解释为vim命令。由于它退出输入模式,因此您需要再次按i才能继续插入文本。也许这就是您正在发生的事情。

检查您的终端是否具有可以更改仿真的选项,例如VT-100,VT-220,或指定按Backspace或Del键时发送的内容的设置。更改这些设置可能会获得所需的行为。如果您使用的是本机Windows命令控制台,则可能没有这些选项。

您可能需要避免在输入模式下使用光标键。按ESC退出输入模式,然后移动光标,然后再次按i进行更多输入。这就是我们的前辈在vim变得足够聪明以在输入模式下解释光标键之前必须要做的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.