
私がよくすることは、ファイルの上部にある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
k
1行上に移動します。名前付きバッファに行をインポートする最初の関数では、「p」をプロトタイプとして使用するため、("pyy
(yy
「行のインポート」を表します)を使用します。追加名前を大文字で始めて、このバッファに追加します"Pyy
。
すべての署名が1行にあると確信している場合は、ファンクションキーnmapに追加できます。
:nmap <F9> ]}]Mk"Pyy
そうでない場合は、別のキーにマッピングして進行しながら、脳を適切に使用できます。注意深く観察し、複数行記号を手動で貼り付ける必要があります。
これらすべてがあれば、そのバッファを貼り付けることができます"pp
。 2番目のpは「バッファの貼り付け」を意味します。 Goldilocksスタイルを使用している場合は、:s/ {$/;/
今この行が必要です。