Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用名为vimfiles的文件夹替换macvim中的.vim?_Vim_Editor_Macvim_Setting - Fatal编程技术网

是否可以使用名为vimfiles的文件夹替换macvim中的.vim?

是否可以使用名为vimfiles的文件夹替换macvim中的.vim?,vim,editor,macvim,setting,Vim,Editor,Macvim,Setting,我在家使用MacVim,在工作时在Windows中使用gvim。因为我使用git同步我的vim设置,所以我希望设置位于名为vimfiles的同一文件夹中。我在.gvimrc中设置运行时路径如下: set runtimepath=~/vimfiles/,$VIMRUNTIME 但是MacVim似乎没有加载~/vimfiles/plugin中的插件。我做错什么了吗 这是因为vimfiles中的子文件夹没有递归地添加到runtimepath中吗?只需将~/.vim作为指向~/vimfiles目录的符

我在家使用MacVim,在工作时在Windows中使用gvim。因为我使用git同步我的vim设置,所以我希望设置位于名为vimfiles的同一文件夹中。我在.gvimrc中设置运行时路径如下:

set runtimepath=~/vimfiles/,$VIMRUNTIME
但是MacVim似乎没有加载
~/vimfiles/plugin
中的插件。我做错什么了吗


这是因为vimfiles中的子文件夹没有递归地添加到runtimepath中吗?

只需将
~/.vim
作为指向
~/vimfiles
目录的符号链接,它应该工作得很好。

根据
:h初始化
,加载插件脚本(搜索
^4\/code>)是在执行GUI特定初始化之前完成的(搜索
^8\.
),因此您应该将此行放入
~/.vimrc
,而不是
~/.gvimrc

我不确定您为什么担心强制MacOS上的Vim理解Windows的文件命名约定,当Vim可以做正确的事情并在Windows上使用标准的“
”命名时。你在逆流而上

这是来自:

在混合操作系统环境中,一个有用的Vim设置是将.Vim用于Windows系统的Vim用户设置(Vim会自动选择一个.vimrc配置文件,而不是默认情况下的_vimrc)。.vimrc中的以下代码段将实现这一功能,从而允许您在不重命名目录的情况下进行同步:

在Windows上,也使用“.vim”而不是“vimfiles”;这使得同步 “跨(异构)系统更容易


这就是我在工作时在WinXP机器上所做的,我通过复制一个tarball在Mac、XP和大约五台Linux主机之间进行同步。

您是否尝试
设置runtimepath+=/path/to/vimfiles
(注意
+=/code>)?也可能需要对所有子文件夹执行此操作

由于您使用的是Git,您可以在Mac和Windows计算机上的任何位置将工作目录设置为
~/.vim
,从而使文件夹的名称不相关

$ git config worktree /Users/username/.vim
我使用DropBox同步我所有机器上的
~/.vim
文件夹(Mac@work, Mac@home, Ubuntu@home和一个Linode VPS(在某处)。所有的
自动加载
捆绑
等文件夹都位于我的DropBox的
DOTFILES/vim
子文件夹中,并且符号链接到
~/.vim/autoload
~/.vim/bundle
~/.vim/syntax

简单地将
~/Dropbox/DOTFILES/vim
符号链接到
~/.vim
也会起作用,但我想让特定于机器的东西留在这台机器上。例如,视图

My
.vimrc
仅包含以下几行:

source ~/Dropbox/DOTFILES/vimrc

" Quickly edit/reload the vimrc file
nmap <silent> <leader>ev :tabnew ~/Dropbox/DOTFILES/vimrc<CR>
nmap <silent> <leader>sv :so ~/Dropbox/DOTFILES/vimrc<CR>
source~/Dropbox/DOTFILES/vimrc
“快速编辑/重新加载vimrc文件
nmap ev:tabnew~/Dropbox/DOTFILES/vimrc
nmap sv:so~/Dropbox/DOTFILES/vimrc

在一台新机器上设置它最多需要2到3分钟,我想,让整个程序保持最新是完全不费吹灰之力的。

非常感谢,你解决了我的问题。但我仍然想知道为什么设置runtimepath不起作用。感谢你的回答,我刚刚尝试将.gvimrc重命名为.vimrc,但仍然不起作用,我甚至尝试将其设置为在.vimrc中:“set runtimepath=~/vimfiles/,~/vimfiles/plugin,$VIMRUNTIME”,运气不好,非常奇怪。@treblam您不应该将
~/vimfiles/plugin
添加到rtp中。
:scriptnames
显示了什么?可能是因为某种原因(比如添加
-u NONE
的shell别名)vimrc根本没有加载?插件的显式加载是否有(
runtime!plugin/***.vim
)在当前会话中工作?这是我的错,snipmate插件有一个问题,使我认为所有插件仍然没有加载,结果是
:scriptnames
显示它们现在加载了,非常感谢。谢谢你的回答,非常有用的信息,我将在我的winXP机器上尝试。
source ~/Dropbox/DOTFILES/vimrc

" Quickly edit/reload the vimrc file
nmap <silent> <leader>ev :tabnew ~/Dropbox/DOTFILES/vimrc<CR>
nmap <silent> <leader>sv :so ~/Dropbox/DOTFILES/vimrc<CR>