使用V命令选择一系列行后,我想删除文件中未被选中的每一行,那么有没有一种方法可以反转选择——选择每一行未被选中的行?
喜欢怎么样
:g!/FOO/d
Run Code Online (Sandbox Code Playgroud)
删除不包含FOO 的每一行。
如果我有一个范围并想使用它的倒数:
'a,'b
Run Code Online (Sandbox Code Playgroud)
我需要使用两个范围:
1,'a-1
Run Code Online (Sandbox Code Playgroud)
和
'b+1,$
Run Code Online (Sandbox Code Playgroud)
我怀疑这不能一步完成——但这会很好!
aki*_*ira 16
"*yggdG"*p 意思是 ...
"*y " yank it to the selection register
ggdG " delete everything
"*p " and paste the selection again
Run Code Online (Sandbox Code Playgroud)小智 8
只为后人:
:v/\%V/d
Run Code Online (Sandbox Code Playgroud)
这对不属于选择的行执行反向全局。请注意 :v 是基于行的构造,因此任何包含任何选择的行,无论是行、流还是块选择,都不会被删除。
首先创建以下映射(例如绑定到<F4>键)
map <F4> :<C-U>1,'<-1:delete<CR>:'>+1,$:delete<CR>
Run Code Online (Sandbox Code Playgroud)
然后,在视觉模式下选择一个范围后,只需按<F4>即可触发相关命令。该命令可以很容易地分几部分解释:
:" 进入命令行模式。<C-U>" 删除光标位置和行首之间的所有字符。1,'<-1" 指定从文件的第一行到当前选择开始前的行的范围。:delete<CR>" 删除(先前指定的行范围)。:'>+1,$:delete<CR>" 删除" "范围内'>+1,$的行,即从选择结束后的行到文件末尾。| 归档时间: |
|
| 查看次数: |
7678 次 |
| 最近记录: |