Vim Global Command用法(g命令)
来源:互联网 发布:高三要有多努力 知乎 编辑:程序博客网 时间:2024/06/05 20:33
Task
删除一个文本文件中的所有带 ‘test’ 的行,以及这一行的前一行和后一行。
如何用Vim实现?
Solution
- :g/test/-,/test/+ d
上面的命令是如何工作的呢?这你就需要了解vim的global命令(g命令) :g
就是global命令
语法:
- :[range]g/pattern/cmd
- :g/pattern1/, /pattern2/cmd
第一种语法会在range的范围内搜索pattern, 如果符合要求就执行cmd.
第二种语法会在/p1/
, /p2/
之间执行cmd
例:
- :g/test/d
删除所有带test的行- :g!/test/d
保留带test的行- :g/hello/, /world/d
删除所有hello, world之间的行
提取宏定义
有如下代码,现在要求提取出当TEST为Ture时,所定义的内容
#ifdef TESTtest1test2#elseno test#endif
可以这样写g命令
:g/#ifdef TEST/+1, /#else\|#endif/-1 t $
+1
代表取下一行,-1
代表取上一行, #else|#endif表示满足#else或者#endif这两个条件都可以。
用以上的命令可以成功了取得#ifdef TEST所包含的内容
但如果我们想要取不满足#ifdef TEST的内容怎么办呢,这个问题要比上面的问题复杂。我们不能直接去搜索#else, 因为它之前有可能是其它的#ifdef, 而不是#ifdef TEST,其次,不是所有的#ifdef TEST都有#else定义。
所有我们要使用try和endtry命令
:try|g/#ifdef TEST//#else/+1, /#endif/-1 t $|endtry
解释一下,先找#ifdef TEST, 找到后再找#else, 然后取下一行,再找到#endif取上一行。
0 0
- Vim Global Command用法(g命令)
- vim(二) Global command
- vim-水木-global命令
- [VIM技巧]global命令详解
- 第十六章 Vim之Global命令
- vim强大的g命令
- vim g系列命令补充
- g++命令用法介绍
- Oracle 10g Command set命令集合
- vim命令常用用法
- linux命令(7)ubuntu的vim命令用法
- vim 点滴知识 —— g 命令
- vim command
- VIM Command
- vim command
- vim command
- vi/vim命令用法总结
- 命令(Command)模式
- 调用远程服务
- Docker入门实战-SSH连接docker容器
- 前台图片样式的相关处理
- LeetCode_OJ【40】Combination Sum II
- nodejs Tips7
- Vim Global Command用法(g命令)
- ajaxFileUpload 怎么传相关参数到后台
- Windows下配置使用Memcached Manager
- HTML与XHTML的区别
- JS之函数和事件
- 免费图库的,做数字图像处理必备的
- Matlab分类器大全
- Photoshop CS6 自学(四)文件操作之第二部分
- 实现简易涂鸦板