vim用正则表达式替换文本的问题

Vim、Emacs配置和使用
回复
Dic4000
帖子: 104
注册时间: 2008-09-10 21:06
送出感谢: 0
接收感谢: 0

vim用正则表达式替换文本的问题

#1

帖子 Dic4000 » 2009-01-09 1:10

总觉的在vim中用正则表达式替换文本很不方便,因为要在几乎大部分的元字符上加上 \ 来转义,如下面的例子:

代码: 全选

:s/^\d\+//g
这个例子在元字符d和+前都加了转义符 \
请问有没有可能设置一下vim,与标准的正则表达式一样,不必输入 \ 来转义,就像下面一样:

代码: 全选

:s/^d+//g
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: vim用正则表达式替换文本的问题

#2

帖子 eexpress » 2009-01-09 8:39

\不就是区分正常字符和控制字符的嘛。
● 鸣学
头像
Strange
帖子: 1823
注册时间: 2006-05-19 9:54
来自: Shanghai
送出感谢: 2 次
接收感谢: 10 次

Re: vim用正则表达式替换文本的问题

#3

帖子 Strange » 2009-01-09 10:05

没有的
不光vim,各个工具在实现正则表达式的语法上都有或多或少的差别
比如grep, vim, notepad++, javascript, perl,regex语法上都有不同,这个只能自己去适应了
ニンニク入れますか?
x60 with gentoo
头像
ranfow
帖子: 176
注册时间: 2006-07-10 16:38
送出感谢: 0
接收感谢: 0
联系:

Re: vim用正则表达式替换文本的问题

#4

帖子 ranfow » 2009-01-09 10:19

:em01 加了才更有意思,没有就乱套了
头像
ibear
帖子: 787
注册时间: 2006-10-19 8:43
来自: 长江口
送出感谢: 1 次
接收感谢: 2 次

Re: vim用正则表达式替换文本的问题

#5

帖子 ibear » 2009-01-13 9:31

:h magic
sarrow
帖子: 403
注册时间: 2007-10-27 1:04
送出感谢: 0
接收感谢: 1 次

Re: vim用正则表达式替换文本的问题

#6

帖子 sarrow » 2009-01-13 18:49

请问有没有可能设置一下vim,与标准的正则表达式一样,不必输入 \ 来转义,就像下面一样:
代码:
:s/^d+//g
"与标准的正则表达式一样"不知道你这是哪门子标准?

其实,vim的正则分割符是很灵活的。好像任意的非字母符号都可以作为正则式分割符。

比如#,|等等。你可以根据自己的需要进行选择,以减少转义字符的使用。
回复

回到 “Vim和Emacs”