我怎样才能消除 Windows 中“vimfiles”文件夹的依赖关系?

我怎样才能消除 Windows 中“vimfiles”文件夹的依赖关系?

linux可以将我的colors/ syntax/bundle文件夹直接放入其中,.vim但在 Windows 上这似乎不起作用,它强迫我将它们放入名为的子目录中vimfiles

我将尝试形象化我想要实现的目标,这是我当前在 Windows 上 vim 的文件夹结构:

vim
|-- vim74
|   |-- vim.exe
|   `-- etc
`-- vimfiles
    |-- colors
    `-- etc

我在 Linux 上使用的结构,如何使其在 Windows 上运行?

vim
|-- vim74 (this folder doesnt exist on linux ;))
|   |-- vim.exe
|   `-- etc
|-- colors
`-- etc

为什么 vim 在 Windows 上需要不同的文件夹结构?

答案1

Windows 不会隐藏名称包含前导点的文件和文件夹。我不记得为什么决定将用户运行时目录vimfiles放在 Windows 下,但事实确实如此。

不知道您为什么要更改该依赖项(我假设您的意思是更改而不是删除),我只能告诉您必须修改“runtimepath”选项。只需添加您自己的首选目录即可:

:set runtimepath^=~/.vim runtimepath+=~/.vim/after

或者按照上面的方法,删除默认的用户运行时目录:

:set runtimepath-=~/vimfiles runtimepath-=~/vimfiles/after

看:

:help 'runtimepath'

答案2

这是您应该拥有的目录结构:

Linux                 Windows

$HOME                 %USERPROFILE%
 └─ .vim               └─ vimfiles
     ├─ after              ├─ after
     ├─ autoload           ├─ autoload
     ├─ colors             ├─ colors
     ...                   ...

里面的目录结构相同.vimvimfiles因此您不需要调整任何内容。

答案3

使用%HOMEPATH%/viminfo~/.vim,显然包含_vimrc.vimrc(Windows 与 Linux 两者)内置于 (g)vim 可执行文件中。我知道移动它们的唯一选项是:

  1. 将路径vimrc作为参数添加到可执行文件中:

    gvim.exe -u c:/path/to/your/viminfo/_vimrc
    

    在里面_vimrc添加一行来指示 vim 你的viminfo文件夹不在默认位置:

    set viminfo=c:/path/to/your/viminfo   
    (alternatively use += to not overwrite)
    

    Vim 现在将在该目录中查找您的插件和其他支持文件。

  2. 执行#1,但在批处理文件中,以便您可以拥有它的快捷方式。

  3. 在 Windows 上,Vim 将加载_vimrc与可执行文件共置的。修改它以更改您的位置vimrc并设置 viminfo 路径。请注意,在多用户机器上这不是一个好主意。

  4. 在 Windows 上从源代码重建 vim;更改源代码中设置的位置。这实际上并不难,假设您有构建软件的经验。

我确信还有其他选择。

相关内容