Думаю, многие из вас уже сталкивались с vim. Vim - это текстовый редактор для linux-based систем.
По моему личному усмотрению большинство пользователей vim делятся на 2 типа:
- Я его поставил, что-то он какой-то сложный. Я даже не смог сохранить изменения в файле.
- Да нет там ничего сложного. Правда из всего что я знаю это сохранить изменения, закрыть документ и осуществить поиск.
И да вы можете сказать, что навыков 2 типа вполне хватает для работы. И в 80% случаев применения vim вы будете правы.
Но что можно сказать об остальных 20%? А вот что:
- Эти 20% в основном выпадают на срочные задачи (когда у вас что-то поломалось). Допустим вам надо перейти на определённую строку в файле, и вы не знаете, как это сделать, и тупо считаете строчки.
- Как правило из-за незнания всех возможностей vim манипуляция с этими 20% занимают долгое время.
В этой статье мы поговорим о плагинах, горячих клавишах и т.д.
Люди говорят, что стать гуру vim практически не реально, но обязательно стоит попробовать.
Запуск vim
Для запуска vim вбиваем vim
. После чего нас встречает окно с описанием базовых команд и другой информацией о vim.
Режимы vim
-
Режим Normal По у молчания vim открывается именно в этом режиме. В этом режиме вы можете править документ (например, удалять строки двойным нажатием клавиши
d
). И можете передвигаться по документу используя клавиатуру. Также вы переходите их этого режима во все остальные. -
Режим Insert Находясь в нормальном режиме нажимаем клавишу
i
и переходим в режим Insert. Об этом нас оповещает надпись--INSERT--
в левом нижнем углу.В этом режиме вы можете писать текст.
Для того чтобы выйти из режима Insert и перейти в режим Normal нажимаем
ESC
илиCTRL+c
. -
Режим Visual В этом режиме вы можете выделять контент и производить с ним манипуляции. Вы можете изменить, отредактировать или скопировать свой выделенный текст.
Для перехода в этот режим находясь в режиме Normal нажимаем клавишу
v
.Если вы хотите выделить всю строку целиком находясь в режиме Normal нажмите на клавиатуре
SHIFT+v
. -
Режим Command-Line Находясь в этом режиме, вы можете выполнять команды vim.
Для перехода в этот режим необходимо ввести
:
в режиме Normal и ваш курсор автоматически окажется внизу.Небольшой список команд, которые вы можете использовать:
- :help - как понятно из названия выводит справку (например вы можете получить помощь по режимам :help vim-modes)
- :q - выход из vim (только если нет изменений)
- :q! - выход из vim и отмена всех изменений в документе
- :w - сохранить все изменения в документе
- :wq - сохранить изменения и выйти из vim
- :e - даёт возможность открыть документ по абсолютному пути (т.е вбиваете путь к документу, который хотите открыть)
Поиск по документу
Для поиска слов в документе находясь в режиме Normal вбиваем /
после чего курсор перемещается в низ редактора, где вы уже пишите интересующее вас слово и нажимаете ENTER
.
Для того чтобы перейти к следующему совпадению в документе нажимаем n
, а для предыдущего N
.
Для получения справки по поиску можно воспользоваться :help search-commands
.
Отмена изменений (Undo)
Для того чтобы отменить выполненные изменения находясь в режиме Normal нажимаем u
, для того чтобы вернуть изменения нажимаем CTRL+r
.
Для получения справки можно воспользоваться :help undo-redo
.
Команды режима Insert
Для входа в режим Insert вы также можете использовать и другие клавиши, а именно:
a
- перейти в режим Insert и поместить курсор после текущего символаA
- перейти в режим Insert и поместить курсор в конец строкиo
- перейти в режим Insert и поместить курсор на строку нижеO
- перейти в режим Insert и поместить курсор на строку выше при этом имитируя нажатиеENTER
(новая строка)
Операторы и текстовые поля
Операторы - это глаголы языка Vim. Выполняют манипуляции с текстом, вот некоторые из них:
d
- в комбинации со стрелками удаляет символ слева или справаdiw
- удалит всё словоdip
- удаляет весь параграфc
- удаляет выделенный фрагмент (в режиме Visual) и переходит в режим Insertciw
- тоже самое чтоc
, только со словомy
- копирует выделенное (в режиме Visual)yy
- скопировать строкуp
- вставить скопированноеd$
- удалить всё с начала курсора до конца строкиdgg
- удалить всё с начала курсора до начала строкиggdG
- удалить всё в файле
Для просмотра справки можно воспользоваться :help operator
и :help text-objects
.
Перемещение курсора
Вроде бы всё понятно просто двигаешь курсор стрелочками на клавиатуре.
А что если вы точно знаете, что хотите переместить курсор на 5 строк ниже? А всё так же просто нажимаете цифру 5
и потом стрелочку вниз. В итоге окажетесь на 5 строк ниже (также работает и с другими стрелками).
Вы также можете использовать клавиши h
, j
, k
и l
вместо стрелок для перемещения курсора соответственно влево, вниз, вверх и вправо.
Также вы можете использовать следующие клавиши:
w
- переход ко следующему слову. Если в строке одно слово, то переходит на новую строкуb
- переход к предыдущему слову. Если в строке одно слово, то переходит на строку вверх0
- переход в начало строкиˆ
- переход к первому непустому символу в строке (т.е отсекает пробелы в начале строки)$
- переход в конец строки%
- если курсор находится на открывающей скобке перемещает его на закрывающую скобкуG
- перейти в конец документа. Может использоваться для перехода на определенную строку, например,10G
переведёт курсор на 10 строку.gg
- перевести курсор в начало документаCTRL+e
- прокрутить окно внизCTRL+u
- перевести курсор вверх на половину экранаCTRL+d
- перевести курсор вниз на половину экрана
Комментарии