Vim'in bir C / C ++ işlevinin belgelerini göstermesini nasıl sağlayabilirim?


17

Çoğu editör, bir fonksiyonun üzerine caret yerleştirerek bazı tuşlara bastığınızda olduğu gibi bir özelliğe sahiptir, bu fonksiyonun belgelerini, fonksiyonun aldığı argümanların sayısı ve türü ile birlikte açar.

Vim'in böyle bir destek sağlayıp sağlamadığını merak ediyordum. Örneğin, C kodlaması yaparken yerleşik bir işlev kullanıyorum qsort(). Aldığım argümanların türü ve sayısı konusunda emin olmadığım için, Vim'den kaçmadan bunu bilmek istiyorum. Mümkün mü?


2
Bunun tam olarak istediğiniz şey olduğundan emin değilsiniz, ancak seçeneğe doğru değeri verirseniz 'keywordprg'(istediğiniz dilin belgelerini işleyebilen bir programın adı), ardından Kbir anahtar kelimeye (bu adın adı olabilir) bir işlev), istediğiniz bilgileri almalısınız. Örneğin, cppman( github.com/aitjcize/cppman ) yüklerseniz ve vimrc'nize gibi bir autocmd eklerseniz autocmd FileType cpp setlocal keywordprg=cppman, cppmanbir c ++ arabellek içindeki belgeleri kullanmalısınız. Yine de test edilmedi.
saginaw

2
@saginaw cppmanMükemmel bir öneri olsa da, C ve C ++ manajları ( manpages-posix-devve libstdc++-X.Y-docDebian tabanlı sistemlerde paketler) yüklüyse, düz eski mançalışmalıdır.
muru

Yanıtlar:


8

Eğer ayarlayabilirsiniz Eğer YouCompleteMe , bu C, C ++, JavaScript Git ve diğer bazı dilleri desteklemektedir. İşte işte:

resim açıklamasını buraya girin resim açıklamasını buraya girin

Bu bir rahatsız edici bit var yüklemek ve yükledikten sonra yapmanız gerekenler C ve C ++ için yapılandırmak bir oluşturarak .ycm_extra_conf.py. Bu repodan birini kaldırdım ve bu etkiyi elde ettim .


4
"Kurulumu biraz can sıkıcı," ... Bu yetersiz bir ifade. Yine de, çok iyi. ^ _ ~
Sardathrion - Monica'yı yeniden görevlendir

4
İşlev bağımsız değişkenleri yazılırken tamamlanma açılır penceresini açık kalmaya zorlamanın bir yolu var mı? Örneğin, ilk bağımsız değişkenin ilk harfini yazar yazmaz qsort(aaçılır pencere kaybolur ve sonraki bağımsız değişkenleri hatırlamayı zorlaştırır.
thiagowfx

1
Ama sadece fonksiyonun prototipini gösterir. Doxygen yorumlarını göstermesi nasıl yapılır (Eclipse'nin javadoclarla yaptığı gibi)? Parametreleri, çıktıyı, notları, referansları
kastediyorum

1
@ Zeta.Investigator Python'da yoğun olarak kullandığım bir şey YcmCompleter GoTo, genellikle işlevin / sınıfın kodda tanımlandığı yere gönderilmesidir. İstediğiniz her şeyi listeleyen doktrin hemen üstündeki çizgi budur. Satır içi yorum aynı yerde C / Java / C ++ olup olmadığından emin değilim.
user1717828

8

C Kiçin, anahtar kelimeye basıldığında yerleşik kılavuz sayfası doğrudan açılır. Örneğin, imleci printfanahtar kelimeye getirin :

printf("Hello, %s!", foo);

Şimdi K(büyük K harfi) tuşuna bastığınızda VIM'de manpage printfgörünmelidir:

NAME
   printf - format and print data

SYNOPSIS
   printf FORMAT [ARGUMENT]...
   printf OPTION

DESCRIPTION
   Print ARGUMENT(s) according to FORMAT, or execute according to OPTION:

   --help display this help and exit

   --version
          output version information and exit

   FORMAT controls the output as in C printf.  Interpreted sequences are:

   \"     double quote
   \\     backslash

   ... It continues for quite a few scrollable pages

Bu, denediğim tüm Debian kaynaklı dağıtımlarda kutunun dışında çalışıyor gibi görünüyor, belirli bir yapılandırma gerekmez.


1
Bu printf(1)komutun manpageidir printf(3), fonksiyonun değil . Her durumda, C işlevi manajları manpages-dev, genellikle varsayılan olarak yüklenir, ancak her zaman manpages-posix-devdeğil libstdc++-X.Y-doc.
muru

5

Doğru dokümantasyon istiyorsanız , saginaw'ın yorumundaki eklenti C ++ ihtiyaçlarınızı karşılamaktadır. Genel bir bilmiyorum ama muhtemelen vim.org'da diğer diller için alternatifler bulabilirsiniz.


Eğer…

  • kodunuz zaten ctags ile dizine eklenmiş,
  • dizininiz ayrıca standart kitaplığı da içerir,
  • ve tek istediğin bir ipucu ,

<C-w>}imlecinizin altındaki anahtar kelimenin tanımını bir önizleme penceresinde açmak için kullanabilirsiniz . YMMV, elbette.

Bkz :help preview-window, :help tagsve :help ctags.


Vim'in yerleşik "arama" işlevini de kullanabilirsiniz: [ikomut satırında imlecin altındaki kelimenin "imzasını" yazdırmak için basın :

[ben

Bkz :help include-search.


1
[igarip. Şunun için çalışır stdlib.hve qsortancak cstdlibve std::qsortya sadece qsort.
muru

Ben / isimlendirme olarak isimlendirme bilmeyenler için Dosyalarda kullanılan isimlendirme <C-w>anlamına gelir . Ardından önizleme penceresini kapatmak için kullanabilirsiniz . CTRL-W:help:pc
danielson317

1

Vim'in C / C ++ dosya türü, "önizleme" işlevini destekleyen iyi bir omnicompletion işlevi ile birlikte gelir. Bu yüzden tamamlama seçeneğinize "önizleme" ekleyin ve mod tamamlamayı eklerken bir işlev imzası görün.

Normal modda, CTRL + W} işlev tanımlamasını önizleme penceresinde manuel olarak açabilirsiniz.



0

YouCompleteMe'yi yükleyin. İmleci bir tanımlayıcının üzerine YcmCompleter GetDocgetirdiğinizde, dokümanı alttaki küçük bir önizleme penceresine almak için command girin . Python ve c / c ++ gibi birçok dilde çalışır.

Ayrıca, tamamlama özelliği otomatik tamamlama özelliği sırasında önizleme penceresini görüntüler. g:ycm_autoclose_preview_window_after_completionDeğişken ile doküman önizlemesinin davranışını özelleştirebilirsiniz .

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.