私は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/
(\n
NULが挿入される場所)に挿入します。
私はその理由を理解していませんでした。Enterキー入力で送信された\r
文字をNLに変換する必要があることを考慮しても、vim
(ターミナルが標準モードにあるときにtty行規則が実行するように)すべてを説明するわけではありません。また、\n
文字を入力(押すCtrl+J)すると、vim
NUL文字が挿入されることがわかります。
:h NL-used-for-Nul
これは、NULが内部的にNLとして保存されるためであると言いますが、vim
私の考えではまだNULで区切られた文字列を使用できますが、インターフェイスでユーザーに表示されることを決定した理由は説明されていません。
とにかく、それが方法なので、私たちは何をすべきかをしなければなりません。次はこんな感じです。
:%s/{\n\n}/{\r\treturn 0;\r}/g
(改行文字を一致させて改行文字に変換されたCR文字に置き換えます)。
答え2
あなたはそれを使用することができます
:%s/^}/ return 0;\r}/g
開いた中かっこを気にする必要はありません。インデントがゼロの閉じ括弧を見つけることで十分です。