Otomatik tamamlama v / in C / C + +
- Kurulum
- Yapılandırma
- kullanım
- Bağlantılar
Bu eğitim, Linux'ta Vim çalıştıran kişilere yöneliktir. Otomatik tamamlama, Linux kullanıcılarına tanıdık bir işlevdir, ancak bazen bağlamda anlamlı olmayan kelimeler önerebilir. Programlama sırasında bu sinir bozucu olabilir, çünkü Auto-complete, örneğin, kodun bu noktasında bir yöntem beklendiğinde bir tür önerebilir.
sınıf plop () {korumalı: int plopons; public: plop () {} geçersiz plopez () {}}; int main () {plop p; s. // <- Ctrl P önerisi arka arkaya: plopez, plop ... alors que c'est forcément plopons 0 döndürür; }
Ctag'lere dayanan bir eklenti Vim, bir kelimenin kullanıldığı bağlamı göz önünde bulundurabilecek daha akıllı bir Otomatik Tamamlama oluşturmanıza olanak sağlar.
Kurulum
Biz ctags kurarak başlıyoruz. Örneğin, Debian veya Debian tabanlı dağıtımlar altında (ubuntu, xandros vb.):
sudo yetenek güncelleme sudo yetenek güvenli yükseltme sudo yetenek yüklemek exuberant-ctags
Ayrıca otomatik tamamlama için Vim eklentisini kurtarır:
//www.vim.org/scripts/script.php?script_id=1520
Kendini tamamlama ile ilgili her şeyi ~ / içinde yapacağız. Vim:
mkdir -p ~ / .vim / etiketler mv omnicpp * zip ~ / .vim cd ~ / .vim unzip omnicpp * zip cd -
Ctag'ler QT, OpenGL, SDL başlıklarının problemini göz önünde bulundurabilir. Ancak, STL için, burada "basit" başlıklarını almanız gerekir:
//www.vim.org/scripts/script.php?script_id=2358
Arşivi açar ve STL'den etiketler oluşturur:
tar xjvf cpp_src.tar.bz2 ctags -R --c ++ - çeşit = + p --fields = + iaS --extra = + q - dil-kuvveti = C ++ cpp_src && mv etiketleri ~ / .vim / tags / stl
Şimdi, kurulu kütüphaneler için etiketler oluşturur (kütüphaneler başka bir yere kurulursa uyarlanırlar). Örneğin, OpenGL, SDL ve QT kütüphanelerinde aşağıdaki üç komutu yazmanız yeterlidir:
c
etiketler -R --c ++ - çeşit = + p --fields = + iaS --extra = + q - dil kuvveti = C ++ / usr / include / GL / && mv etiketleri ~ / .vim / tags / gl ctags - R --c ++ - çeşit = + p --fields = + iaS --extra = + q - dil-kuvvet = C ++ / usr / include / SDL / && mv etiketleri ~ / .vim / tags / sdl ctags -R - -c ++ - çeşit = + p - alanlar = + iaS --extra = + q - dil kuvveti = C ++ / usr / include / qt4 / && mv etiketleri ~ / .vim / tags / qt4
Yapılandırma
Şimdi vim'e eklenti dosyalarını ve farklı etiketleri yüklemesini söylemeliyiz. Bunu yapmak için, ~ / dosyasının sonuna ekleyin. Vimrc aşağıdaki satırları:
"prérequis tags nocp filetype eklentisini etkinleştiriyor" etiketleri yapılandırın - buraya ek etiketler ekleyin veya kullanılmayanları ayarlayın etiketlere yorum yapın + = ~ / .vim / tags / stl set etiketleri + = ~ / .vim / tags / gl set tags + = ~ / .vim / tags / sdl ayarlama etiketleri + = ~ / .vim / tags / qt4 "CTRL + F12 ile kendi projenizin etiketlerini oluşturun" harita:! ctags -R --c ++ - kinds = + p --fields = + iaS - -extra = + q. noremap:! ctags -R --c ++ - types = + p --fields = + iaS --extra = + q. inoremap:! ctags -R --c ++ - types = + p --fields = + iaS --extra = + q. "OmniCppComplete, " OmniCopComplete ", " OmniCppComplete ", OmniCppComplete, OmniCpp_GlobalScopeSearch = 1 'i OmniCpp_G_Cop_Cop_Cop_Fit_Bu_Bu_BeBe \" CursorMovedI, InsertLeave * eğer pumvisible () == 0 | sessiz! pclose | endif set completeeopt = menuone, menü, en uzun, önizleme
Etiketler yalnızca bazı dosyalar için oluşturulduysa, diğerinin üzerine satırın başına ekleyerek yorum yapın. Örneğin ~ /.vim/tags/gl ve ~ / .vim / tags / sdl oluşturmadıysak:
etiketleri ayarla + = ~ / .vim / tags / stl "etiketleri ayarla + = ~ / .vim / tags / gl" etiketleri ayarla = = / / / / etiketleri / sdl etiketleri ayarla = + / ~ / .vim / tags / qt4
Sadece dosyayı kaydetmemiz ve (/) vim'i başlatmamız gerekiyor. Böylece ~ /. Vimrc.
kullanım
Daha önce etiketlenmiş olan her şey (yani bu eğitim etiketinde STL, QT, SDL ve OpenGL) otomatik tamamlamada zaten mevcut. Basitçe ctrl p veya n'ye basın. Liste göründüğünde, iyi teklifi vurgulamak için okları kullanın ve enter tuşuna basın.
Ancak, tamamen bitmedi. Geliştirilmekte olan projeye özgü sembol etiketlerini (değişkenler, fonksiyonlar, türler ...) yeniden üretmelidir. Bu bir kez daha bir etiket dosyası oluşturur. Ve elbette, projenin bir sembolünü her eklediğinizde, sildiğinizde veya değiştirdiğinizde, geçerli olması için dosyayı yeniler.
Oldukça yaygın olduğu gibi, bir ctags işlemini tetiklemek için klavyede bir tuş eşlemeniz önerilir. Verdiğim ~ / .Vimrc örnek dosyasında, bu F12 tuşuna basılarak sağlanır.
Bağlantılar
//vim.wikia.com/wiki/C++_code_completion
//www.vim.org/scripts/script.php?script_id=1520
//www.vim.org/scripts/script.php?script_id=2358