Mik*_*den 52 regex vim replace
在vim中进行搜索/替换时,我几乎从不需要使用正则表达式,因此不断地逃避所有内容是一种痛苦,是否有办法使其默认不使用正则表达式或是否有替代命令来实现此目的?
举个例子,如果我想更换<
用<
,我想只能够输入s/</</g
,而不是s/\</\<\;/g
bju*_*nix 81
对于:s命令,有一个禁用或强制魔法的快捷方式.关闭魔法使用,%sno
如:
:%sno/search_string/replace_string/g
Run Code Online (Sandbox Code Playgroud)
在这里找到:http://vim.wikia.com/wiki/Simplifying_regular_expressions_using_magic_and_no-magic
Her*_*itz 15
问题主要是由于&
对替换字符串中的角色的混淆造成的.替换字符串不是注册表,虽然它有一些特殊的字符,比如&
.您可以&
在此处阅读替换字符串中的角色: :h sub-replace-special
.
我怀疑OP的主要问题不一定是输入额外的反斜杠,而是记住何时需要反斜杠,何时不需要反斜杠.一种解决方法可能是在不确定时开始使用"替换表达式".(请参阅:h sub-replace-expression
.)这需要在替换字符串中添加一个`\ =',但对于某些人来说,它可以让您更自然地控制被替换的字符串,因为将字符串文字放在单引号中将为您提供所需的替换字符串.例如,这个替代品符合OP的要求:
:s/</\='<'/g
Run Code Online (Sandbox Code Playgroud)
Mic*_*tor 14
使用此选项:
set nomagic
Run Code Online (Sandbox Code Playgroud)
看到 :help /magic