Bir dosyayı açmak için vi'yi kullandığımda * .c, imlecin otomatik olarak "ana" dizgisine gitmesini isterim . "Ana" yoksa, imlecin hata istemi olmadan "void" e gitmesini istiyorum. Benim .vimrc
yılındaVim: Bir kaynak dosyada imlecin bir hata dosyasına gönderilmemesi durumunda hata mesajı olmadan hareket ettirilmesi
Ben
:autocmd BufRead *.c 1;/main
belirledik ama bu benim tüm gereksinimlerini uygulayamaz. Özellikle, bazı açık C kaynak dosyasında "ana" yoksa, vi kaldırmak istediğim davranış olan "Hata, ana .... 'yi bulamaz."
<silent>
veya :silent
satırını autocmd
satırına eklemeyi de denedim, ancak istediğimi yapmıyor. Biri bana yardım edebilir mi? Teşekkürler.
teşekkür ederiz. If-else yapısı gibi vimrc'de yapı kontrolünün nasıl uygulanacağını söyleyebilir misiniz? Örneğin, "ana" varsa, imleç "ana" ye gider ve "ana" olmazsa, imleç "geçersiz" olur. – fortunetell
/Diğer yapı karmaşık değilse, '' help if '' bölümüne bakın. Arama yapmak için, olayın bulunmadığı veya sıfır olduğu satır numarasını döndüren 'arama 'işlevini kullanabilirsiniz (bir hata yaratmadan). Örneğin, ': eğer arama ('\') == 0 | arama araması ('\ ') | endif' Bu komut, "ana" kelimesinin geçerli imleç konumundan başlayarak bulunup bulunamayacağını ve "void" –
için arama işlevini çağırıp aramadığını (sıfır döndürdüğünü) test eder, böylece autocmd'nizi şu şekilde bir şeye dönüştürebilirsiniz: autocmd BufReadPost * .c: sessiz! 1 | eğer arama ('\') == 0 | arama araması ('\ ') | endif' Bir satırdaki birkaç ifadenin '|' ile ayrılması gerektiğini unutmayın. Ayrıca, Vim komutunun dışında işlev çağırmak için ('if',' while', 'let', vb.)' Call' kullanmak gereklidir. –