Aby usunąć wszystkie końcowe białe znaki (na końcu każdej linii), możesz użyć polecenia:
:%s/ \+$//
Aby dołączyć tabulatory, użyj \s
zamiast spacji.
Z wiersza polecenia:
$ ex +'%s/\s\+$//e' -cwq file.c
Wszystkie pliki w bieżącym katalogu (użyj rekurencyjnie **/*.*
):
$ ex +'bufdo!%s/\s\+$//e' -cxa *.*
Sposób Pythona:
:py import vim
:pydo vim.current.buffer[linenr - 1] = vim.current.buffer[linenr - 1].strip()
lub:
:py import vim
:py for i, l in enumerate(vim.current.buffer): vim.current.buffer[i] = l.rstrip()
Użyj lstrip()
do lewego paska (wleczonego), rstrip()
do prawego paska (prowadzącego) lub strip()
do usunięcia z obu końców.
Oto przydatna funkcja, która usuwa zbędne białe znaki z końca linii, którą możesz dodać do swojego .vimrc
:
" Removes superfluous white space from the end of a line
function! RemoveWhiteSpace()
:%s/\s*$//g
:'^
"`.
endfunction
Do tego jest również wtyczka DeleteTrailingWhitespace .
Podkreślanie białych znaków
Aby dokładnie sprawdzić, czy zniknęły wszystkie spacje końcowe, użyj:
Wpisz, / $
aby je znaleźć. Jeśli są jakieś, vim podświetli je dla ciebie.
Użyj kolorów, aby je podświetlić:
:highlight ws ctermbg=red guibg=red
:match ws /\s\+$/
Użyj widocznych znaków ( źródło ):
:set encoding=utf-8
:set listchars=trail:·
:set list
Zobacz także: Podkreśl niechciane miejsca
Aby domyślnie wyróżnić końcowe białe znaki, możesz skonfigurować .vimrc
następujące czynności:
highlight ws ctermbg=red guibg=red
match ws /\s\+$/
autocmd BufWinEnter * match ws / \+$/
Domyślnie usuwa białe spacje
Jeśli chcesz się upewnić, że wszystkie końcowe białe znaki w pliku są automatycznie usuwane podczas zapisywania, możesz dodać następujące polecenie do .vimrc
:
autocmd BufWritePre *.c,*.php :%s/ \+$//ge
co nie jest zalecane, ponieważ spowoduje usunięcie końcowych spacji z każdego pliku zapisywanego przez użytkownika (nawet tam, gdzie może być wymagana biała spacja).
Zobacz też: