如果存在自动美化我的js代码的工具,那么我宁愿使用该包。
我想扩展所有这样的声明:
var n=x+(y+(z/k))-123;
变成:
var n = x + (y + (z / k)) - 123;
但是,目前我想将所有狭窄的=
,==
和===
语句转换为自己的填充版本。
我尝试使用像:%s/[^ ]==[^ ]/ == /g
之类的东西,但问题在于它会剪切前面和后续角色。
答案 0 :(得分:4)
在Vim中,您可以使用以下内容:
:%s!\s*\([!<>=/*+-]\+\)\s*! \1 !g
说明:
s
- 替换!
- 开始模式\s*
- 零个或多个空格\(
- 启动小组[!<>=/*+-]\+
- !<>=/*+-
\)
- 小组结尾\s*
零个或多个空格!
模式结束,替换开始<space>\1<space>
- 按空格填充的匹配组!
- 替换完毕g
- 全局一行但是如果你想要美化代码并坚持使用定义的编码标准,那么最好使用像Artistic Style这样的工具。
答案 1 :(得分:2)
这需要多个命令,但您可以尝试类似:
:%s/\([^\s]\)\([+\/()-=]\)/\1 \2/g
:%s/\([+\/()-=]\)\([^\s]\)/\1 \2/g
:%s/\([^\s]\)==/\1 ==/g
:%s/==\([^\s]\)/== \1/g
Then do those last 2 for each: !=, >=, <=, etc..