Sebagian besar editor memiliki fitur seperti ketika Anda menekan beberapa tombol dengan menempatkan tanda sisir di atas suatu fungsi, itu akan memunculkan dokumentasi dari fungsi tersebut bersama dengan jumlah dan jenis argumen yang digunakan fungsi tersebut.
Saya bertanya-tanya apakah Vim menawarkan dukungan seperti itu. Sebagai contoh, saat menulis kode dalam C, saya menggunakan fungsi bawaan qsort()
. Karena saya tidak yakin tentang jenis dan jumlah argumen yang diperlukan, saya ingin mengetahuinya tanpa melarikan diri dari Vim. Apa itu mungkin?
autocompletion
sherelock
sumber
sumber
'keywordprg'
(nama program yang dapat menangani dokumentasi untuk bahasa yang Anda inginkan), maka dengan menekanK
pada kata kunci (yang dapat menjadi nama dari suatu fungsi), Anda harus mendapatkan info yang Anda inginkan. Misalnya, jika Anda menginstalcppman
( github.com/aitjcize/cppman ) dan menambahkan autocmd di dalam vimrc Anda sepertiautocmd FileType cpp setlocal keywordprg=cppman
, makacppman
harus menangani dokumentasi di dalam buffer c ++. Tidak diuji.cppman
adalah saran yang sangat baik, jika Anda memiliki halaman manual C dan C ++ (manpages-posix-dev
danlibstdc++-X.Y-doc
paket pada sistem berbasis Debian) diinstal, polos lamaman
harus bekerja.Jawaban:
Jika Anda dapat mengatur YouCompleteMe , ia mendukung C, C ++, JavaScript, Go dan beberapa bahasa lainnya. Ini sedang beraksi:
Ini agak menjengkelkan untuk menginstal , dan setelah itu diinstal Anda perlu mengkonfigurasinya untuk C dan C ++ dengan membuat
.ycm_extra_conf.py
. Saya mengangkat satu dari repo ini , dan mendapatkan efek ini.sumber
qsort(a
, jendela pop-up menghilang, sehingga sulit untuk mengingat argumen berikutnya.YcmCompleter GoTo
, yang biasanya mengirim Anda ke tempat fungsi / kelas didefinisikan dalam kode. Itu adalah baris tepat di atas docstring, yang mencantumkan semua yang Anda minta. Saya tidak yakin apakah inline commenting berada di tempat yang sama di C / Java / C ++.Untuk C, menekan
K
kata kunci akan langsung membuka manual bawaan. Misalnya, tempatkan kursor padaprintf
kata kunci:Sekarang tekan
K
(huruf besar K) dan halaman manual untukprintf
akan muncul di VIM:Ini sepertinya bekerja di luar kotak di semua distro yang diturunkan dari Debian yang telah saya coba, tidak diperlukan konfigurasi khusus.
sumber
printf(1)
perintah, bukanprintf(3)
fungsi. Bagaimanapun, manual fungsi C berasalmanpages-dev
, yang biasanya diinstal secara default, tetapi tidak selalu, dan fungsi POSIX dimanpages-posix-dev
- biasanya tidak diinstal secara default, begitu pula dokumentasi C ++ (libstdc++-X.Y-doc
).Jika Anda menginginkan dokumentasi yang tepat , plugin dalam komentar saginaw tampaknya menutupi kebutuhan C ++ Anda. Saya tidak tahu yang generik tetapi Anda mungkin dapat menemukan alternatif untuk bahasa lain di vim.org.
Jika…
Anda dapat menggunakan
<C-w>}
untuk membuka definisi kata kunci di bawah kursor Anda di jendela pratinjau. YMMV, tentu saja.Lihat
:help preview-window
,:help tags
dan:help ctags
.Anda juga dapat menggunakan fungsionalitas "sertakan-pencarian" bawaan Vim: tekan
[i
untuk mencetak "tanda tangan" dari kata di bawah kursor pada baris perintah:Lihat
:help include-search
.sumber
[i
aneh. Ini bekerja untukstdlib.h
danqsort
, tetapi tidakcstdlib
danstd::qsort
atau hanyaqsort
.<C-w>
saranaCTRL-W
Yang nomenklatur yang digunakan dalam:help
file. Anda kemudian dapat menggunakan:pc
untuk menutup jendela pratinjau.Tipe file C / C ++ Vim hadir dengan fungsi omnicompletion yang layak, yang mendukung fungsionalitas "preview". Jadi tambahkan "pratinjau" ke opsioptimal Anda dan lihat tanda tangan fungsi ketika Anda memasukkan mode penyelesaian.
Dalam mode normal, Anda dapat CTRL + W} untuk membuka deklarasi fungsi di jendela pratinjau secara manual.
sumber
Seperti disebutkan menekan
K
pada kata kunci berfungsi dengan mencari halaman manual. Untuk mendapatkan halaman manual C ++ Anda dapat mencoba https://github.com/aitjcize/cppman (mendapat "halaman manual" dari cplusplus.com dan cppreference.com).sumber
Instal YouCompleteMe. Saat Anda meletakkan kursor di atas pengidentifikasi, masukkan
YcmCompleter GetDoc
perintah untuk mendapatkan dokumen di jendela pratinjau kecil di bagian bawah. Ia bekerja di banyak bahasa seperti python dan c / c ++.Youcompleteme juga menampilkan jendela pratinjau selama fitur pelengkapan otomatisnya. Anda dapat menyesuaikan perilaku pratinjau dokumen dengan
g:ycm_autoclose_preview_window_after_completion
variabel.sumber