О прошлом
В декабре прошлого года, я писал о плагине который позволяет при открытии файла увидеть несоблюдение некоторых аспектов кодинг стандарта.
Прошло время и плагин получил новый функционал.
Включение / выключение плагина в сессии
Осуществляется командами:
:FileStyleEnable
:FileStyleDisable
Работает для всех открытых буферов.
Автоматическое исправление проблем форматирования
Осуществляется командой:
:FileStyleFix
Работает следующим образом:
- Удаляет управляющие последовательности
- Удаляет пробелы в конце строки
- Если опция
expandtab
включена, заменяет табуляции пробелами, в противном случае заменяет пробелы в начале строки табуляциями
Переопределения подсветки плагина
Подсветка используемая плагином может подойти не всем, поэтому есть возможность ее переопределить через явное определение в
vimrc
либо в файле цветовой схемы, одной или нескольких групп:FileStyleTabsError
FileStyleTrailingSpacesError
FileStyleSpacesError
FileStyleControlCharacter
FileStyleTooLongLine
Например, так:
highlight FileStyleTabsError ctermbg=3 guibg=Yellow
Игнорируемые паттерны
Если нужно убрать подсветку плагином какого-либо специфического паттерна, можно в
vimrc
добавить соледующую строку, содержащую паттерн:let g:filestyle_ignore_patterns = ['^\(> \?\)\+$']
В консоли для работы в цветовой схеме должна быть явно определена группа
Normal
с параметром ctermbg
.hi Normal ctermbg=15
Игнорируемые типы файлов
По умолчанию плагин проверяет все типы файлов, но можно опредеолить список игнорируемых плагином типов:
let g:filestyle_ignore = ['text']
Скачать можно по ссылкам: vim.org | GitHub
paceholder
Извиняюсь, но все описанные фишки плагина решаются стандартными средствами vim и парой строк конфигов.
DrLivesey
В таком случае, я прошу поделиться.
paceholder
Подсветка пробелов в конце строки (я показываю все знаки табуляции и пробелов)
set listchars=tab:>-,trail:~,extends:>,precedes:<
отрезание пробелов в конце строки
function! Trim() call Preserve('%s/\s\+$//e') endfunction
Кроме того, можно повесить хук на какую-нибудь кнопку, чтоб вызывалась внешняя команда для полного форматирования текущего буфера (у меня так работает с uncrustify для С++)
DrLivesey
Если честно, то отображение всех табуляций и пробелов несколько заграмождает интерфейс, как мне кажется.
Отрезание пробелов так и делается как у вас написано, только без использования Preserve().