Курсор в начале <TAB> в Vim

Рубрика: IT. Сети. Связь
Метки: | | |
Четверг, 31 января 2013 г.
Просмотров: 3832
Подписаться на комментарии по RSS

Одной свербящей особенностью при знакомстве с текстовым редактором Vim являлось то, что символ табуляции, такой, к которому мы привыкли из «нормальных» редакторов, к примеру Notepad++ или консольного nano, ведёт себя совсем не должным образом. Если <TAB> поставлен в начале строки, то почему-то нельзя нажать клавишу «влево» и достигнуть начала окна редактирования. А внутри текста он ведёт себя просто вызывающе: курсор стоит не перед <TAB>ом, как положено, а не доходя одного символа до конца <TAB>а! Глумление над нами, чистой воды.

На самом деле такое поведение вполне естественно с точки зрения Vim. Символ табуляции — это один символ, поэтому в normal mode Vim помещает кусор на положенное место — над символом (или перед ним, в зависимости от настроек терминала) — чтобы его можно было удалить, заменить и просто осознать, что <TAB> — это один символ, такой же как остальные а не резиновая четырёхсимвольная махина. А то, что визуально символ табуляции занимает 2, 4, 8, или сколько сами определим, символов — это тоже так надо, иначе бы он ничем не отличался от пробела, по крайней мере для нас, зрителей.

Допустим не нравится нам такое поведение Vim. Есть два разумных способа это исправить. Первый я нашёл везде и это не совсем то, что нужно. Вам будет позволено перемещать курсор по всей плоскости экрана посимвольно (а также появятся дополнительные бонусы, связанные с выделением вертикальных блоков текста), но перепрыгивать через <TAB> разом не получится:

set virtualedit=all

Второй, который действительно похож на правду, я нашёл в архиве девелоперской переписки:

set list listchars=tab:\ \ 

Обратите внимание на пробел после второго «\». При использовании второго способа вы теряете бонусы, которые даёт опция «set invlist», если, конечно, вы ей пользуетесь.

Эти опции можно прописать, как и все остальные, в ~/.vimrc.

twitter.com facebook.com vkontakte.ru mail.ru friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru yandex.ru del.icio.us

Оставьте комментарий!

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



(обязательно)