要删除一行或整个文件中的尾随空白,我可以这样做:
:[range]s/\s\+$//
但是,我想知道在普通模式下是否有一种简单的方法,例如,如果该行是:
Hi, I am a line |
我的光标经过了e,是否有比普通模式下执行dTe
更通用的命令?我能找到的下一个最佳选择是dg_
,但这太过分了。然后,另一个选择可能是gElD
。
答案 0 :(得分:1)
:substitute
使用 diw 可以将多个空白(包括制表符)删除,而光标位于其中一个空白(如示例中)。
这适用于任何空白序列:结尾,前导等。
使用 dw 从光标删除到序列末尾。当您想重新缩进一条线或修复对齐方式时,这很有用。
因为这与上一个/下一个单词的第一个/最后一个字符无关,所以这是最通用的方式。
:substitute
的映射使用nmap <leader>tr :%s/\s\+$//
通过按 \ tr (假定原始mapleader
) 1 来删除整个缓冲区中的所有尾随空白。
以最适合您的方式替换tr
。
省略映射中的%
,使其仅在当前行上起作用。
-
作为旁注:使用set list listchars=trail:·
显示结尾的空格(将·
替换为您喜欢的任何字符)。
-
1 删除所有空格可能不是您想要的,尤其是在使用版本控制系统并且文件中包含您自己未添加的空格时。