VIM中的行选择
回答
:g!/hello/ yank A
的行存储在寄存器中,粘贴他们做“AP
编辑: 可以缩写为
:g!/hello/y A
对于那些有兴趣这意味着什么VIM:
:g =全局搜索
!=否定布尔测试
/hello/=匹配“hello”的正则表达式
y =对每个匹配行执行的命令,在本例中为“yank”
A =向“yank”命令的register参数。在这种情况下,注册'a',但以大写字母的形式表示追加到寄存器而不是替换。
只要你在系统上有grep
,你可以使用这个命令:
:!grep -v hello % > file
我通常做这个用的
:g/hello/d
一些变化即删除包含“hello”的所有内容,然后选择,抽出或需要做的任何事情,最后还原为你。 我觉得这不是精神上的征税,然后建立命令行管道。
这是更短的命令比我同样的问题。 – 2009-08-03 03:50:47
选择并写入新文件:
:g/hello/ . w!>> file
+1 - 但你需要切换g /到v /来选择所有不包含你好的线 – rampion 2009-04-21 11:51:38
这是什么。意思? – 2009-04-21 13:29:47
后Vim命令
:let @a='' | g!/hello/normal "Ayy
您将有所有不寄存器 'A' 有 '你好' 的线。你可以粘贴它的价值与“AP正常的命令或者把这个价值系统剪贴板
:let @*[email protected]
而且可以运行在Mac Os或“鼠标使用再按下‘Ctrl + V’(Windows)或‘Cmd + V键’点击”在Linux上粘贴文本
神奇简介:
@a存储在绑定到值一个Vim变量。‘一’注册
“ ap,“bp,”cp,..是在Vim正常模式下从特定寄存器中过去值的关键组合。
@ *是绑定到系统剪贴板的Vim变量。
let @ * = @a将寄存器'a'的值赋给系统剪贴板。
将此添加到您的.vimrc或使用插件目录创建文件。
function s:copy_unmathced_lines(pattern)
let result_lines = []
for line in getline(1, '$')
if line !~ a:pattern
call add(result_lines, line)
endif
endfor
let @* = join(result_lines, "\n")
endfunction
command -nargs=1 CopyUnmatchedLines call s:copy_unmathced_lines(<q-args>)
使用情况很简单:
CopyUnmatchedLines hello
,然后只需在任何编辑器中使用粘贴命令。现在
这个答案似乎很酷,但不知何故难以理解。也许,有人可以在答复中澄清事情如何在表面下发挥作用。什么是奇怪的事情,如“@a”和“让”? Ex,vim或其他什么? – 2009-07-30 00:42:01
另一个我没有看到提到的是redirecton。
因此,对于你的情况,这将是
:redir > file
:g!/hello/
:redir END
又见
:help redir
:help verbosefile
FGM的回答几乎有
:v将选择不匹配
这么线下面的代码将不包含“hello”的行添加到名为eee的文件中,创建i如果需要的话。
:v/hello/ . w!>>eee
与Blixtor的片段一个实际的例子:电子邮件朋友丢失 “:verbosefile”。
一打开手册 “:E/TMP/NEW_FILE” 和 “:H verbosefile”,然后让我们复制猫blixtor的提示:
:redir > /tmp/verbosefile_instructions
:g/verbosefile/
:redir END
II。确认您遵循有关您的电子邮件的标准规则,并提供标准问候:
:match ErrorMsg /\%>73v.\+/
:so /bin/greetings.vim
三。用Mutt发送文件。
例关于视觉的选择和复制:假设你要分开的一部分:
视觉选择它,然后按 “:”
然后使用命令:
:'<,'>! > ../new_file_in_a_subdirectory
错误:颜色将被复制到该文件,它实际上没有应对宁愿减少和粘贴。
非常简单;
:v/hello/ |redir >> file
- 1. 对vim中的选择执行'base64 --decode'
- 2. Vim的:选择
- 3. 选择在Vim中
- 4. 如何从vim命令行中选择?
- 5. 在Vim中执行脚本选择
- 6. 在Vim中,为什么V在选择后选择更多行?
- 7. Vim,选择行后的同步屏幕
- 8. 在Vim中选择页面?
- 9. 选择文本从Vim中
- 10. 如何选择在Vim中
- 11. 在vim中搜索选择
- 12. vim运行选择命令(或功能)
- 13. 多选择在Vim的
- 14. 的Vim:反向选择
- 15. 取消VIM中的选择模式
- 16. 将视觉选择转换为vim中的视觉线选择
- 17. 如何在vim中通过视觉选择运行多行宏?
- 18. 在VIM中选择整行,不包含换行符
- 19. 在vim的一行中选择第二个对象
- 20. Vim Visual选择变量
- 21. 如何在Vim中选择锯齿块?
- 22. 从视觉搜索在VIM中选择?
- 23. 在vim中搜索视觉选择
- 24. 如何在vim中选择文本?
- 25. 在vim中使用块选择从行尾删除
- 26. 如何从vim中垂直所有行快速选择区域?
- 27. 如何在Vim中选择整行作为运动?
- 28. vim命令在选择中搜索和复制行
- 29. 更改vim选择的文本颜色
- 30. vim:如何选择粘贴的块
“%”不是grep的特殊字符,它是vim的命令行特殊字符,请参阅:帮助CMDLINE特 – user55400 2009-04-21 13:49:01