vim과 Neovim간에 구성을 공유하는 방법


23

나는 neovim을 사용하기 시작하고 내 이동 .vimrc.config/nvim/init.vim다른 재료가에 위치하고 있습니다 .local/share/nvim.

vim과 Neovim간에 구성 또는 플러그인을 공유하는 가장 좋은 방법은 무엇입니까? 심 링크? 하나의 심볼릭 링크 만 사용하도록 .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.vimWindows 의 맨 위에 추가하십시오 .

신용 👉 간다

건배 🍻
Chris


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

왜 이것이 Neomm이 아닌 vim에서만 필요한지 이해하지 못하지만, 이 일에 걸림돌이 되는 유일한 사람 아닙니다 .


1
이것은 항상 vim에서 필요했습니다. 아마도 nvim이 이것을 기본값으로 설정하고 이것이 작동하는 이유입니다.
Christian Brabandt

1
예 @ChristianBrabandt, 물론 당신은 있는 권리.
lumbric

나는 사람들이 일반적으로 ~/.vimrc이전 폴더가 가리키는 것처럼 홈 폴더에 있다고 생각 합니다 ~/.vim.
Konrad

다른 답변 을 따르는 것이 낫기 ~/.vimrc때문에 공유 구성으로 소싱 하면서 nvim 특정 구성을 가질 수 있습니다 .
ryenus

Neovim은 t_xx옵션을 무시하지만 if !has('nvim'), 이 예 와 같이 와 같은 것을 감싸는 것이 더 정확하다고 주장합니다 . 지금은 무시해도되지만 앞으로 변경 될 경우 어떻게해야합니까? 또한 옵션이 Vim에만 관련되어 있음을 암시 적으로 나타냅니다.
ZeroKnight

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.vimconf로 사용 된 실제 파일입니다. ~/.vim/vimrc그것에 대한 링크 일뿐입니다.

이제 와 를 변경 하여 vim재사용 nvim플러그인 관리자 플러그인 을 만들어야 합니다. 실제로 플러그인 경로는 자동으로 재사용되며 다음 수정 사항은 플러그인 관리자를 재사용합니다.runtimepathpackpath

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 간 공유 공유


1

정답 인 ipatch 답변에 추가하려면 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.