1

我有一段文字

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

我想变成

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

使用Vim. 我试过了

%s/\{$/;/g

但无济于事。有任何想法吗?

4

4 回答 4

3

我从您问题中的代码中看到的是,您想要这样做:

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

一些笔记

  • 不应该逃避{除非你使用very magic( \v)
  • 您在 之前有一个空格{,显然您希望将其删除。所以我们需要\s*之前{
  • {和之间也可能有空格$。所以我添加了另一个\s*
  • 你不需要g标志,一行只有一个$
  • 你也有一个%之前s/../../它会在整个文件上做这个替换。如果此结构有正常功能,{则将删除。替换后请仔细检查,以确保它没有破坏您的代码。
于 2013-03-09T14:38:34.583 回答
3

也许你在之后有一些空格{

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

于 2013-03-09T14:20:20.250 回答
2

通常在 Vim 中,正则表达式{是一个大括号,不需要转义。这适用于正则表达式(如果您指定了选项,则例外 - 请参阅magic了解更多信息。non-magicvery-magichelp: magic

所以这将起作用:

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

这里不需要转义,%s/{$/;/g工作正常。

于 2013-03-09T14:18:02.887 回答