Ben Vim bir sorun var ve bu benim içinde olabilirsin vimrcdosyası (veya edilmiş anlattı benim olabilir vimrcdosyası).
Bunu nasıl doğrularım? O takdirde ise benim vimrcdosyayı nasıl nerede anlarım tam olarak sorun yatıyor?
Ben Vim bir sorun var ve bu benim içinde olabilirsin vimrcdosyası (veya edilmiş anlattı benim olabilir vimrcdosyası).
Bunu nasıl doğrularım? O takdirde ise benim vimrcdosyayı 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 NONESenin vimrc yüklenmesini önler Vim, -U NONEsenin gvimrc yüklenmesini Vim engeller ve -Nhiç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 NONEedilir 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; ~/pluginyolu bu örnekte kullanacağız . Şimdi eklentiyi normal pack/plugins/start/$namedizine koy . Örneğin:
git clone https://github.com/fatih/vim-go.git ~/plugin/pack/plugins/start/vim-go
test-vimrcAşağıdaki içeriklere sahip bir dosya oluşturun ; Bu Vim gelen eklentileri yüklemek sağlayacaktır ~/plugindizin 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 NONEvarsa -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/ nextsonraki satırı ayrıştırmak ve baskı uygulamaya devam etmeye Enter.
Ve contya arayüze qgeri dönmek için vim.
Bir GUI sürümü kullanıyorsanız, guibu 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-scriptsDaha önce de belirtildiği gibi, ilk önce vim -u NONE -U NONE -Nvanilya 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, -V9gü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.
echomilginç başka bir komut kullanırsanız :messagesyankı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; .vimrcbö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