例如,如何从 Vim 的配置文件 .vimrc 中过滤出所有快捷键映射的配置行以及它前面紧挨着的注释行?
我知道以下命令可以过滤出配置行:
sed -n '/^1.*/p' .vimrc
但是,如何连同该行前面紧邻的所有注释行也过滤出来,请高手帮忙解答,谢谢!
sed 是流编辑器,要解决这个问题要一些技巧,sed -n '/^"/{H;d};/^"/!{//{H;x;p;s/.//;x;d};//!{s/.//;x;d};};' vimrc 应该能够达到要求,sed 命令教程请见 http://www.grymoire.com/Unix/Sed.html,详细说明如下。
sed -n '
/^"/ {
# 匹配到注释行,附加到缓冲空间
H
# 删除模式空间,开始新一轮匹配
d
}
/^"/ !{
# 匹配到非注释行
/<leader>/ {
# 匹配到目标行,附加到缓冲空间
H
# 交换缓冲空间和模式空间
x
# 打印模式空间
p
# 清空缓冲空间
s/.*//
x
# 删除模式空间,开始新一轮匹配
d
}
/<leader>/ !{
# 非目标行,清除缓冲空间
s/.*//
x
# 删除模式空间,开始新一轮匹配
d
}
}' vimrc
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。