vimとNeovimの間で設定を共有する方法


23

私はneovimを使用して開始し、私を移動.vimrcする.config/nvim/init.vimと、他のものは次の場所にあります.local/share/nvim

vimとNeovim間で設定やプラグインを共有する最良の方法は何ですか?シンボリックリンク?1つのシンボリックリンクのみを使用するように.vimrcのディレクトリを変更できますか?

私のvim設定をNeovimのデフォルトの場所に移行した後、これはほとんど機能するようです:

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

一部のプラグイン(vim-plugを使用)は正しく動作しないようです。カスタムカラースキームもvim-airlineもロードできません。


1
あなたが使用することができますif has('nvim')nvimコマンドだけのために
wizzup

回答:


37

TL; DRファイルをシンボリックリンクせずに、

既存の~/.vimrc、ファイル、プラグインを使用でき~/.vimます。

そして、これはNeoVimマニュアルに文書化されています。Vim からの移行を参照してください。


以下の行は、既存のパスと~/.vimrcファイルをnvimセットアップに追加します。

set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath=&runtimepath
source ~/.vimrc

LinuxおよびmacOSの場合、上記の行をの上部に追加する~/.config/nvim/init.vim%LOCALAPPDATA%\nvim\init.vim、Windowsに追加します。

クレジットは👉に行きます

乾杯🍻
クリス


8

Neovimのデフォルトの場所に構成を設定して、次の手順を実行します。

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

colorschemeを修正するには、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に必要である理由私はかなり理解していないが、私はないですだけ1この事によりつまずきます。


1
これはvimで常に必要でした。おそらくnvimはこれをデフォルトとして設定しているため、そこで動作しているのです。
クリスチャンブラバンド

1
@ChristianBrabandtはい、もちろんあなた正しいです。
umbric

~/.vimrc前の行がを指しているように、私は一般的に人々がホームフォルダにいると考えています~/.vim
コンラッド

もう一方の答えに従うと nvim固有の構成を持ち、その間~/.vimrc、共有構成として調達できるようになります。
ライナス

Neovimは無視している間t_xxのオプションを、私はそれがでそのような何かをラップするために、より正確だと主張するだろうif !has('nvim')なのように、この例。現在はそれらを無視するかもしれませんが、それが将来変化したらどうなるでしょうか?また、オプションがVimのみに関連していることを暗黙的に示します。
ゼロナイト

5

を使用できますif has('nvim')。完全な例は次のとおりです。

Neovimのみの構成:

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

Vimのみの構成

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

1

ここのメソッドはにシンボリックリンク~/.config/nvim~/.vim、confと互換性を保とうとし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

このセットアップ後~/.config/nvim/init.vim、confとして使用される実際のファイルです。~/.vim/vimrcそれへの単なるリンクです。

次に、とを変更して、vim再利用nvimのプラグインマネージャー、プラグインを作成する必要がruntimepathありpackpathます。実際、プラグインパスは自動的に再利用され、次の修正によりプラグインマネージャーが再利用されます。

let g:is_nvim = has('nvim')
let g:is_vim8 = v:version >= 800 ? 1 : 0

" Reuse nvim's runtimepath and packpath in vim
if !g:is_nvim && g:is_vim8
  set runtimepath-=~/.vim
    \ runtimepath^=~/.local/share/nvim/site runtimepath^=~/.vim 
    \ runtimepath-=~/.vim/after
    \ runtimepath+=~/.local/share/nvim/site/after runtimepath+=~/.vim/after
  let &packpath = &runtimepath
endif

ソース:vimとnvimの間でconfを共有


1

正しい答えであるipatch answerに追加するだけで、Vimとは少し異なる設定がある場合は、パスを調整する必要があります。

たとえば、Windowsでは、デフォルト設定を次のように使用するのではなく、

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

使っています:

$HOME
   +--vimfiles
          +--vimrc

(理由は、特にファイルがホームディレクトリのルートにある場合、ファイルとディレクトリよりも単一のディレクトリをリビジョン管理下に置く方が簡単だからです)

次は私のために働く:

set runtimepath^=~/vimfiles runtimepath+=~/vimfiles/after
let &packpath=&runtimepath
source ~/vimfiles/vimrc
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.