VimでC / C ++関数のドキュメントを表示するにはどうすればよいですか?


17

ほとんどのエディターには、関数の上にキャレットを置いていくつかのキーを押すと、関数が受け取る引数の数と型とともにその関数のドキュメントをポップする機能があります。

Vimがそのようなサポートを提供しているかどうか疑問に思っていました。たとえば、Cでコーディングするとき、組み込み関数を使用しますqsort()。私はそれが取る引数のタイプと数がわからないので、Vimをエスケープせずにそれを知りたいです。出来ますか?


2
これがまさにあなたが望むものであるかどうかはわかりませんが、オプションに適切な値'keywordprg'(必要な言語のドキュメントを処理できるプログラムの名前)を与えた場合Kは、キーワード(関数)、必要な情報を取得する必要があります。たとえば、あなたがインストールした場合cppmangithub.com/aitjcize/cppmanを)そのように、あなたのvimrc内のautocmdを追加しautocmd FileType cpp setlocal keywordprg=cppman、その後、cppmanC ++バッファ内のドキュメントを処理する必要があります。ただし、テストされていません。
サギノー

2
@saginaw cppmanは優れた提案ですが、CおよびC ++のマンページ(manpages-posix-devおよびlibstdc++-X.Y-docDebianベースのシステムのパッケージ)がインストールされている場合は、プレーンオールドmanが動作するはずです。
ムル

回答:


8

YouCompleteMeをセットアップできる場合、C、C ++、JavaScript、Goおよびその他の言語をサポートします。これが実際の動作です:

ここに画像の説明を入力してください ここに画像の説明を入力してください

インストールするのは少し面倒ですが、インストールしたら、を作成してCおよびC ++用構成する必要があります.ycm_extra_conf.py。私はこのレポから1つを持ち上げ、この効果を得ました。


4
「インストールするのは少し面倒です」...それは控えめな表現です。それでも、それは非常に良いです。^ _〜
復活モニカ- Sardathrion

4
関数の引数が入力されている間、補完ポップアップを開いたままにする方法はありますか?たとえば、最初の引数の最初の文字を入力するとすぐqsort(aに、ポップアップウィンドウが消え、次の引数を覚えることが難しくなります。
thiagowfx

1
しかし、それは単に関数のプロトタイプを示しています。doxygenコメントを表示する方法(Eclipseがjavadocsで行うように)?パラメーター、出力、メモ、参照を意味します
...-Zeta.Investigator

1
@ Zeta.Investigator Pythonで頻繁に使用するものの1つはYcmCompleter GoTo、通常、コードで関数/クラスが定義された場所に移動することです。これはdocstringのすぐ上の行で、要求したものがすべてリストされています。インラインコメントがC / Java / C ++の同じ場所にあるかどうかはわかりません。
user1717828

8

Cの場合K、キーワードを押すと、組み込みのマンページが直接表示されます。たとえば、printfキーワードにカーソルを置きます。

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

K(大文字のK)を押すと、printfVIMにマンページが表示されます。

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

これは、私が試したすべてのDebian派生ディストリビューションですぐに使用できるようで、特定の設定は必要ありません。


1
それprintf(1)はコマンドのマンページでありprintf(3)、関数ではありません。いずれにせよ、C関数のマンページはfrom manpages-devであり、通常はデフォルトでインストールされますが、常にではありません。POSIX関数はmanpages-posix-dev-通常はデフォルトでインストールされず、C ++のドキュメント(libstdc++-X.Y-doc)もありません。
ムル

5

適切なドキュメントが必要な場合、saginawのコメントのプラグインはC ++のニーズをカバーしているようです。一般的なものは知りませんが、vim.orgで他の言語の代替を見つけることができるでしょう。


もし…

  • コードはすでにctagsでインデックス付けされています。
  • インデックスには標準ライブラリも含まれています。
  • そしてあなたが望むのはヒントだけです、

を使用<C-w>}して、プレビューウィンドウのカーソルの下にあるキーワードの定義を開くことができます。もちろん、YMMV。

参照してください:help preview-window:help tags:help ctags


Vimに組み込まれている「include-search」機能を使用することもできます。押し[iて、コマンドラインのカーソルの下にある単語の「署名」を印刷します。

[私

を参照してください:help include-search


1
[i変だ。それはstdlib.handにqsortは機能しますが、cstdliband std::qsortまたはorには機能しませんqsort
ムル

I am / wasのように命名法に不慣れな人にとっては、ファイルで使用される命名法<C-w>CTRL-Wどちらかを意味し:helpます。次に、を使用:pcしてプレビューウィンドウを閉じます。
ダニエルソン317

1

VimのC / C ++ファイルタイプには、「プレビュー」機能をサポートする適切なオムニコンプリート機能が付属しています。そのため、completeoptオプションに「プレビュー」を追加し、挿入モードの完了時に関数シグネチャを確認します。

通常モードでは、CTRL + W}を使用して、プレビューウィンドウで関数宣言を手動で開くことができます。



0

YouCompleteMeをインストールします。識別子の上にカーソルを置いYcmCompleter GetDocたら、コマンドを入力して、下部の小さなプレビューウィンドウでドキュメントを取得します。Pythonやc / c ++などの多くの言語で機能します。

Youcompletemeは、オートコンプリート機能中にプレビューウィンドウも表示します。g:ycm_autoclose_preview_window_after_completion変数を使用して、ドキュメントプレビューの動作をカスタマイズできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.