Vim

Vim

Vim (VI Improved) — текстовый редактор, идеологическое продолжение текстового редактора vi. Отличительная особенность редактора (как и редактора vi) — поддержка режимов редактирования: поведение редактора и его реакция на нажатие клавиш определяется тем, в каком режиме он сейчас находится.

Навигация

Внутри строки: …

  • 0 — переход в начало строки
  • ^ — переход на первый непробельный символ
  • $ — переход в конец строки
  • f символ — переход к первому найденному символу
  • F символ — переход к первому найденному символу в обратном направлении
  • t символ — перейти на один символ левее заданного (почти как f, только идёт на один символ меньше; очень удобно, когда надо «удалить до запятой, но запятую оставить»)
  • T символ — перейти на один символ левее заданного, поиск ведется в обратном направлении
  • w — перейти к началу следующего слова
  • e — перейти в конец следующего слова
  • b — перейти к началу предыдущего слова

По строкам:

  • 30G — перейти на строку 30
  • G — перейти на последнюю строку
  • gg — перейти на первую строку

По отметкам:

  • « — к месту, с которого был сделан последний прыжок (прыгнуть назад)
  • `. — к месту последней правки

Прокрутка окна:

  • z- — прокрутить окно так, что строка с курсором будет почти в самом низу
  • z. — прокрутить окно так, что строка с курсором будет почти в центре
  • z Enter — прокрутить окно так, что строка с курсором будет вверху

Правка

  • r — замена
  • d — удаление
  • y — копирование
  • < — сдвиг влево
  • > — сдвиг вправо
  •  ! — передача внешней команде

В режиме вставки

  • ctrl t — сдвинуть строку вправо
  • ctrl d — сдвинуть сроку влево
  • ctrl w — стереть слово слева
  • ctrl u — стереть всю строку слева

Отличия Vim от Vi

Некоторые приятные возможности редактора Vim:

  • Встроенная помощь;
  • Визуальный режим (выделение блоков);
  • Поддержка вкладок (только Vim 7);
  • Подсветка синтаксиса для более чем 200 языков программирования;
  • Неограниченная глубина истории действий (undo/redo);
  • Автоматическое контекстозависимое продолжение слов и названий функций (autocompletion);
  • Расширенная поддержка регулярных выражений;
  • Интеграция с большим числом компиляторов, интерпретаторов и отладчиков;
  • Поддержка скриптинга (на своём языке, Perl или Python) и огромное количество готовых скриптов (>1500).

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

 set compatible

Обратное действие:

 set nocompatible

Vim автоматически включает эту опцию (nocompatible) если видит, что в домашнем каталоге пользователя есть файл ~/.vimrc.

Визуальный режим

  • v — посимвольное выделение;
  • V (shift v) — построчное выделение;
  • ctrl-v — поблочное выделение;
  • gv — вернуть выделение (после выполнения операции, например);
  • I — вставить введённый текст во все строки, выделенные блоком, перед блоком (только для вертикального блока).

После того как блок выделен, обычная операция, как правило, применяется ко всему блоку. Например, если нажать d, то блок удалится; y — скопируется; ~ — изменит регистр; и так далее.

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

set ve=all

В этом случае курсор может двигаться не только по тексту, а где угодно. Таким образом, скопированный вертикальный блок можно вставить в любое место в буфере редактора.

Выключить режим виртуального редактирования можно так:

set ve=

Новые возможности Vim 7

  • Проверка орфографии
    •  :set spell — включить поддержку орфографии
    •  :set nospell — выключить поддержку орфографии
    • ]s — перейти к следующему неправильному слову
    • [s — перейти к предыдущему неправильному слову
    • z= — показать наиболее близкие альтернативы неправильному слову
  • Продвинутое undo (машина времени, просмотр изменений и другое)
    •  :earlier …
    •  :later …
    •  :undolist
    •  :undo число
  • Табы
    • tabe файл
    • tabs — список табов
    • tabc (close)
    • tabnew
    • tabn (next)
    • tabp (previous)
    • tabf (first)
    • tabo (other) — закрыть все остальные табы
  • Автоматическое продолжение названий методов, переменных (omni completion)
    • ctrl+x ctrl+o
  • Автоматическая подсветка парных скобок {, [, (
    •  :NoMatchParen — отключить подсветку

Источник

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

Добавить комментарий