Bir "vim çalışma zamanı günlüğü" var mı?


130

Bazen vimrc'imde bir özelleştirme / komut deniyorum. Her şey doğru görünüyor, ama işe yaramıyor.

Vim başladığında neler olduğunu bilmek ve hangi komutun başarısız olup olmadığını bilmek zordur, bu yüzden vimrc'imde neyin soruna neden olabileceği hatalarını ayıklamak gerçekten zor. Bu, zaman alıcı ve gerçekten bir PITA olan bir deneme-yanılma yaklaşımıdır. Örneğin, bazı dosyalarda Snipmate eklentisiyle ilgili sorunlar yaşıyorum ve sorunu nasıl keşfedeceğime dair bir fikrim yok.

Vim başladığında, hangi komutları çalıştırdığını, hangilerinin başarısız olduğunu vb. Belirten bir "çalışma zamanı günlüğü" var mı? Bu bana çok yardımcı olur.

Yanıtlar:


163

vim'i -V [N] seçeneğiyle çalıştırmak oldukça ağır bir çalışma zamanı günlüğü oluşturacaktır, burada N hata ayıklama seviyesidir.

vim -V9myVim.log

dosya adı ile mevcut dizinde bir hata ayıklama seviyesi 9 günlüğü oluşturur myVim.log


Zyx'in ve sizin her iki yaklaşımı da beğendim, ancak yaklaşımınız bence daha iyi çünkü daha basit, sadece cmd'de ve her çalıştırdığımda günlüğe giden bir yol belirleyebiliyorum ve "şişirmeye" gerek yok "vimrc'im. Ve SO'ya hoş geldiniz!
Birisi hala sizi MS-DOS kullanıyor

2
Ayrıca bkz . :h 'verbose'Ve :h :verbose.
Palec

MacVim-V seçeneği veya herhangi bir komut satırı seçeneğini desteklemiyor gibi görünüyor .
emallove

bu, dosya adı olmayan boş bir vim tamponu açar. Sıradaki ne?
Geoff Langenderfer

104

:messages vim durum satırında görünen (muhtemelen kısaca) tüm uyarıları, hataları ve bilgi mesajlarını gösterir.

:echo errmsg en son hata mesajını yazdırır.

g<çok az kişinin bildiği başka bir özellik. Kimden :help g<:

g<Komut önceki komut çıktısının son sayfasını görmek için kullanılabilir. Bu özellikle, yanlışlıkla <Space>gir komut istemine yazdıysanız kullanışlıdır .

Örneğin :!ls, istemi iptal etmeyi deneyin , ardından tuşuna basın g<.


15

Bu işlevi .vimrc içine koyun:

function! ToggleVerbose()
    if !&verbose
        set verbosefile=~/.log/vim/verbose.log
        set verbose=15
    else
        set verbose=0
        set verbosefile=
    endif
endfunction

Ardından , oturum açmak için dizin oluşturun ~/.log/vimve arayın . Yalnızca ayrıntılı düzeyinizi yükselttiğiniz için normalde görünmeyecek olan «gösterilemeyecek kadar derin iç içe geçmiş değişken» hatasını yakalayabileceğinizi unutmayın.ToggleVerbose()~/.log/vim/verbose.log


2

Kendi başına bir çalışma zamanı günlüğü olduğunu sanmıyorum , ancak bunu hata ayıklama modunda çalıştırabilirsiniz.
http://web.archive.org/web/20090323034339/http://www.troubleshootingwiki.org/Debugging_Vim_Scripts


2
Bu site saldırıya uğramış gibi görünüyor. Düzeltilene kadar, web.archive.org/web/20090323034339/http://… adresindeki önbelleğe alınmış sürüme bakın .
Mu Mind

Yasak 403 aldım
Frank Fang


1

Bu muhtemelen SO'nun temsil ettiği her şeye aykırıdır, ama işte yaptığım şey: Uyarı gelir gelmez baskı ekranına basıyorum ve resme bakıyorum.


Duraklat düğmesinin, boşa harcanan kağıt hariç benzer bir etkisi olmaz mı?
Kale

Şimdiye kadar duraklatma tuşunun ne yaptığını hiç bilmiyordum. Her durumda, Linux stackoverflow.com/questions/92802/… '
puk

2
FWIW, * nix terminalleri Ctrl-S'de çıktıyı duraklatacak ve Ctrl-Q'da devam edecektir.
joeytwiddle

1

& Verbose nedeniyle kökte çalıştırıldığında "ToggleVerbose ()" işlevini kullanmak için "set nocp" eklemek zorunda kaldım

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.