如何在Vim中做到这一点:
之前:
aaa
bbb
ccc
ddd
eee
fff
Run Code Online (Sandbox Code Playgroud)
后:
aaa
ccc
eee
Run Code Online (Sandbox Code Playgroud)
ib.*_*ib. 241
完成任务的一种优雅(高效)方法是:+delete使用该:global命令在每一行上发出
删除当前行旁边的行的命令.
:g/^/+d
Run Code Online (Sandbox Code Playgroud)
rui*_*rui 99
您可以使用宏来实现此目的.请执行下列操作.
gg.qq.dd.q.10000@qPS:要进入命令模式,只需按Escape几次即可.
Tad*_*dhg 64
我们可以使用:normal或:norm执行给定的普通模式命令.资源.
:%norm jdd
Run Code Online (Sandbox Code Playgroud)
Rao*_*ter 10
:map ^o ddj^o
^o
Run Code Online (Sandbox Code Playgroud)
这里^代表CTRL.递归宏每两行删除一行.选择好你的第一行就完成了.
来自vim邮件存档:
:let i=1 | while i <= line('$') | if (i % 2) | exe i . "delete" | endif | let i += 1 | endwhile
Run Code Online (Sandbox Code Playgroud)
(要在vim命令行的一行上键入,将删除行1,3,5,7,...)
您可以随时通过shell命令进行管道传输,这意味着您可以使用任何您喜欢的脚本语言:
:%!perl -nle 'print if $. % 2'
Run Code Online (Sandbox Code Playgroud)
(或使用"除非"而不是"如果",取决于你想要的那些行)
:%!awk -- '++c\%2'
Run Code Online (Sandbox Code Playgroud)
或者
:%!awk -- 'c++\%2'
Run Code Online (Sandbox Code Playgroud)
取决于你想淘汰哪一半。
| 归档时间: |
|
| 查看次数: |
36729 次 |
| 最近记录: |