Переключение Языка в Паскале


Разработка → Эффективное использование Vim из песочницы
Июнь 10, 2016 – 10:02
Turbo Pascal 7.1.png
Я очень люблю редактор Vim, использую его в своей работе (для написания кода) уже больше четырех лет и хочу поделиться своим опытом его использования.

Эта статья — не набор “волшебных команд” и рецептов (cookbook, как называют такие наборы по-английски), хотя они тут тоже присутствуют, а, скорее, попытка описать, как общие принципы построения эргономичных интерфейсов можно применить в практике использования Vim, чтобы сделать из него удобную и эффективную среду работы с текстами.

Эта статья также не является tutorial’ом для начинающих пользователей Vim, хотя и им (а также пользователям Emacs) может быть интересна, поскольку некоторые упоминаемые принципы являются достаточно общими и действуют не только в системах редактирования текстов, а вообще везде, где идет речь об использовании компьютера для редактирования чего-либо. Тем не менее, я предполагаю, что читатель знаком с основными концепциями, применяемыми в Vim (режимы, регистры, буфера, команды) и не останавливаюсь на их подробном описании.

По умолчанию Vim настроен очень старомодно, и эта настройка подразумевает, что пользователь при работе с текстом будет мыслить метафорами пятидесятилетней давности, как будто бы сейчас заря эпохи UNIX. Однако дизайн Vim позволяет сделать несколько настроек, после которых система станет выглядеть вполне прилично и станет работать весьма эффективно, сочетая в себе полезные черты и древних юниксовых инструментов работы с текстом, и современных WYSIWIG-процессоров, при этом обходя, насколько это возможно, присущие им недостатки. Вот об этих настройках и приемах их использования и пойдет речь.

Работа с содержимым по модели “существительное — глагол”
Джеф Раскин, известный авторитет в области эргономики интерфейсов, в своем классическом труде “Интерфейс: новые направления в проектировании компьютерных систем” упоминает две модели работы с содержимым — “глагол — существительное”, когда сначала задается действие, а затем выбирается содержимое, к которому его нужно применить, и “существительное — глагол”, когда сначала выделяется содержимое, а затем к нему применяется какая-либо операция. В большинстве случаев предпочтительна именно модель “существительное — глагол”. В данном случае это определенно так. Добавлю, что часть приемов, о которых пойдет речь, были изобретены мной независимо от Раскина в то время, когда я еще не знал о существовании его книги, путем проб и ошибок — я пробовал разные способы выполнения действий, и через некоторое время у меня формировалось представление о том, что удобно, а что — нет.

В данном случае содержимым, над которым выполняются операции, является редактируемый текст. Выделенным содержимым, соответственно, обычно является выделенный текст.

В Vim, однако, понятие выделенного содержимого раздваивается. В качестве него могут выступать:

  • Блок текста, выделенный в режиме визуального выделения (обычно серым цветом)
  • Текст, отвечающий регулярному выражению, находящемся в регистре / (регистре текущего поиска). Иными словами, это текст, который подсвечивается желтым, когда включена опция hlsearch.

Первый случай широко известен, и подробно останавливаться на нем я не буду. В визуальном режиме серым цветом выделяется блок текста, затем к нему применяется команда (допустим, “Перевести в верхний регистр”). Все, как в других редакторах.
Подсветил — посмотрел — выполнил
Второй случай более интересен. В модели “существительное — глагол” он позволяет сделать существительным текст, отвечающий регулярному выражению в регистре /. При этом, когда включена опция :hlsearch, данный текст подсвечивается желтым. Это позволяет выработать стиль работы с текстом, который можно описать как «подсветил — посмотрел — (заменил ЭТО |удалил ЭТО |скопировал содержащие ЭТО строки | выполнил какую надо команду)», где ЭТО — текст, отвечающий регулярному выражению в регистре /. Такой стиль дает совершенно новый уровень удобства при выполнении операций типа “заменить все вхождения одного слова на другое” благодаря тому, что все вхождения заменяемого слова сразу видны в тексте. После перехода на такой стиль вернуться к старому стилю массовой замены практически невозможно (под “старым стилем” я здесь понимаю, например, реализацию команды “Заменить все” в текстовом редакторе Far manager’а, которая либо действительно заменяет все с риском заменить там, где не надо, либо запрашивает подтверждение каждой замены, создавая ненужные раздражающие запинки в работе). При использовании предварительной визуальной подстветки риск совершения ошибки при совершении массовых замен и подобных операций сведен к минимуму.

Дальше я опишу несколько настроек, которые при использовании стиля “подсветил — посмотрел — выполнил” оказались для меня очень удобными.

Source: habrahabr.ru
Похожие публикации