[求助][vim]怎样根据不同条件替换?

Vim、Emacs配置和使用
回复
flyeblue
帖子: 48
注册时间: 2008-05-05 9:58

[求助][vim]怎样根据不同条件替换?

#1

帖子 flyeblue » 2012-04-22 3:21

如何实现:在一行开始如果有#这个符号就删除#,如果没有则在行首添加#
头像
Strange
帖子: 1824
注册时间: 2006-05-19 9:54
来自: Shanghai

Re: [求助][vim]怎样根据不同条件替换?

#2

帖子 Strange » 2012-04-22 7:38

写程序要注释的话,推荐使用注释插件。
ニンニク入れますか?
x60 with gentoo
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: [求助][vim]怎样根据不同条件替换?

#3

帖子 cao627 » 2012-04-22 10:26

等 答案
分2步
先在每行添加一个#,然后再删除连续2个以上的##,不算吧
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

Re: [求助][vim]怎样根据不同条件替换?

#4

帖子 cjxgm » 2012-04-22 12:51

代码: 全选

:help script
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: [求助][vim]怎样根据不同条件替换?

#5

帖子 fanhe » 2012-04-22 12:53

NERD_commenter.vim
头像
rykka
帖子: 59
注册时间: 2011-06-24 9:14

Re: [求助][vim]怎样根据不同条件替换?

#6

帖子 rykka » 2012-04-22 15:35

如果你的意思是用一条语句进行替换的话.

代码: 全选

%s/\v^([^#])|(#)/\= empty(submatch(2)) ? "#".submatch(1) : ""/  
如果要注释多行的话还是用插件好
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: [求助][vim]怎样根据不同条件替换?

#8

帖子 aerofox » 2012-04-23 22:50

其实没必要跟自己较劲,非要一条语句不可。接受两条语句的话:

代码: 全选

:v/^#/s/^/##/
:%s/#//
如果空行不加 # 的话,第一条语句改为:

代码: 全选

:%s/[^#]/##&/
回复