ファイルの中括弧の間に「return 0」を挿入しますか?

ファイルの中括弧の間に「return 0」を挿入しますか?

私はC ++でかなり大きい(〜50個の関数)テストライブラリを構築しています。関数が整数を返さなければならないという事実を忘れました。実際に戻り値のタイプを入力することをまったく忘れました。どのくらい愚かなことですか?各関数の先頭に int 戻り型を追加しました。

:%s/^[a-z]/int &/g

しかし、今はどのように追加するのかわかりませんreturn 0;。私は試した:

:%s/{\r\r}/{\r\treturn 0;\r}/g

そしてそのバリエーションはそれぞれパターンが見つからないと言います。機能設定は次のとおりです。

int function_name()
{

}

私は彼らが次のように見えることを望みます:

int function_name()
{
    return 0;
}

どんなアイデアがありますか? ? ?

答え1

vim\n正規表現で改行を一致させる必要があるため、この動作があります。ただし、\r\rそうでなければ改行ではなくCRになります)コマンドの右側s/LHS/RHS/\nNULが挿入される場所)に挿入します。

私はその理由を理解していませんでした。Enterキー入力で送信された\r文字をNLに変換する必要があることを考慮しても、vim(ターミナルが標準モードにあるときにtty行規則が実行するように)すべてを説明するわけではありません。また、\n文字を入力(押すCtrl+J)すると、vimNUL文字が挿入されることがわかります。

:h NL-used-for-Nulこれは、NULが内部的にNLとして保存されるためであると言いますが、vim私の考えではまだNULで区切られた文字列を使用できますが、インターフェイスでユーザーに表示されることを決定した理由は説明されていません。

とにかく、それが方法なので、私たちは何をすべきかをしなければなりません。次はこんな感じです。

:%s/{\n\n}/{\r\treturn 0;\r}/g

(改行文字を一致させて改行文字に変換されたCR文字に置き換えます)。

答え2

あなたはそれを使用することができます

:%s/^}/    return 0;\r}/g

開いた中かっこを気にする必要はありません。インデントがゼロの閉じ括弧を見つけることで十分です。

関連情報