Linux -- это интересно

Vim (использование)


Vim / Vi IMproved (Улучшенный Vi) — расширяемый, режимный, консольный текстовый редактор с полной свободой настройки и автоматизации.

Vim очень мощный текстовый редактор, с огромным набором функций. Эта статья охватывает основные команды для использования текстового редактора, которых достаточно для того, чтобы начать работу в vim-е.

Очень важно не просто читать статью, а параллельно пробовать все действия на каком-нибудь тестовом текстовом файле. Для этого создайте текстовый файл и откройте его с помощью редактора vim:

$ cd /tmp 
cp /etc/passwd /tmp/test 
vi ./test

Два режима

Есть два режима работы редактора: режим редактирования и нормальный режим. Переход в режим редактирования осуществляется различными командами, речь о которых пойдёт дальше. Выход из режима редактирования - кнопка <Esc>

Команды перемещения курсора

Команды перемещения работают в нормальном режиме. Нажмите , чтобы убедиться что находитесь в нём.

Курсор можно перемещать стрелками на клавиатуре или, что гораздо быстрее, клавишами h, j, k, l:

h - влево

j - вниз

k - вверх

l - вправо

другие команды перемещения:

0 - Перейти к началу строки

$ - Перейти к концу строки

w - перейти к началу следующего слова

e - перейти к концу слова

gg - перейти в начало документа

G - перейти в конец документа

номер G - перейти на строку с номером <номер>

Можно использовать связку <номер><команда перемещения>

3w - перейти к началу четвёртого слова, считая с текущей позиции

4e - перейти к концу четвёртого слова, считая с текущей позиции

Команды удаления

x - удалить букву под курсором

число x - удалить "число" букв, начиная с той что под курсором

dd - удалить строку

число dd или d число d - удалить "число>" строк, начиная с той где находится курсор

Можно комбинировать команды удаления и перемещения:

dw - удалить 3 слова начиная с текущей позиции

d5w - удалить 5 слов

d$ - удалить строку с текущего положения курсора до конца строки

d0 - удалить строку с текущего положения курсора до начала строки

Сохранение изменений

Для того чтобы сохранить отредактированный файл нужно:

перейти в нормальный режим, нажав "Esc"

ввести команду :write "имя_файла" "ENTER"

или её сокращённый вариант :w "имя_файла" "ENTER"

Если имя_файла отсутствует, то сохраняется текущий файл

Чтобы выйти из редактора введите :quit "ENTER" или просто :q "ENTER"

Выйти не сохранив изменения - :q! "ENTER"

:wq - сохранить изменения в текущем файле и выйти

Вставка текста

Для перехода в режим вставки нажмите "i"

A - переход к концу строки и начало режима вставки

a - переход к следующему символу и начало режима вставки

o - начать вставку под текущей строкой

O - начать вставку над текущей строкой

esc - переход к нормальному режиму

Отмена последних изменений

u - отмена последнего изменения

U - отмена изменений во всей строке

"ctrl-r" - отмена отмены

Копирование и вставка

yy - скопировать всю строку в буфер обмена

p - вставить содержимое буфера обмена после курсора

y5y или 5yy - скопировать 5 строк

yw - скопировать слово

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

Замена

r - заменить символ под курсором

R - заменять символы, начиная с текущего положения

c - "число" "команда перемещения" - ещё одна команда замены.

cw - поменять слово.

c$ - поменять строку, начиная с положения курсора и до конца.

cc - поменять всю строку.

Поиск

/ - поиск в прямом направлении

? - поиск в обратном направлении

n - перейти к следующему найденному элементу

p - перейти к предыдущему найденному элементу

Поиск соответствующей скобки ], ), }

Наведите курсор в нормальном режиме на открывающуюся/закрывающуюся скобку и нажмите %. Курсор перейдёт к соответствующей закрывающейся/открывающейся скобке, если таковая есть.

Определение положения в файле

Чтобы определить текущее положение нажмите "ctrl-g" в нормальном режиме. В нижней части терминала появится строка, содержащая информацию о количестве строк, текущем положении, имя файла.

Автоматическая замена

:s/old/new/g - заменить все сочетания 'old' в текущей строке на 'new'

:10,20s/old/new/g - тоже самое, но для строк с 10й по 20ю

Вызов справки

:help "команда" "ENTER" - вызов справки по команде редактора.

Исполнение shell-команд

:!"команда"

Например:

:!ls - исполнить команду ls в текущей директории

Чтение файла

:r "filename" - вставить содержимое filename после курсора

Команда set

Некоторые настройки редактора можно менять не выходя из самого редактора с помощью команды set. Например:

:set ic - ignore case - игнорировать регистр букв (например при поиске)

:set hls - highlighting search - подсвечивать найденное при поиске совпадение

:set nohls - не подсвечивать найденное при поиске совпадение

Файл настроек

Скрипт, который исполняется при запуске редактора vim находится в домашней директории пользователя и называется .vimrc. В нём можно задать некоторые дополнительные настройки, например:

colo evening 
filetype plugin on 
set grepprg="grep -nH $*" 
filetype indent on

Примеры этого файла поставляются вместе с Vim.

Оставьте комментарий!
Используйте нормальные имена.Войти через loginza
Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



 
(обязательно)