注册 登录
编程论坛 Linux教室

初学vim, 如何快速删除/替换此类文本

lonmaor 发布于 2012-01-15 21:38, 1419 次点击
只有本站会员才能查看附件,请 登录

如图,是c.vim插件的\ss命令插入的部分文本,请问如何快速删除/替换?
对象就是那些反白部分的文本

[ 本帖最后由 lonmaor 于 2012-1-15 21:39 编辑 ]
6 回复
#2
静夜思2012-01-15 22:09
假设要把<-LABEL->替换成bccn
%s/<-LABEL->/bccn/g

也支持正则替换
%s/<-.*->/bccn/g

删除的话直接换成空内容就可以了
%s/<-LABEL->//g


推荐一个Vim便利贴,上面都是一些vim的小贴士

http://tip.
#3
lonmaor2012-01-15 22:36
回复 2楼 静夜思
谢谢,我以为将鼠标移动到反白开始处能够用一个简单的类似于dd的命令就可以删除该处文字并留空呢。
或者换一种说法,那种反白的文字是如何在vim中输入的呢? 类似于word中的超链接之类?

[ 本帖最后由 lonmaor 于 2012-1-15 22:41 编辑 ]
#4
静夜思2012-01-15 23:16
主贴里这种情况不清楚
一般搜索的关键词都用反白显示,比如/abc会把文本中所有的abc反白
#5
pangding2012-01-18 14:28
我没用过你说的那个插件。所以也不是很清楚那个命令是不是有什么其它的便捷用法。

一般来说,如果你手动改的话,移动到 <-LABLE-> 的 < 处(比如用 /<-LABLE->) 然后用 ct: 就可以。
ctx 表示修改从光标直到x之间的内容(助记符是 change tile x)。然后可以用 n 跳到下一个。

其实直接反白了很可能是那个插件有意设了搜索串为 <-LABLE->,好方便你用 n N 之类的指令来跳转。你用一个
:nohl
如果那个反白没了,就是这种情况。

vim 一般只用来编辑文本,不处理富文本的内容。如果光标下的东西确实是超链接,可以用 gf 或者 <C-w><C-f> 这样的指令来跟踪那个链接(助记符是 goto file)。

[ 本帖最后由 pangding 于 2012-1-18 14:36 编辑 ]
#6
pangding2012-01-18 14:35
如果你想用命令的方式来改,那么可以先
vi{
把那个 switch 块选中,再
:s/<-LABEL->/\=input("")/
会只对选中区域执行替换。
然后你可以依次输入你想要替换的东西。

比如你想把那个 <-LABEL-> 替换成 1, 2, 3 就 1 回车,2 回车,3 回车 就行了。
不过直到你打完,都不会刷屏。所以在执行完之前看上去好像没什么作用。

我姑且想到的,没准也有什么其它的好方法能做这个事。
#7
easyknow2012-02-03 18:19
ctrl + j 就可已跳到<-LABEL->位置上.
1