1

私はテキストを持っています

int strlindex(char s[], char t[]) {

に変えたい

int strlindex(char s[], char t[]);

を使用しVimます。私はもう試した

%s/\{$/;/g

しかし、役に立たない。何か案は?

4

4 に答える 4

3

おそらくあなたは後にいくつかの空白があります{

%s/{\s*$/;/g

于 2013-03-09T14:20:20.250 に答える
3

あなたの質問のコードから私が見るのは、あなたはこれをしたいということです:

:%s/\s*{\s*$/;/

いくつかのメモ

  • ()を使用しない限り、エスケープしないでください{very magic\v
  • の前に1つのスペースがあり{、結果としてそれを削除したいようです。だから私たちは\s*前に必要です{
  • {との間にもスペースがある可能性があります$。だから私は別のものを追加します\s*
  • gフラグは必要ありません。1行に1つしかありません。$
  • また、ファイル全体でこの置換を行う%前に持っていました。s/../../この構造を持つ通常の機能がある場合、{は削除されます。置換後に再確認を行い、コードが破壊されていないことを確認します。
于 2013-03-09T14:38:34.583 に答える
2

通常、Vimでは正規表現{は文字通りの中括弧であり、エスケープする必要はありません。magicこれは、non-magic正規表現にも当てはまります(例外は、very-magicオプションを指定した場合です。詳細については、を参照help: magicしてください。

したがって、これは機能します:

%s/{$/;/g
于 2013-03-09T14:21:43.933 に答える
1

ここではエスケープは必要ありません。正常に%s/{$/;/g機能します。

于 2013-03-09T14:18:02.887 に答える