2010-08-13 180 views
40

關於如何在我的代碼中使用vim刪除所有行的最後所有空格和製表符的任何想法?我有時會在命令行尾添加命令,但有時候,由於這些意外的空白(也就是說,我在編碼時無意中將這些空白放在那裏),這些命令毫無用處,這些命令並沒有做對工作......所以我想用vim命令徹底擺脫空白。提前致謝!刪除行尾的所有空格和製表符

回答

99

在VIM:

:%s/\s\+$// 

說明:

  • :命令
  • %適用於整個文件
  • s搜索和替換
  • /\s\+$/正則表達式的一個或多個空格字符FOL由線的端部lowed一個空字符串的
  • //替換值
+1

'\ s \ + $'是正則表達式,空字符串是替換。 '/'只是一個分隔符。您可以使用例如'_'代替它。 – strager 2010-08-13 07:29:51

+0

謝謝......我熟悉語法,雖然不知道空白字符!無論如何,它的工作:)我會盡快接受你的答案。 – Nigu 2010-08-13 07:33:04

+0

@strager:我意識到這一點;但是當你有分隔符時,代表一個空字符串要容易得多。在正則表達式部分和替換值中都包含兩個'/'字符的事實可能是他們不是特別是其中一部分的線索。 ;) – Amber 2010-08-13 16:16:47

13

我使用此功能:

func! DeleteTrailingWS() 
    exe "normal mz" 
    %s/\s\+$//ge 
    exe "normal `z" 
endfunc 

組長w至刪除尾隨空格

noremap <leader>w :call DeleteTrailingWS()<CR> 

保存python文件時刪除尾部空格:

autocmd BufWrite *.py :call DeleteTrailingWS() 
+0

對於使用Linux系統的新手來說,把這個函數放在〜 /.vimrc文件。 – 2015-02-06 07:21:51

+0

對我來說,我使用'leader + w'來保存,這會阻止我這麼做,所以我在'func'結尾加了'w'! – 2015-10-05 12:00:26

相關問題