Запуск редактора осуществляется командой
vim [имя файла]
например, vim main.cpp.
В редакторе vim существует два режима: режим редактирования и режим команд. В режиме редактирования
нажатие клавиш на клавиатуре приводит к отображению соответствующих символов в файле. В режиме
команд нажатие на клавиши приводит к выполнению команд редактора, которые связаны с соответствующими символами.
При запуске редактор находится в режиме команд.
Переход из режима редактирования в режим команд осуществляется путем нажатия Esc.
Ниже приведены основные команды редактора (вводятся в режиме команд). Команды, которые начинаются с ":" или "/", заканчиваются Enter.
Команда | Описание |
:w | Записать файл (write) (сохранение). |
:w имя | Записать содержимое буфера редактирования в файл с именем имя (сохранить как). |
:q | Выход (quit). Если файл был изменен, то будет напечатано сообщение. |
:wq | Выход с сохранением (write quit). |
:q! | Выход без сохранения. |
i | (insert) Переход в режим редактирования. |
o | Вставить пустую строку после текущей и перейти в режим редактирования. |
O | Вставить пустую строку перед текущей и перейти в режим редактирования. |
dd | Удалить текущую строку. Может использоваться с числовым префиксом. 5dd – удалить 5 строк. Удаленные строки записываются в буфер обмена (см. ниже). |
nG | n - число. Переход на строчку с номером n. Например, 12G. |
G | Переход в конец файла. |
% | Если курсор находтся на открывающей (закрывающей) скобке, то он переходит |
/строка | Поиск в файле строки строка. |
:%s/старый/новый/g | Заменить все вхождения старый на новый. |
u | (undo) Отменить последнюю операцию. Может выполняться несколько раз подряд. 5u отменяет последние 5 действий. |
:redo | Повторно выполнить действие, которое было отменено командой undo. |
Копирование и вставка | |
yy | Скопировать текущую строку в буфер обмена. 10yy скопирует 10 строк, включая текущую. |
p | (строчная p). Вставить содержимое буфера обмена после курсора. |
P | (заглавная P). Вставить содержимое буфера обмена перед курсором. |
v | Перейти в визуальный режим выделения. Область выделяется стрелками. |
y | Скопировать выделенную область в буфер обмена. p и P вставляют выделенный фрагмент. |
Комбинации команд могут быть достаточно удобными. Например, команда <Esc>ddp меняет местами две строчки. <Esc> гарантирует, что мы находимся в режиме команд.
Редактор vim предоставляет множество функций и команд, полезных при редактировании исходных текстов программ. Существует возможность подклчения модулей расширения (плагинов), что позволяет делать удивительные вещи. В этом разделе описаны самые простые возможности, которые тем не менее могут существенно упростить процесс написания программы.
Настройка редактора производится изменением
файла .vimrc
(имя файла начинается с символа точки),
который находится в домашней директории. Это обычный тектовый файл,
который можно редактировать с помощью редактоа vim, выполнив
команду vim ~/.vimrc
. Настройку файла .vimrc достаточно
выполнить один раз, но нужно понимать, что эти настройки действуют
только для того пользователя, кто их внес (у каждого пользоватля
системы свой собственный файл настроек).
Если вы хотите, чтобы редактор автоматически расставлял отступы в
соответсвии с требованиями к
оформлению программ, то в файл .vimrc
нужно добавить строчки
set cindent shiftwidth=4
set softtabstop=4
set expandtab
autocmd FileType make setlocal noexpandtab
autocmd ...
означает, что при
редактировании Makefile
табуляция не будет заменяться пробелами, так как для этого файла
символ табуляции имеет специальное значение.
Если вы используете Makefile для компиляции своей программы, то вы можете запускать компиляцию не выходя из редактора. Более того, vim анализирует результат компиляции и, если при компиляции возникли синтаксические ошибки, переходит к строке файла, который содержит первую ошибку.
Для запуска команды операционной системы make достаточно в
редакторе выполнить команду :make
. Для перехода к
следующей ошибке нужно ввести команду :cnext
. Для удобства, можно поместить в файл .vimrc следующие две строчки.
map <F5> :w <CR> :make <CR>
map <F3> :cnext <CR>
Они означают, что при нажатии клавиши F5 будет выполнена команда :w
(сохранить изменения в текущем файле) и команда :make. Нажатие F3
позволит перейти к следующей найденной ошибке,
Действие | Команда | Описание |
Просмотр страницы справки | K | Если курсор находится над именем стандартной функции (например, printf ), то нажатие Shift+k откроет страницу справки. |
Форматирование отсупов в файле | gg=G | Расставляет во всем файле отсупы в соответствии с правилами форматирования программы на Си. |
Поиск слова под курсором | # | Эквивалентно ?слово , где слово – это слово под курсором. n переходит к следующему вхождению, N – к следующему вхождению в обратном порядке поиска. |
Переход на строчку по номеру | nG | Переходит на строчку с заданным номером. Например, 121G переходит на 121-ю строчку файла. |
Установка метки в файле | ma | Помечает (a . Можно использовать имена меток от a до z. |
Перейти на метку с именем | `a | (обратный апостроф a ) Переходит на строчку, ранее помеченную меткой с именем a. |