gpt4 book ai didi

vim - 在 unix 和 windows 机器之间同步 vimrc 和插件

转载 作者:行者123 更新时间:2023-12-04 21:05:35 31 4
gpt4 key购买 nike

我正在使用描述的方法 in this screencast让我的 vimrc 和插件在多台机器上保持同步。我遇到的问题是一台机器运行ubuntu,另一台运行win7。

到目前为止,我发现了两类问题。第一个似乎是行尾。为了在 linux 机器上读取我的 windows vimrc,我必须执行 :set fileformat=unix and write。但即使在这样做之后,所有插件都会遇到类似的行结束问题:

jg@jg-VirtualBox:~$ vim ~/.vimrc
Error detected while processing /home/jg/.vimrc:
line 11:
E484: Can't open file /home/jg/vimfiles/plugin/autotag.vim
Error detected while processing /home/jg/.vim/plugin/DrawIt.vim:
line 60:
E492: Not an editor command: ^M
line 62:
E15: Invalid expression: &cp^M
line 1290:
E171: Missing :endif
Error detected while processing /home/jg/.vim/plugin/auto_number.vim:
line 5:
E488: Trailing characters

我可以做类似vim ~/.vim/**/*.vim 的操作来加载它们,然后 :argdo set ff=unix | w 以相同的方式修复所有文件,但这似乎是一种糟糕的方法,因为任何时候我用我的 vimfiles 从一台计算机更新 git repo 并从另一台计算机上提取它,我都必须记住做这个文件转换。有没有更好的办法?

最后,vimrc 中的某些配置细节,例如某些二进制文件的位置,会因操作系统而异。处理这些差异的最佳方法是什么?我应该在我的 .vimrc 中添加 if 语句分支到 has("gui_win32"),还是有更好的方法?

谢谢!

最佳答案

是的,您必须在您的 vimrc 中添加分支以获得特定于机器/操作系统的设置。这并不像听起来那么脏:一个 if/ifelse/endif 就足够了。

另一种方法是将您的机器/操作系统特定设置保存在一个单独的非版本控制文件中:因为它非常本地化,您不需要在其他机器/操作系统上传播它的内容。

您可以将这些设置放在 ~/.vim/vimrc.local 中,并明确地将此文件添加到 .gitignore~/中的 repo 之外.vimrc.local 并从您的 vimrc 获取该文件。

Vim 在 Linux 上处理 Windows 行尾有问题,但在 Windows 上处理 Linux 行尾没有问题。只需在任何地方使用 Linux 行结尾,就可以了。

关于vim - 在 unix 和 windows 机器之间同步 vimrc 和插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12995473/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com