如何在Cygwin中使用我的.vimrc文件?

27

我刚在工作电脑上安装了Cygwin,并希望使用我在家Linux机器上使用的.vimrc文件。

  • 这是否可行,还是需要特定于Cygwin的设置?
  • 我应该把.vimrc文件放在哪里?

我对自己在Cygwin下的bash提示符中所处的目录有点不确定,但我认为我会在那里创建一个名为“ .vim”的子目录,对吗?


我刚刚因为这个问题获得了一个徽章,但它实际上应该属于Superuser。我投票将其移动到那里。 - Nathan Long
vim --version | grep vimrc 可以显示所有可观察的位置。非常感谢。 - it3xl
10个回答

39

我使用vi -V启动了vi,出现了以下内容:

chdir(/cygdrive/c/Users/johntron)
chdir(/etc)
chdir(/cygdrive/c/Users/johntron)
could not source "/etc/virc"
chdir(/cygdrive/c/Users/johntron)
chdir(/cygdrive/c/Users/johntron)
chdir(/cygdrive/c/Users/johntron)
could not source "$HOME/.virc"
chdir(/cygdrive/c/Users/johntron)
chdir(/cygdrive/c/Users/johntron)
chdir(/cygdrive/c/Users/johntron)
could not source "$HOME/.exrc"

发现 vi 在寻找 .virc 而不是像我之前所用的所有 *nix 系统一样的 .vimrc,为了解决这个问题,我运行了以下命令:

cp ~/.vimrc ~/.virc

...或者如果您已经配置了符号链接

ln -s ~/.vimrc ~/.virc

我非常确定这是个问题,因为Cygwin安装的是vi而不是vim;然而,如果您没有使用任何参数启动vi,则加载屏幕仍将显示vi improved。无论如何,我通过setup.exe安装了vim并运行vim(而不是vi),确实尝试按预期加载~/.vimrc。您可以简单地在您的~/.profile文件中添加一个alias vi=vim以默认使用改进的版本。


在最新的cygwin(1.7.x x86)中,默认安装了Base类别中提供的vim-minimal,它提供了/bin/vi。即使您从Editors安装了vim(Vi Enhanced)/bin/vi仍然来自于vim-minimal。您的建议比破坏已安装的软件包/bin/vi并将其符号链接到/bin/vim更容易,并且可以跨我的linux/darwin系统工作。我之前的cygwin 1.7.x(在他们刚刚分离x84 vs. x64之前)使用/etc/alternatives来找出系统vi,因此我不需要做任何修复。 - johnnyB
6
最好使用“ln -s ~/.vimrc ~/.virc”而不是cp。如果你不这样做,总有一天你会编辑 .vimrc 并再次想知道为什么更改没有生效。 - ndemou
@ndemou 我同意,但我目前没有测试的方法。我知道Windows默认不支持符号链接,但如果你确认它可以工作,我会更新我的答案。 - Johntron
@JohnSyrinek,我已经按照这里的说明在Windows 7上使用符号链接了https://dev59.com/22Ml5IYBdhLWcg3wJUAC#18659632 - ndemou

19
Cygwin(至版本1.7.25)默认安装 vi (不是 vim !)。如果您还安装了 vim ,则会有两个命令: /usr/bin/vi /usr/bin/vim
与其他类Unix系统(例如Debian)不同,在启动vi /vim时,这两个命令的行为略有不同。
这两个命令都将加载Vi增强版,但它们在查找初始化编辑器的文件方面存在差异: /usr/bin/vi 首先查找 /etc/virc ,然后查找 $HOME/.virc /usr/bin/vim 首先查找 /etc/vimrc ,然后查找 $HOME/.vimrc
如果找到,则两个文件(在 /etc $HOME 中)都将被调用!
您可以输入 vi -V vim -V 来检查自己。
如果使用 vim ,请使用.vimrc ;如果使用 vi ,请使用.virc 。或者只需使用 alias vi = vim 来使用.vimrc

2
这是这个问题的正确答案。我希望我可以多次点赞它。 - SeeJayBee
这对我来说也是解决问题的方法。 - Daniel

14

1) 可以实现,不需要任何 cygwin 特定的设置,虽然可以添加一些 Windows 特定的设置。只需确保适当安装 vi (vim gvim 等)。

2) 与 *nix 上相同的位置 -- 用户主目录。


2
你的Cygwin ~目录(至少在XP上默认)是c:\ documents and settings \ username。 - stonemetal
7
我相信默认安装路径为:c:\cygwin\home<username>。 - Amro
@vehomzzz 不同于其他*nix(例如debian),在启动vi/vim时这两个命令的行为略有不同。请参见我的回答。 - wolfrevo
1
@stonemetal 只是想更新一下,在 Windows 上,主目录不再位于“文档和设置”中。实际上,如果您尝试使用带有空格的目录作为主目录,Cygwin 将会给出警告。它只是 c:\cygwin(或者我的 64 位版本称之为 c:\cygwin64)。 - felwithe

2
警告一件事:有一个Cygwin版本的vim,和一个本地Win32版本的vim。当涉及与cygwin或本地Win32应用程序对话时,两者都有其优点和缺点。
vim.wikia网站上有一个专门介绍与Cygwin相关的提示的类别。

1

Cygwin文件系统的某些部分使用您的“主机”文件系统作为自己的文件系统。在Cygwin中,有一个用户主目录(实际上位于您的“文档和设置/用户名”文件夹下),因此您应该将其放在那里。

只需将您的.vimrc文件放在您知道如何通过Cygwin访问的位置即可执行

directory/you/know$ cp .vimrc ~/

它会工作 - 至少在几个月前我的Cygwin安装中使用默认的vim就可以工作。


1

我不明白为什么你的Linux ~/.vimrc文件不能在cygwin上运行。

要进入cygwin中的主目录,可以使用以下命令:
cd ~
或者
cd $HOME

在Windows中,您可以使用WinSCP连接到Linux服务器,打开Linux .vimrc文件并复制其中的内容。然后切换到Cgywin终端并输入以下命令:
getclip > ~/.vimrc

启动vi/vim以查看新设置是否生效:
vi


1

我不得不将我的.vimrc文件重命名/符号链接为.virc,放在一个目录下,比如/home/Leo/.virc或更一般的$HOME/.virc


0

只需导航到您的主目录,即 c:/Users/user_name/ 使用以下命令创建文件 vi .vimrc 在此处设置您的首选项,它们肯定会反映出来 如下所示

set nu "show line numbers
set ai "auto indentations 
colors blue " or elflord or whatever you like.

保存并尝试。


0

我在使用Cygwin vi tabstop时遇到了问题。它总是默认为8。在启动时出现错误“无法源defaults.vim”。尝试了各种解决方案,但以下方法适用于我。

在当前用户主目录($HOME)下创建.vim目录。

.vim目录下创建.virc文件。

将以下行添加到.virc中

set tabstop=4

Cygwin版本详细信息 CYGWIN_NT-10.0-22000 3.3.5-341.x86_64 x86_64 Cygwin


0

我刚刚创建了自己的并且立即生效:

1) vim ~/.vimrc

进入 .vimrc 文件(空白文件)后,我喜欢复制以下示例:

2) :r $VIMRUNTIME/vimrc_example.vim
3) :wq

然后检查任何文件应该有很多颜色和东西

4) vim .vimrc (or whatever file, e.g. ~/.bashrc)

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