Ben Vim bir sorun var ve bu benim içinde olabilirsin vimrc
dosyası (veya edilmiş anlattı benim olabilir vimrc
dosyası).
Bunu nasıl doğrularım? O takdirde ise benim vimrc
dosyayı nasıl nerede anlarım tam olarak sorun yatıyor?
Ben Vim bir sorun var ve bu benim içinde olabilirsin vimrc
dosyası (veya edilmiş anlattı benim olabilir vimrc
dosyası).
Bunu nasıl doğrularım? O takdirde ise benim vimrc
dosyayı nasıl nerede anlarım tam olarak sorun yatıyor?
Yanıtlar:
Yapmak istediğiniz ilk şey, Vim'i varsayılan ayarlarla başlatmaktır:
vim -u NONE -U NONE -N
-u NONE
Senin vimrc yüklenmesini önler Vim, -U NONE
senin gvimrc yüklenmesini Vim engeller ve -N
hiçbir uyumlu modunu kullanmak Vim söyler (bu gerekli değildir, ancak çoğu Vim kullanıcılar "uyumlu" moduna için kullanılmaz). Not NONE
edilir gerekli tüm kapaklar içinde olması.
Windows'ta bu bayrakları yeni bir kısayol 1 oluşturarak ekleyebilirsiniz .
Sorun devam ederse, bunun sizin vcc'nizde bir şey olmadığını bilirsiniz .
Sorun kaybolursa, şimdi vimrc dosyanızdaki bir şeyden kaynaklanıyorsunuz .
Yaşa! Git sorunuzu sorun. Vim'i bir vimrc dosyası olmadan başlatmaya çalıştığınızdan emin olun!
Henüz yapmadıysanız, muhtemelen önce vimrc dosyanızın yedek bir kopyasını kaydetmek istersiniz.
Muhtemelen yapmak istediğiniz bir sonraki şey, önce tüm eklentileri devre dışı bırakmaktır; eklentileri Vim'de biraz değişebilir. Bu sorunu çözerse, hangi eklentiyi tek tek etkinleştirerek bulmaya çalışın
. Hangi eklentinin soruna tam olarak neden olduğunu bulduktan sonra, bu eklentinin belgelerini okuyarak ve / veya etiketli bir soru sorarak onu deneyip düzeltebilirsiniz plugin-<name>
.
E? Er değil bir eklenti ve yok herhangi sorununuzu neyin neden fikir, o zaman bir deneme-yanılma prosedür. Vimrc'nizdeki bir veya daha fazla satırı yorumlayın, Vim'i başlatın, sorunun oluşup oluşmadığını kontrol edin ve sorun oluşmayana kadar bu işlemi tekrarlayın. Bunu yapmanın en hızlı yolu:
Sonunda, tek bir seçeneğe veya sorununuza neden olan birkaç seçeneğin bir kombinasyonuna sahip olmalısınız. Vim'deki herhangi bir seçenek hakkında daha fazla bilgiyi kullanarak:
:help 'option_name'
Alıntılar burada önemlidir, genellikle onlar olmadan çalışır, ancak bazen bunları atlarsanız yanlış sayfada kalırsınız.
Yardım sayfasını okuduktan sonra hala kafanız karıştıysa, nerede bir soru soracağınızı biliyorsunuz ;-)
Tek bir eklentiyi izole etmek, belki de onun hakkında bir soru sormak istiyorsanız, mümkün olduğunca az yüklemek, yine de eklentiyi yüklemek istiyorsunuz ; Bunu Vim'in paket özelliği ile kolayca yapabilirsiniz. Bu, Vim 8'i veya Neovim'in oldukça yeni bir sürümünü gerektirir.
Yeni bir boş dizin oluşturun; ~/plugin
yolu bu örnekte kullanacağız . Şimdi eklentiyi normal pack/plugins/start/$name
dizine koy . Örneğin:
git clone https://github.com/fatih/vim-go.git ~/plugin/pack/plugins/start/vim-go
test-vimrc
Aşağıdaki içeriklere sahip bir dosya oluşturun ; Bu Vim gelen eklentileri yüklemek sağlayacaktır ~/plugin
dizin ve değil~/.vim
dizinde:
set nocompatible
set packpath=~/plugin,/usr/share/vim/vimfiles,/usr/share/vim/vim80,/usr/share/vim/vimfiles/after,~/plugin/after
packloadall!
syntax on
filetype plugin indent on
Vim ile başla:
vim -U NONE -u ~/test-vimrc
Şimdi sadece bu eklenti ile minimal bir vimrc var.
Dipnotlar
1 Örneğin: 64 bit Windows üzerinde kısayol şuna benzer olacaktır: "C:\Program Files (x86)\Vim\vim74\vim.exe" -u NONE -U NONE -N
. Oluşturmak için kısayolu istediğiniz Dosya Gezgini'ne sağ tıklayın, ardından Yeni -> Kısayol'u seçin ve kısayol metnini yapıştırın. Vim'iniz başka bir yere kuruluysa, Vim yolunu değiştirmeniz gerekebilir.
-U NONE
varsa -u NONE
.
-D
İlk komut dosyasını bir komut dosyasından çalıştırdıktan sonra hata ayıklama moduna geçecek olan özellikle hata ayıklama için Vim parametresi vardır .
Örneğin, Vim'i herhangi bir eklenti olmadan hata ayıklama modunda çalıştırmak için
vim --noplugin -D
Tip n
/ next
sonraki satırı ayrıştırmak ve baskı uygulamaya devam etmeye Enter.
Ve cont
ya arayüze q
geri dönmek için vim
.
Bir GUI sürümü kullanıyorsanız, gui
bu komuttan hemen sonra hata ayıklamayı başlatmak için vimrc'nize bir komut koyun .
Kullanılabilir komutların listesi için Ctrl+ tuşuna basınd
Daha fazla oku:
:help debug-scripts
Daha önce de belirtildiği gibi, ilk önce vim -u NONE -U NONE -N
vanilya kapağının iyi çalıştığından emin olun.
Sonra normal olarak vim'i başlatın ve kontrol edin
:messages
Tüm uyarı ve hataları gösterecek olan problemden sonra içten dışa doğru.
Sonunda aşağıdaki komutu kullanarak vim'i başlatın
vim -V9logfile.log
hangi adında bir günlük dosyası oluşturur logfile.log
, -V9
günlük düzeyidir ve sorunu yeniden oluşturmaya çalışın.
Bir ipucu daha: göründüğü gibi mağara adamı olarak, neyin yürütülmekte olduğunu ve neyin yürütülmediğini görmek için.
Örneğin
if executable('ag')
:echom "AG FOUND"
...
endif
Bu, if bloğun yürütülmekte olup olmadığını hızlı bir şekilde görmeme yardımcı olur. Vim yeniden başlatıldığında mesaj konsolda yazdırılır.
echom
ilginç başka bir komut kullanırsanız :messages
yankılanan mesajların tam günlüğünü elde etmektir. Başlangıçtan sonra onlara bakmak bazen yararlı olabilir.
Bulduğum bir şey, parçalarınızı değiştiren değişkenlerin bir koleksiyonunu tutmaktır; .vimrc
böylece, bir şeyleri yorum yapmak zorunda kalmadan bölümlerini devre dışı bırakabilir veya etkinleştirebilirsiniz. Ayrıca, kuruluşunuzu düşünmeye zorlamanın hoş bir yan etkisi vardır .vimrc
.
" feature toggles in vimrc
let g:vimrc_feat_pathogen = 1
let g:vimrc_feat_core_minimal = 1
let g:vimrc_feat_matchit = 1
let g:vimrc_feat_options = 1
let g:vimrc_feat_colors_and_highlight = 1
let g:vimrc_feat_key_rebinding_arpeggio = 1
let g:vimrc_feat_key_rebinding = 1
let g:vimrc_feat_autocommand_group = 1
let g:vimrc_feat_custom_definitions = 1
let g:vimrc_feat_load_opam = 1
Şunlar tarafından korunan bir bölüme örnek if
:
if g:vimrc_feat_core_minimal
set nocompatible
filetype plugin indent on
syntax on
endif
Vimrc yükleme sürem 400 saat civarında, çok yavaştı ve sadece bu satırı kaldırarak 20ms'ye düşürdüm:
silent !mkdir ~/.config/nvim/backups > /dev/null 2>&1
Böyle harici komutları aramadığınızdan emin olun.
İşte başlamanız için çok basit bir işlem.
:source %
veya:so $MYVIMRC