すべての関数宣言の抽出

すべての関数宣言の抽出

私がよくすることは、ファイルの上部にあるCコードにすべての関数のプロトタイプがあることを確認することです。 vi / vimを使用して.cファイル内のすべての関数宣言をすばやく選択して取り出し、ファイルの上部に貼り付ける方法はありますか?

インラインパラメータで1行の関数宣言を使用するため、各宣言は常に1行です。

ベストアンサー1

最初の関数の上から始めて開き、中括弧でジャンプを使用してください]M。これで]}]M]}=閉じる中括弧を使用してからもう一度)を使用して次に進むことができます。]Mこれはやや冗長なので、fキーにマッピングします。

:nmap <F9> ]}]M

「ゴールディラックス」を使用する場合スタイルのインデント、例えば:

void foo (int bar) {

これにより、署名と同じ行に移動します。つまり、署名がすべて同じ行にあるとします。少し愚かですが、より一般的なK&R、Allman、またはGNUスタイルを使用している場合は、実際には1行だけ残ります。

:nmap <F9> ]}]Mk

k1行上に移動します。名前付きバッファに行をインポートする最初の関数では、「p」をプロトタイプとして使用するため、("pyyyy「行のインポート」を表します)を使用します。追加名前を大文字で始めて、このバッファに追加します"Pyy

すべての署名が1行にあると確信している場合は、ファンクションキーnmapに追加できます。

:nmap <F9> ]}]Mk"Pyy

そうでない場合は、別のキーにマッピングして進行しながら、脳を適切に使用できます。注意深く観察し、複数行記号を手動で貼り付ける必要があります。

これらすべてがあれば、そのバッファを貼り付けることができます"pp。 2番目のpは「バッファの貼り付け」を意味します。 Goldilocksスタイルを使用している場合は、:s/ {$/;/今この行が必要です。

おすすめ記事