Щоб видалити всю пробільну пробіл (в кінці кожного рядка), ви можете скористатися командою:
:%s/ \+$//
Для включення вкладок використовуйте \s
замість місця.
З командного рядка:
$ ex +'%s/\s\+$//e' -cwq file.c
Усі файли в поточному каталозі (рекурсивно використовувати **/*.*
):
$ ex +'bufdo!%s/\s\+$//e' -cxa *.*
Спосіб Python:
:py import vim
:pydo vim.current.buffer[linenr - 1] = vim.current.buffer[linenr - 1].strip()
або:
:py import vim
:py for i, l in enumerate(vim.current.buffer): vim.current.buffer[i] = l.rstrip()
Використовуйте lstrip()
для лівої смуги (задні), rstrip()
для правої смуги (провідної) або strip()
для зняття з обох кінців.
Ось корисна функція, яка видаляє зайвий пробіл з кінця рядка, який ви можете додати до свого .vimrc
:
" Removes superfluous white space from the end of a line
function! RemoveWhiteSpace()
:%s/\s*$//g
:'^
"`.
endfunction
Для цього також існує плагін DeleteTrailingWhitespace .
Виділення білих просторів
Щоб двічі перевірити, чи не залишилися всі пробіли, використовуйте:
Введіть, / $
щоб знайти їх. Якщо їх є, vim підкреслить їх для вас.
Використовуйте кольори, щоб виділити їх:
:highlight ws ctermbg=red guibg=red
:match ws /\s\+$/
Використовуйте видимі символи ( джерело ):
:set encoding=utf-8
:set listchars=trail:·
:set list
Дивіться також: Виділіть небажані пробіли
Щоб виділити пробіл пробігу за замовчуванням, ви можете налаштувати .vimrc
наступне:
highlight ws ctermbg=red guibg=red
match ws /\s\+$/
autocmd BufWinEnter * match ws / \+$/
Видалення пробілів за замовчуванням
Якщо ви хочете переконатися, що всі збережені пробіли у файлі автоматично видаляються під час збереження, ви можете додати в свою команду таку команду .vimrc
:
autocmd BufWritePre *.c,*.php :%s/ \+$//ge
що не рекомендується, оскільки воно буде позбавляти пробілів пробілів з кожного файлу, який зберігає користувач (навіть там, де потрібен пробіл).
Дивитися також: