Vim ve Neovim arasında yapılandırma nasıl paylaşılır


23

Ben neovim kullanmaya başladı ve benim taşındı .vimrcetmek .config/nvim/init.vimve diğer şeyler bulunur .local/share/nvim.

Vim ve Neovim arasındaki yapılandırmaları ve hatta eklentileri paylaşmanın en iyi yolu nedir? Symlinks? .Vimrc içindeki dizinleri yalnızca bir symlink kullanmak için değiştirebilir miyim?

Vim yapılandırmamı Neovim'in varsayılan konumuna taşıdıktan sonra, bu neredeyse işe yarıyor gibi görünüyor:

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

Bazı eklentiler ( vim-plug kullanarak ) düzgün çalışmıyor gibi görünüyor. Özel renkler veya vim-havayolu yükleyemiyorum.


1
if has('nvim')sadece nvim komutları için kullanabilirsiniz
wizzup 12

Yanıtlar:


37

TL; DR

İçinde ~/.vimrcbulunan mevcut dosyalarınızı ve eklentilerinizi dosyaları işaretlemenize ~/.vimgerek kalmadan kullanabilirsiniz.

Ve bu şimdi NeoVim kılavuzunda belgelenmiştir, bkz. Vim'den geçiş .


Aşağıdaki satırlar mevcut yolları ve ~/.vimrcdosyayı nvim kurulumunuza ekleyecektir.

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

Linux ve macOS için yukarıdaki satırları en üstünüze ~/.config/nvim/init.vimveya %LOCALAPPDATA%\nvim\init.vimWindows'a eklemeniz yeterlidir .

Kredi 👉 gider bu

alkış 🍻
Chris


8

Yapılandırmanızı Neovim'in varsayılan konumuna sahip olarak aşağıdakileri yapın:

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

Colorscheme'i düzeltmek için 256 terminal renk moduna ayarlamalıydım , yani bunu nvim tarafından göz ardı edilecek .vimrc (= init.vim) dosyanıza ekleyin :

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

Vim-havayolu almak için aşağıdaki snippet'i .vimrc'ye ekledim :

set laststatus=2

Bunun neden Neovim'de değil , sadece vim'de gerekli olduğunu tam olarak anlamıyorum, ama bu şeyle ilgili tek tökezleyen ben değilim .


1
Vim'de bu her zaman gerekli olmuştur. Muhtemelen nvim bunu varsayılan olarak ayarlar ve bu yüzden orada çalışıyor.
Christian Brabandt

1
Evet @ChristianBrabandt, tabii ki vardır hakkı.
Lomber

Sanırım insanlar bir ~/.vimrcönceki satırın işaret ettiği gibi ana klasörde bulunacaklardır ~/.vim.
Konrad

Diğer cevabı takip etmek daha iyidir, böylece nvim'e özgü bir yapılandırma olabilir, bu arada ~/.vimrcpaylaşılan yapılandırma olarak kaynaklanır .
ryenus

Neovim t_xxseçenekleri görmezden gelirken if !has('nvim'), bu örnekte olduğu gibi böyle bir şeyi sarmanın daha doğru olduğunu iddia ediyorum . Şimdi onları görmezden gelebilir, ama ya gelecekte değişirse? Ayrıca, seçeneğin yalnızca Vim ile ilgili olduğunu dolaylı olarak gösterir.
ZeroKnight

5

Kullanabilirsiniz if has('nvim'). İşte tam örnekler:

Yalnızca Neovim için yapılandırma:

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

Yalnızca Vim için yapılandırma

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

1

Buradaki yöntem, symlink'e ~/.config/nvimbağlanmaya ~/.vimve conf ile uyumlu hale getirmeye çalışır 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

Bu kurulumdan sonra, ~/.config/nvim/init.vimconf olarak kullanılan gerçek dosyadır. ~/.vim/vimrcsadece bir bağlantıdır.

Şimdi vimyeniden kullanımın nvimeklenti yöneticisini, eklentileri değiştirerek runtimepathve yapmamız gerekiyor packpath. Aslında, eklenti yolları otomatik olarak yeniden kullanılır, aşağıdaki düzeltme eklenti yöneticisini yeniden kullanır.

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

Kaynak: vim ve nvim arasındaki paylaşımları paylaş


1

Sadece doğru cevap olan ipatch cevabına eklemek için, Vim'den biraz farklı bir kurulumunuz varsa, yolu uyarlamanız gerekebilir.

Örneğin, Windows ile varsayılan yapılandırmayı kullanmak yerine:

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

Ben kullanıyorum:

$HOME
   +--vimfiles
          +--vimrc

(Bunun nedeni, özellikle dosya ana dizininizin kökündeyken, tek bir dizini revizyon denetimine koymaktan daha kolay bir dosya ve bir dizinden daha kolaydır)

Benim için aşağıdakiler işe yarar:

set runtimepath^=~/vimfiles runtimepath+=~/vimfiles/after
let &packpath=&runtimepath
source ~/vimfiles/vimrc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.