感觉完全够用了,复杂点都不用正则处理的。lilydjwg 写了:vim regex 中有不少功能 perl regex 做不到的。niejieqiang 写了::perld s///g
不需要再重新学习vim正则中那蛋疼的语法.
比如要处理成这样的(只用正则),将:
1123456789.7777776
变成
1,123,356,789.777,777,6
perld都可以实现了
感觉完全够用了,复杂点都不用正则处理的。lilydjwg 写了:vim regex 中有不少功能 perl regex 做不到的。niejieqiang 写了::perld s///g
不需要再重新学习vim正则中那蛋疼的语法.
Perl 的负向零宽断言要求是定长的,Perl 不支持 \zs 和 \ze,Perl 不能按行/列/光标位置匹配,Perl 不支持 \=。niejieqiang 写了:感觉完全够用了,复杂点都不用正则处理的。lilydjwg 写了:vim regex 中有不少功能 perl regex 做不到的。niejieqiang 写了::perld s///g
不需要再重新学习vim正则中那蛋疼的语法.
比如要处理成这样的(只用正则),将:
1123456789.7777776
变成
1,123,356,789.777,777,6
perld都可以实现了
\zs 和 \ze 是标记实际匹配的起止部分,可部分代替断言,比如把所有 abc 单词后加个逗号: %s/\<abc\>\zs/,/gniejieqiang 写了:![]()
vim正则不懂,看了下help,请问\ze 和\zs 是向前断言和向后断言吗?
perld可以。。。
\= 就是懒惰匹配???![]()
也是可以的。
行列光标位置匹配能否举个例子说明下?没折腾过
数字加一不是正则的东西了吧。。。。lilydjwg 写了:\zs 和 \ze 是标记实际匹配的起止部分,可部分代替断言,比如把所有 abc 单词后加个逗号: %s/\<abc\>\zs/,/gniejieqiang 写了:![]()
vim正则不懂,看了下help,请问\ze 和\zs 是向前断言和向后断言吗?
perld可以。。。
\= 就是懒惰匹配???![]()
也是可以的。
行列光标位置匹配能否举个例子说明下?没折腾过
缓冲区位置匹配见 :h \%l 等,这个一般都是插件里在用。
\= 在替换部分是指定从表达式求值,如 \=submatch(0) + 1 可以把匹配到的整数值加一。
反正 vim 就是可以这么弄。不光做算术,干别的事也行的。niejieqiang 写了:数字加一不是正则的东西了吧。。。。lilydjwg 写了:
\zs 和 \ze 是标记实际匹配的起止部分,可部分代替断言,比如把所有 abc 单词后加个逗号: %s/\<abc\>\zs/,/g
缓冲区位置匹配见 :h \%l 等,这个一般都是插件里在用。
\= 在替换部分是指定从表达式求值,如 \=submatch(0) + 1 可以把匹配到的整数值加一。
:perld s/(\d+)/$1+1/ge
让你看看怎么用sed实现数字加一的任务。niejieqiang 写了:数字加一不是正则的东西了吧。。。。lilydjwg 写了:\zs 和 \ze 是标记实际匹配的起止部分,可部分代替断言,比如把所有 abc 单词后加个逗号: %s/\<abc\>\zs/,/gniejieqiang 写了:![]()
vim正则不懂,看了下help,请问\ze 和\zs 是向前断言和向后断言吗?
perld可以。。。
\= 就是懒惰匹配???![]()
也是可以的。
行列光标位置匹配能否举个例子说明下?没折腾过
缓冲区位置匹配见 :h \%l 等,这个一般都是插件里在用。
\= 在替换部分是指定从表达式求值,如 \=submatch(0) + 1 可以把匹配到的整数值加一。
:perld s/(\d+)/$1+1/ge
代码: 全选
#!/usr/bin/sed -f
/[^0-9]/ d
# replace all leading 9s by _ (any other character except digits, could
# be used)
:d
s/9\(_*\)$/_\1/
td
# incr last digit only. The first line adds a most-significant
# digit of 1 if we have to add a digit.
#
# The `tn' commands are not necessary, but make the thing
# faster
s/^\(_*\)$/1\1/; tn
s/8\(_*\)$/9\1/; tn
s/7\(_*\)$/8\1/; tn
s/6\(_*\)$/7\1/; tn
s/5\(_*\)$/6\1/; tn
s/4\(_*\)$/5\1/; tn
s/3\(_*\)$/4\1/; tn
s/2\(_*\)$/3\1/; tn
s/1\(_*\)$/2\1/; tn
s/0\(_*\)$/1\1/; tn
:n
y/_/0/
代码: 全选
!!
代码: 全选
==
代码: 全选
@"
@*
代码: 全选
d/this
代码: 全选
map <leader>nu :set nu! nu?<CR>
map <leader>li :set li! li?<CR>
代码: 全选
nnoremap <c-scrollwheeldown> >>
nnoremap <c-scrollwheelup> <<
vnoremap <c-scrollwheeldown> >gv
vnoremap <c-scrollwheelup> <gv