2014-01-15 70 views
2

我按照Vim的方針here,並且也嘗試了網絡上其他的東西,但是沒有一樣工作......在Vim中處理突出顯示空白的最佳方法是什麼?

我也試過這樣:

autocmd InsertEnter * syn clear EOLWS | syn match EOLWS excludenl /\s\+\%#\@!$/ 
autocmd InsertLeave * syn clear EOLWS | syn match EOLWS excludenl /\s\+$/ 
highlight EOLWS ctermbg=red guibg=red 

,並且也不能正常工作(似乎只是在空行上突出顯示多餘的空格)。

什麼是處理突出結尾的空格(而不是當你鍵入?)

回答

1

我想你的第一個正則表達式只是稍微偏離的最佳途徑。這是我使用:

" highlight empty space at the end of a line          
autocmd InsertEnter * syn clear EOLWS | syn match EOLWS excludenl /\s\+\%#\@<!$/ 
autocmd InsertLeave * syn clear EOLWS | syn match EOLWS excludenl /\s\+$/  
highlight EOLWS ctermbg=red guibg=red           

注意\+之前和從你缺少!<

我也有一個函數映射到±空間(我已經設置爲一個逗號),以去除所有尾隨空格的文件:

function! <SID>StripTrailingWhitespace()           
    " Preparation: save last search, and cursor position.      
    let [email protected]/                 
    let l = line(".")               
    let c = col(".")                
    " Do the business:               
    %s/\s\+$//e                 
    " Clean up: restore previous search history, and cursor position    
    let @/=_s                 
    call cursor(l, c)               
endfunction                  
nmap <silent> <leader><space> :call <SID>StripTrailingWhitespace()<CR> 

很多更多的信息在這裏:http://vim.wikia.com/wiki/Highlight_unwanted_spaces

0

雖然理念確實很簡單,全面的實施仍然需要考慮很多事情和角落案例。由於我對可用插件不滿意,我寫了ShowTrailingWhitespace plugin,這是高度可配置的,並允許每個文件類型的例外。 (該插件頁面已鏈接到其他插件。)

相關問題