пятница, 26 ноября 2010 г.

Vim: отображение скрытых символов

Эта статья является вольным переводом http://vimcasts.org/episodes/show-invisibles/, сделанным для себя. В дальнейшем планирую перевести остальные скринкасты.

Спецсимволы

В Vim`е можно включить отображение скрытых символов, таких как символы табуляции и перевода строки, при помощи команды :set list. Скрыть спецсимволы можно с помощь команды :set nolist или :set list!.


Для быстрого переключения отображения спецсимволов вставьте следующие строки в свой  .vimrc, или если у вас установлена windows, то в _vimrc файле.

" Быстрый вызов команды `set list!` - \l
nmap <leader>l :set list!<CR>

Обычно <leader> назначена клавиша \, но её можно изменить с помощь команды: let mapleader = "ваша_клавиша"

Теперь займёмся самими спецсимволами. Символы назначенные по умолчанию выглядят не очень презентабельно, для их изменения используем команду :set listchars.

Для начала настроим два основных спецсимвола – табуляцию и конец строки.

Табуляция устанавливается двумя символами, первый символ индикатор начала табуляции, второй заполнитель. Например, если указать tab:>- , то при размере табуляции в 4 символа будет отображаться >---. Укажем индикатором табуляции "", а заполнителем пробел.

Символ завершения строки устанавливается одним символом, в качестве символа-индикатора установим символ ¬

" Используем символы как в TextMate для табуляции и конца строки
set listchars=tab:▸\ ,eol:¬

Ввести unicode-символы в vim’е можно в режиме редактирования, нажав комбинацию ctrl + v, затем клавишу u и четырёхсимвольный шестнадцатеричный код символа. В windows ctrl + v занята вставкой из буфера обмена, поэтому вместо неё в vim’е назначена комбинация ctrl + q

Вы можете настроить и отображение других скрытых символов, более подробно об этом можно узнать из справочной информации vim’а. Для этого нужно в обычный режим и набрать :help listchars.

Для себя я настроил, кроме табуляции и конца строки, индикаторы продолжения строки влево и право от экрана.

" Настраиваем отображения скрытых символов, при включении их отображения:
" tab - два символа для отображения табуляции (первый символ и заполнитель)
" eol - символ для отображения конца строки
" precedes - индикатор продолжения строки в лево
" extends - индикатор продолжения строки в право
set listchars=tab:▸·,eol:¬,precedes:«,extends:»

Цветовая схема

Если в вашей цветовой теме спецсимволы отображаются не тем цветом как вам бы хотелось. Исправить это можно через ключи NonText и SpecialKey, команды hightlight.

Например:

"Invisible character colors 
highlight NonText guifg=#4a4a59
highlight SpecialKey guifg=#4a4a59

Заострять внимание на настройках цветовой схемы не буду, т.к. в основном в них уже более-менее нормально настроены цвета для спецсимволов. Тем более, что на vimcasts.org вышел подкаст о цветовых схемах, соответственно к этой теме я ещё вернусь :)

Похожие по тематике посты:

1 комментарий:

Дож комментирует...

Спасибо, помогло :)