回答
在命令模式下,按下Ctrl键 - v进入可视化模式,那么你可以使用光标移动键块选择列。然后,您可以使用适当的vim命令和击键来放大并放置或删除它或您需要的任何内容。
,使用:%s/pattern//
图案不能够用一个命令,它主要是一个正则表达式。正则表达式中表达第二个领域是不是很容易
如果要删除第2场,可以过滤通过切割工具
:%! cut -d ' ' -f 2 --complement
,您可以按文本,然后按瓦特到去你的第二栏,并做cw。
即使第二列不是矩形区域,也不必使用awk。使用替换:
:%s/ \w\+//
第二列由至少一个由空格分隔的单词字符(\ w \ +)组成。替换是一个空白。这一个是线的选择范围:
:'<,'>s/ \w\+//
您可以在文件刚刚从VIM删除一个给定列。 在命令模式下使用以下命令来删除列n:
:%s/\(.\{n-1}\).\{1}\(.*$\)/\1\2/g
尽管他们可能解决楼主的问题,没有答案的解决了问题的标题广告的问题。我的建议是删除问题的第一行,并将其作为“删除vim中的一列”被一致拒绝,这里是通过实际查找到达的人员的解决方案。
删除与awk
的柱(这里,第二个,如在OP的伪代码示例)在vim
:
:%!awk '{$2=""; print $0}'
当然,它也适用于该文件的一部分 - 例如对于线10〜20:
:10,20!awk '{$2=""; print $0}'
至于“[运行] awk
在Vim
的搜索的选择”,不知道你能准确地做到这一点,但无论如何搜索和替换是awk
一件容易的事,如果不是它的主要目的。
:%!awk '$2~"pattern" {gsub("pattern","betterpattern",$2)}
注意,NOT
运营商需要逃逸(的\!
代替!
):下面的第二列,如果它匹配替换“模式”与“betterpattern”。下面通过其增量由10代替在第二列中的值,如果它符合“数字”,让其他线路不变:
:%!awk '$2~"number" {gsub($1,$1+10)} $2\!~"number" {print $0}'
Appart酒店从这一点这只是awk
语法。
我同意,这个问题应该改名,或者这个答案投票最正确的一个。 – AzP 2013-01-08 19:40:15
- 1. Vim在C/C++代码行中搜索
- 2. Vim的搜索
- 3. 在vim中搜索选择
- 4. 在Vim中高级搜索
- 5. 在vim中包含搜索
- 6. 在Vim中搜索/替换
- 7. Vim:在Open Buffers中搜索
- 8. Vim多行搜索模式
- 9. Vim的cnoremap在搜索
- 10. vim搜索\\不\
- 11. 运行AWK正在用awk
- 12. 在Vim中命名的搜索?
- 13. 搜索模式在awk中从变量
- 14. 在awk中按名称搜索列
- 15. 使用Negative lookahead的Vim多行搜索
- 16. Vim的开始从当前行搜索
- 17. 取消搜索在vim
- 18. 搜索高亮(hlsearch)在vim
- 19. Vim增量搜索
- 20. VIM搜索 - FuzzyFinder搜索特定文件
- 21. Vim,在文档头中搜索
- 22. 在vim中覆盖搜索命令
- 23. 在vim编辑器中搜索
- 24. 正则表达式在vim中搜索
- 25. 在vim中搜索视觉选择
- 26. 在VSCode Vim中隐藏搜索亮点
- 27. 在vim中搜索反斜杠字符
- 28. 模式搜索,但不能在vim中搜索和替换?
- 29. vim,如何搜索文本,并在搜索行之前添加新行
- 30. 在vim中搜索只有1个匹配的行
这是一个伟大的命令,我往往很容易忘记 – 2009-12-20 22:11:09