按0跳到开始,然后
按d $删除直到行尾更快的擦除文本的方法呢?
此外,如果我想删除除缩进以外的所有内容怎么办?有办法吗?
#1 楼
如您所说,有多种方法,并且您还可以考虑清除或删除当前行后下一步的操作。dd删除当前行(不清除)
0D将清除当前行,包括空格
^ D将清除当前行,但不包含空格(^ dg_保存尾随空格)
0C将清除包括空格的当前行并将您置于插入模式
^ C将清除不包括空格的当前行并将您置于插入模式(^ cg_保存尾随空格)
cc或S分别用作4.或5.。如果'autoindent'分别处于打开或关闭状态。
因此请使用适合手部动作的任何东西。我相信0D是清除界线最快的方法,但是您可以根据需要将其映射到某个对象,以使其更快。
#2 楼
是的如果我喜欢Vim就是一件事,那就是“我能做到吗?”的答案。几乎总是很强调。0D跳转到开头,然后从行尾删除。
^ D(不是Ctrl + D)将跳转到
(PS我刚刚发现了这个问题,想与其他菜鸟分享。请告诉我是否有更好的方法。)
#3 楼
用一个(移动的)键清除该行:S.这也保持缩进。
您可以在缩进后的第一个位置或行的开头进入插入模式-正是您需要替换的行-因此名称为
S
-类似于替换。:help S
["x]S Delete [count] lines [into register x] and start
insert. Synonym for "cc" |linewise|.
["x]cc Delete [count] lines [into register x] and start
insert |linewise|. If 'autoindent' is on, preserve
the indent of the first line.
评论
S是关键。
– domi91c
17年4月20日在18:29
#4 楼
使用Kana的“ vim-textobj-line”插件,您可以对带有il
的缩进行(例如dil
)或不带换行符的整行使用al
(例如yal
)进行操作。这种方法的优点是微妙的:无需为所需的操作考虑两个动作(开始,结束),而是直接指定文本对象:在一行中。
评论
@SuperScript S是cc的同义词
–FDinoff
2015年6月11日,下午3:58
感谢您的出色回答,@ akshay; TYLTK做到了最好:vi.stackexchange.com/…
–罗比·韦克斯(Robbie Wxyz)
15年6月29日在16:40