我开始使用neovim,并将我的.vimrc移至.config/nvim/init.vim,而其他内容位于.local/share/nvim中。

在vim和Neovim之间共享配置甚至插件的最佳方法是什么?我可以将.vimrc中的目录更改为仅使用一个符号链接吗? />
某些插件(使用vim-plug使用)似乎无法正常工作。我无法加载自定义colorschmes或vim-airline。

评论

您可以将if has('nvim')用于仅nvim命令

#1 楼

TL; DR
您可以使用现有的~/.vimrc,文件和位于~/.vim中的插件,而无需符号链接这些文件。
这已在NeoVim手册中进行了介绍,请参阅从Vim过渡。
对于Linux和macOS,只需将以下行添加到~/.config/nvim/init.vim或Windows的%LOCALAPPDATA%\nvim\init.vim顶部。
贷记到vimcast 71:与Neovim见面

#2 楼

您可以使用if has('nvim')。以下是完整的示例:

仅针对Neovim的配置:

if has('nvim')
        tnoremap <Esc> <C-\><C-n>
endif


仅针对Vim的配置

if !has('nvim')
    set ttymouse=xterm2
endif


#3 楼

将您的配置保存在Neovim的默认位置,请执行以下操作:

mkdir -p ~/.local/share/nvim/site
ln -s ~/.local/share/nvim/site ~/.vim 
ln -s .config/nvim/init.vim .vimrc


要解决颜色问题,我必须设置为256终端颜色模式,即将其添加到您的.vimrc中(= init.vim)文件,它将被nvim忽略:

set t_Co=256  " Note: Neovim ignores t_Co and other terminal codes.


要获取vim-airline,我在.vimrc中添加了以下代码段:

set laststatus=2


我不太明白为什么只有在vim中才需要这样做,而在Neovim中则没有,但是我不是唯一绊脚石的人。

评论


这在vim中一直是必需的。大概nvim将此设置为默认值,这就是为什么它在这里工作的原因。

–克里斯蒂安·布拉班特(Christian Brabandt)
17年7月1日在19:41

@ChristianBrabandt是的,您当然是对的。

– lumbric
17年7月3日在23:23

我认为通常人们会在主文件夹中找到〜/ .vimrc,因为上一行指向〜/ .vim。

–康拉德
17年12月12日在13:09

最好遵循另一个答案,这样一个人就可以拥有特定于nvim的配置,同时将〜/ .vimrc用作共享配置。

–ryenus
18-09-18在3:54

尽管Neovim忽略了t_xx选项,但我认为用if!has('nvim')包裹这样的内容更为正确,例如本例。现在可能会忽略它们,但是如果将来发生变化怎么办?它还隐式表明该选项仅与Vim有关。

–零骑士
18/09/19在7:27

#4 楼

此处的方法尝试将~/.config/nvim链接到~/.vim,并使conf与vim兼容。 ~/.config/nvim/init.vim只是一个链接。实际上,插件路径会自动重用,以下修复方法是重用插件管理器。

# nvim conf dir: ~/.config/nvim
# vim conf dir: ~/.vim
# link the 1st as the 2nd with relative links

# Prepare a vimrc file in ~/.config/nvim folder
ln -sf ./init.vim ~/.config/nvim/vimrc

# Link the whole ~/.config/nvim folder as ~/.vim foler
ln -sf ./.config/nvim ~/.vim


来源:在vim和nvim之间共享confs

#5 楼

仅添加到ipatch答案(这是正确的答案),如果设置与Vim稍有不同,则可能需要调整路径。例如,在Windows上,而不是使用默认配置我正在使用:

$HOME
   +--.vimrc
   +--.vim


我正在使用:

$HOME
   +--vimfiles
          +--vimrc


(原因是它更容易放置受修订控制的单个目录比文件和目录更重要,尤其是当文件位于主目录的根目录时。

以下对我有用: