2013-06-21 54 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':每一行都被修改過,而不僅僅是實際被修改過的行。很難看到改變了什麼。 –