2013-06-21 49 views
0

我:如何删除最后一个空白字符就行了

 
    int x = 1;______ 

(下划线表示空格) ,我想获得:

 
    int x = 1; 

我天真的解决方案是$bld$,有没有最快捷的方法?

在Emacs中我使用M-\ (delete-horizontal-space)

+0

参见[你怎么能自动删除在vim尾随空白(http://stackoverflow.com/questions/356126/how-can-you-automatically-remove-trailing-whitespace- in-vim) –

+0

'$ bld $'是什么? – doubleDown

+1

@doubleDown这是一系列按键。 $将光标移动到行的末尾,b将光标移动到前一个单词的末尾,l将光标向右移动一个字符,并且d $删除从光标到行尾的所有内容。 –

回答

1

我这样做了搜索和替换映射:

map <leader>W :%s/\s\+$//<CR>:let @/=''<CR> 

:%s/\s\+$//删除所有尾随空格,然后:let @/=''清除搜索寄存器。

2

对于当前行:

:s/\s\+$ 

对于所有行:

:%s/\s\+$ 

的替代文本可以,如果空白被省略,所以我们不需要写s/\s\+$//

+1

'\ +'比'*'效率更高;这意味着只有尾随空格的行才会被修改,而不是每一行。 –

+0

我会更强。 '*'只是一个坏主意。在它之后尝试'u':每一行都被修改过,而不仅仅是实际被修改过的行。很难看到改变了什么。 –