- Описание
- Выход, сохранение, редактирование
- Общее использование
- Окна, вкладки и т.д.
- Работа со вкладками
- Настройки для .vimrc
- Вопросы и ответы
- Полезные ссылки
Vim (Vi Improved) — свободный текстовый редактор, созданный на основе более старого vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, возможными благодаря расширениям и надстройкам.
Для комфортной работы в Vim нужно потратить некоторое время на запоминание основных команд, при этом желательно уметь печатать «вслепую». Все операции с текстом в Vim можно выполнять, не отрывая рук от клавиатуры, то есть, мышь и дополнительная клавиатура со стрелками просто не нужны, более того, тянуться к ним неудобно, если вы освоили «слепой метод».
В Vim существует несколько режимов работы:
- Обычный. В этом режиме можно перемещаться по тексту и выполнять базовые операции редактирования, такие как удаление или вставка текста. В режиме команд каждая текстовая клавиша выполняет некоторую функцию. Например, при нажатии 1 p вставляется текст из буфера обмена (это аналог сочетания клавиш CTRL+V), а при нажатии x стирается символ под курсором. Для перехода в обычный режим из любого другого режима нужно нажать клавишу ESC. Следите за тем, чтобы в была установлена латинская раскладка клавиатуры и выключен CAPS-LOCK.
- Режим ввода. В режиме ввода Vim работает как обычный текстовый редактор, в котором вводится текст. Для перехода в режим вставки используются клавиши:
- i — начать ввод перед символом, на котором находится курсор
- I — начать ввод перед первым символом в строке
- a — начать ввода после символа, на котором находится курсор
- A — начать ввода после последнего символа в строке
- o — добавить пустую строку ниже данной строки и начать ввод
- O — добавить пустую строку выше данной строки и начать ввод
- Режим команд. Все команды начинаются с двоеточия. Например, команда
:e file.txt
открывает файл file.txt, а команда:w
сохраняет текущий файл.
Команда | Описание |
---|---|
:q | выход из файла |
:w | сохранить файл/записать содержимое |
:e | обновить содержимое файла |
! | выполнить команду в любом случае |
:wq | команды можно совмещать(в данном примере файл будет сохранен и закрыт) |
:x | аналог :wq |
ZZ | аналог :wq |
:q! | команды можно совмещать(выйти в любом случае, например, после сделанных изменений, без их сохранения) |
Команда | Описание |
---|---|
i | режим вставки/ввода |
a | режим вставки/ввода |
ESC (Ctrl+[) | обычный режим |
hjkl | перемещение в разные стороны |
o | добавить строку сразу за текущей |
O | добавить строку перед текущей |
u | отмена последней команды |
Ctrl+r | отмена отмены последней команды(redo)/повтор последней команды |
gg | перейти в начало документа |
Shift+g | перейти в конец документа |
Shift+a | перейти в конец строки и перейти в режим редактирования |
Shift+v | перейти в визуальный режим |
dd | удалить текущую строку (вырезать) |
yy | копировать строку |
p | вставить из буфера обмена |
/ | начать вводить поисковую фразу |
n | следующий результат поиска |
Shift+n | предыдущий результат поиска |
^ | переход в начало строки |
$ | переход в конец строки |
Ctrl+b | перемещение на один экран назад |
Ctrl+f | перемещение на один экран вперед |
mа | создания закладки с именем 'a' |
'a | переход к созданной закладке 'a' |
Команда | Описание |
---|---|
Ctrl+w s | горизонтальное разделение окна |
Ctrl+w v | вертикальное разделение окна |
Ctrl+w <клавиша перемещения> | перемещение к окну |
Ctrl+w K | текущее окно сделать верхним |
Ctrl+w _ | текущее окно сделать макс размер |
Ctrl+w = | выровнять все окна |
Команда | Описание |
---|---|
:tabnew [filename] | открыть новую вкладку |
:tabf pattern | открыть вкладку по шаблону |
:tabs | список открытых вкладок |
gt или :tabn | следующая вкладка |
g Shift+t или :tabp | предыдущая вкладка |
:tabfirst или :tabfir | первая вкладка |
:tablast | последняя вкладка |
:tabm n | переместить вкладку в n (от 0) |
:tabdo command | выполнить над всеми вкладками |
Добавьте в файл ~/.vimrc
:
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab
Добавьте в файл ~/.vimrc
:
:set nocompatible
- Как создать новый файл? Если Vim настроен в системе, то файл можно создать, например, щелкнув в проводнике правой кнопкой мыши и, выбрав «Новый файл», а затем открыть созданный файл Vim. Можно создать файл прямо из Vim с помощью команды
:e c:\prj\myfile.txt
В некоторых случаях удобно сначала перейти в папку, где будет создан файл:cd
, а потом его открыть:e :cd c:\prj :e myfile.cpp
- Как открыть файл? С помощью команды
:e myfile.cpp
- Как сохранить файл? С помощью команды
:w
. Чтобы сохранить под другим именем, то:w новое имя
- Как выйти из Vim? Командой
:q
. Чтобы сохранить текущий файл и выйти:wq
. Выйти без сохранения:q!
- Как перемещаться по тексту? Используйте следующие клавиши и их комбинации:
- h — переместиться на один символ влево
- j — переместиться на один символ вниз
- k — переместиться на один символ вверх
- l — переместиться на один символ вправо
- CTRL + f — переместиться на страницу вниз
- CTRL + b — переместиться на страницу вверх
- w — переместиться на начало следующего слова.
- b — переместиться на начало предыдущего слова
- Как перейти на строку 42? С помощью команды
:42
- Как найти в тексте некоторое слово? Допустим, это слово «яблоко». Тогда так:
/яблоко
- Как найти и заменить одно слово на другое? Заменим все слова «яблоко» на слово «груша»
:%s/яблоко/груша/g
- Как скопировать строку? Установите курсор на строку, которую хотите скопировать и нажмите
yy
. Перейдите туда, куда вы хотите вставить строку и нажмитеp
чтобы вставить строку ниже курсора илиP
— чтобы вставить выше - Как скопировать несколько строк? Перейдите на первую копируемую строку и нажмите
my
. Перейдите на последнюю копируемую строку и нажмитеy’y
. Затем перейдите туда, куда хотите вставить строки и нажмитеp
илиP
- Как перенести одну строку в другое место? Так же как и скопировать, но вместо
yy
нажмитеdd
- Как перенести несколько строк в другое место? Так же как и скопировать, но вместо
my
нажмитеmd
, а вместоy’y
нажмитеd’d
. - Как скопировать часть текста? Нажмите
v
и выделите текст. Чтобы запомнить выделение нажмитеy
. Перейдите туда, куда нужно вставить текст и нажмитеp
илиP
- Как стереть символ? Находясь в режиме ввода, удалить только что написанные символы, можно клавишей
backspace
. В режиме команд используйте клавишуx
чтобы удалить символ под курсором, иX
чтобы удалить символ слева от курсора - Как стереть строку? С помощью сочетания клавиш
dd
- Как объединить две строки? Чтобы приклеить к данной строке следующую, нажмите
J
- Как отменить последние правки? Нажмите
u
- Как вернуть последние правки? Нажмите
CTRL + R
- Как включить проверку орфографии? Включить:
:set spell spelllang=ru
Выключить::set nospell