Сайт о телевидении

Сайт о телевидении

» » Сохранение изменений и выход из редактора Vi. Команды для движения курсора

Сохранение изменений и выход из редактора Vi. Команды для движения курсора

Описание.

Редактор vi — один из первых редакторов, разработанных для операционных систем UNIX. Он и по сей день остается одним из самых мощных редакторов и стандартно поставляется практически с каждой операционной системой типа UNIX. В нем отсутствует меню, и все действия осуществляются с помощью клавиш и клавиатурных комбинаций.

Редактор vi работает в двух режимах —

командном

набора текстов

Сразу после запуска vi находится в командном режиме. В этом режиме нажатия клавиш интерпретируются как команды редактору, а не как текст, вводимый в документ.

Чтобы переключиться в режим ввода текста, необходимо нажать одну из клавиш:

означает

(присоединить). В этом режиме вводимый текст вставляется после символа, на котором находится курсор.

означает

(вставить). В этом режиме вводимый текст вставляется перед символом, на котором находится курсор.

И, наконец, клавиша

означает

(открыть). Это приводит к тому, что после строки, на которой находится курсор, в текст вставляется новая строка. Затем курсор перемещается на новую строку, и редактор переходит в режим insert, разрешая ввод текста на новой строке.

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

Которая

добавляет пустую строку над текущей строкой

; и команда

Которая

начинает вставлять текст в конце текущей строки

Из режима ввода текста в командный режим можно вернуться нажатием клавиши

При переходе в командный режим редактор vi по умолчанию выдает звуковой сигнал.

Перемещение по тексту в редакторе vi.

Перемещаться по тексту в режиме ввода текста можно, как правило, с помощью курсорных клавиш, или клавиш

Page Up / Page Down

Однако на терминале это не всегда функционирует. Кроме того, на некоторых терминалах эти клавиши могут отсутствовать. На этот случай имеются другие клавиши, позволяющие перемещаться по документу в командном режиме.

Чтобы воспользоваться этими клавишами перемещения, нажмите клавишу Escape для перехода в командный режим. В этом режиме можно пользоваться клавишами

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

l — крайняя справа и поэтому перемещает курсор вправо.

h — крайняя слева и перемещает курсор влево

j — немного похожа на стрелку, направленную вниз. Соответственно, она перемещает курсор вниз

k — перемещает курсор вверх.

В командном режиме имеется еще несколько клавиш перемещения. В таблице приведены различные клавиши и их функции.

Обратите внимание, что с каждой командой этой таблицы по умолчанию используется число 1. Клавиша j перемещает вниз на 1 строку, клавиша k перемещает его вверх на 1 строку, и так далее. Все эти команды можно модифицировать, вводя перед ними число. Так, следующая команда перемещает вниз не на одну строку, а на пять: 5j

Следующая команда перемещает курсор на 75-ю строку файла, редактируемого в данный момент:75G

А вот команда, которая перемещает курсор на пятую снизу строку экрана:5L

Данный синтаксис справедлив для всех команд из таблицы, за исключением команды

которая перемещает курсор к первому символу документа, не являющегося пробелом.

Прочие клавиши перемещения.

Помимо описанных выше клавиш перемещения курсора, имеется еще несколько клавиатурных комбинаций, выполняющих прокрутку текста на экране (см. ниже):

Команды редактирования текста.

В редакторе vi клавиши

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

Операции над файлами и выход из редактора vi

Это операции загрузки и сохранения файлов в редакторе vi.

— записать изменения в файл.

— загрузить файл для редактирования.

— выйти из редактора без сохранения.

Поиск в тексте и замена текста в редакторе vi.

начало шаблона прямого поиска в командном режиме. Например /ufs .

— начало шаблона обратного поиска в командном режиме.

— удаление строки.

— копирование текста во внутренний буфер.

— вставка текста из буфера.

Копирование, вырезание и вставка текста в редакторе vi:

Текст из буфера можно вставить на любое место документа, перемещая на требуемое место курсор и применяя команду р или Р. Команда

вставляет текст в документ после курсора. Команда

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

Предостережение

Редактор vi хранит в буфере текст только самой последней операции копирования текста в буфер или удаления. Другими словами, если Вы выполнили команду dd, чтобы удалить строку текста, а потом выполнили команду yy, чтобы скопировать строку текста, то в буфере текст, с которым оперировала команда dd, будет замещен текстом операции yy. Это означает, что текст из операции dd будет потерян, т.е. операцию удаления отменить будет невозможно.

Редактор Vi - универсальный полноэкранный текстовый редактор в среде UNIX . Редактор Vi присутствует в любой системе Linux (даже минимальной конфигурации) и обязательно запустится из командной строки Linux в самой катастрофической ситуации. У пользователя, таким образом, всегда сохранится возможность отредактировать конфигурационные файлы для приведения системы в рабочее состояние. Поэтому каждому пользователю Linux необходимы хотя бы основные навыки работы в Vi .

Основные понятия

В любой момент при работе в редакторе Vi вы находитесь в одном из трёх режимов редактора:

  • командный режим (command mode );
  • режим ввода (insert mode );
  • режим последней строки (last line mode ).

При запуске редактора Vi вы оказываетесь в командном режиме . В этом режиме можно давать команды для редактирования файлов или перейти в другой режим. Например, вводя x в командном режиме мы удаляем символ, на который указывает курсор. Клавиши-стрелки перемещают курсор по редактируемому файлу. Как правило, команды, используемые в командном режиме, состоят из одного или двух символов.

Основной ввод и редактирование текста осуществляется в режиме ввода . При использовании редактора Vi основное время, скорее всего, будет проводиться именно в этом режиме. Переход в режим ввода из командного режима осуществляется командой i (сокращение от insert ). Находясь в режиме ввода, можно вводить текст в то место, куда указывает курсор. Выход из режима ввода в командный режим осуществляется клавишей Esc .

Режим последней строки - специальный режим, в котором редактору даются сложные команды. При вводе этих команд они отображаются в последней строке экрана (отсюда пошло название режима). Например, если ввести в командном режиме команду: , то осуществится переход в режим последней строки, и можно будет вводить такие команды, как wq (записать файл и покинуть редактор Vi ) или q! (выйти из редактора Vi без сохранения изменений). В режиме последней строки обычно вводятся команды, название которых состоит из нескольких символов. В этом режиме в последнюю строку вводится команда, после чего нажимается клавиша Enter , и команда исполняется.

Запуск редактора Vi

Для уяснения всех концепций редактора Vi запустим его и создадим новый файл по имени test :

$ vi test ~ ~ ~ ~ ~ ~ "test"

Колонка символов ~ обозначает пустые строки, курсор находится в начале первой строки.

Ввод текста

Редактор Vi сейчас находится в командном режиме. Нажмём клавишу i , и редактор перейдёт в режим ввода текста. Теперь вводим, например, следующий текст:

Многие пользователи предпочитают наделенный сказками редактор Emacs. ~ ~ ~ ~ ~

Введите любое количество строк, после каждой нажимая клавишу Enter . Исправлять опечатки можно с помощью клавиши Backspace . Для выхода из режима ввода и возвращения в командный режим нажмём клавишу Esc .

В командном режиме для движения по файлу можно использовать клавиши-стрелки. Если в файле всего одна строка, то при попытке нажать клавишу со стрелкой вверх либо вниз редактор, возможно, будет подавать звуковой сигнал.

Помимо команды i , есть ещё несколько способов вставить текст. Так, команда a начинает вставлять текст после текущего положения курсора, а не прямо в текущую. В связи с тем, что текст был набран с опечаткой приведём с помощью клавиш-стрелок курсор к пробелу, разделяющему слова наделенный и сказками . Теперь нажмем клавишу a (редактор перейдёт в режим ввода) и введём под, после чего нажмём клавишу Esc и вернёмся в командный режим. На экране будет следующее:

Для введения текста со следующей строки, используем команду o . Нажмём эту клавишу и введём одну-две строки текста:

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

Удаление текста

В командном режиме каждое нажатие клавиши x удаляет символ, на который указывает курсор.

Можно удалять целые строки командой dd (т. е. нажав клавишу d два раза подряд). Если курсор стоит на второй строке, и вы введёте команду dd , на экране останется следующее:

Многие пользователи предпочитают наделенный подсказками редактор Emacs. ~ ~ ~ ~ ~

Для удаления слова, на которое показывает курсор, можно использовать команду dw . Подведите курсор к слову наделенный и введите dw , затем к слову подсказками и снова введите dw . Результат будет следующим:

Многие пользователи предпочитают редактор Emacs. ~ ~ ~ ~ ~

Изменение текста

Отдельные части текста можно заменять на другие; для этого используется команда R . Подведите курсор к первому символу в слове Emacs , нажмите клавишу R и введите слово vi :

Многие пользователи предпочитают редактор vi. ~ ~ ~ ~ ~

Действие команды R напоминает действие команд i и a , однако при команде R новый текст не вставляется, а стирает старый.

Команда r заменяет один символ, а именно тот, на который указывает курсор.

С помощью команды ~ можно поменять регистр буквы, на которую указывает курсор (с верхнего на нижний и наоборот). Подведем курсор к первому символу в слове vi и дадим команду ~ :

Многие пользователи предпочитают редактор Vi. ~ ~ ~ ~ ~

Команды для движения курсора

Помимо клавиш-стрелок для движения курсора можно использовать клавиши h , j , k и l . Они будут сдвигать курсор соответственно влево, вниз, вверх и вправо. Этими командами можно воспользоваться, если (по какой-либо причине) клавиши-стрелки действуют неправильно. Команда w перемещает курсор на начало следующего слова; команда b перемещает курсор на начало предыдущего слова.

Команда (клавиша ноль) перемещает курсор на начало текущей строки, а команда $ перемещает курсор в её конец.

При редактировании больших файлов для „ перелистывания “ целых экранов вперёд (т. е. вниз) и назад (вверх) используются команды соответственно C trl-F и Ctrl-B .

Для перемещения курсора в конец файла, используется команда G , а команда 10G , например, поместит курсор на строку с номером 10 . Для того, чтобы переместить курсор в начало файла, можно использовать команду 1G .

Команды движения курсора можно совмещать с другими командами, например, с командами удаления текста. Например, команда d$ удалит все, что находится между текущим положением курсора и концом строки; команда dG удалит все, что находится между текущим положением курсора и концом файла и т. д.

Сохранение изменений и выход из редактора Vi

Для выхода из редактора Vi без сохранения изменений, сделанных в файле, используется команда:q! .

Для выхода из редактора Vi с сохранением сделанных изменений используется команда:wq .

Переключение между файлами

Для того, чтобы приступить к редактированию другого файла, используется команда:e , которую следует вводитьтолько после сохранения сделанных изменений командой:w , в противном случае Vi откажется приступить к редактирования следующего файла.

Вставка содержимого других файлов

Включить в текущий файл содержимое другого файла можно командой:r . Например, команда:r foo.txt вставит содержимое файла foo.txt в текст начиная с текущего положения курсора.

Помощь в работе с редактором Vi

Как и в случае с любой программой в системе Linux в первую очередь следует обратиться к экранной документации программы Vi . Обычно (кроме режимов восстановления после системных сбоев) доступна более современная и улучшенная версия Vi - Vim , имеющий аналогичный Vi интерфейс и массу дополнительных возможностей. Подробное руководство по Vim можно получить, запустив этот редактор и отдав команду:help .

Как выйти из Vi? Именно такой вопрос мне чаще всего задают пользователи, впервые запустившие этот замечательный редактор:) Сразу ответ: Esc Esc ZQ или Esc Esc:qa! если ничего сохранять не нужно, Esc Esc ZZ или Esc Esc:w!q если содержимое надо сохранить. Два раза Esc в данном случае позволит вам выйти в нормальный режим из любого состояния редактора.

Нет, редактор VI, а точнее VIM (Vi IMproved), и вправду замечательный, но уж очень необычный. В этой небольшой статье вы не найдете макросов, продвинутого редактирования, настройки и много чего другого. Здесь только самые полезные команды и основы редактора.

Любой админ должен знать хотя бы основы работы в VIM, потому что в большинстве случаев - это единственный доступный редактор в однопользовательском режиме на упавшей *nix системе. Более того он замечателен уже хотя бы тем, что он есть в установке по-умолчанию почти в любом *nix и, зачастую, используется как основной редактор. Например для правки passwd файла во FreeBSD используется команда vipw.

Для того чтобы освоить VIM необходимо понять одну простую вещь: мышка, клавиши управления курсором - это зло, ухудшающее эффективность работы с редактором. Все операции с текстом в VIM можно (и нужно) выполнять на основном блоке клавиатуры.

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

Из нормального режима, в котором производятся операции над текстом и перемещение, можно войти в режим "вставки", в котором и набирается собственно текст. Для этого есть следующие кнопки:

i - вставить текст до курсора
I - вставить текст с начала строки
a - вставить текст после курсора
A - вставить текст с конца строки
o - вставить новую строку ниже
O - вставить новую строку выше
s - замена текущего символа и остаться в режиме вставки
S - замена текущей строки
r - Заменить текущий символ и вернуться в нормальный режим
R - Заменить несколько последовательно расположенных символов

Мощь VIM в использовании модификаторов команды. Перед любой командой перемещения можно и, зачастую, нужно использовать мультипликатор. То есть 6w - это на 6 слов, а 77j - на 77 строк вниз.

Нужно заметить, что модификаторы часто можно использовать и при других операциях, как например 5S - заменить 5 последующих строк.

Перемещение по тексту.

Если учесть, что стартовая позиция для правой руки - клавиши hjkl, то выбор клавиш становится вполне понятным:

Управление текущей позицией

h - влево (указательный палец сдвигается влево)
j - вниз
k - вверх.
l - вправо.

по строкам

^ или 0 - начало строки
$ - конец строки
w (word) - к началу следующего слова
e (end) - к концу текущего слова
b (begin) - к началу текущего слова и далее к предыдущим словам
G (Go) - переход на строку (по умолчанию на последнюю)

по экрану

H (High) для перехода в верхнюю строку экрана
M (Middle) для перехода в среднюю строку экрана
L (Low) для прехода в нижнюю строку, показанная на экране

по тексту

{ - предыдущий абзац
} - следующий абзац
(- предыдущее предложение
) - следующее предложение
ctrl-b (backward) перемещение на один экран назад
ctrl-f (forward) перемещение на один экран вперед

Закладки

На любую строку можно поставить метку m и вернуться в любое время на неё " (то есть одинарная кавычка и название метки).

Операции над текстом

~ - Смениить регистр текущего символа (или стольких, сколько указано в мультипликаторе)
d - Удалить + мультипликатор, например: d$ - всё до конца строки, d8w - 8 слов, d3h - 3 символа вправо, d1G - всё к началу текста.
dd - удалить строку (55dd - 55 строк)
Если быть точнее, то операции удаления - это вырезание текста в буфер, то есть его можно потом вставить.

y (yank) - копировать в буфер (y5w - копировать 5 слов)
yy - копировать в буфер строку (2yy - 2 строки)
p (paste) - вставить из буфера (2p - вставить 2 раза)

Визуальный режим выделения текста

v (visual) - посимвольный режим выделения
V - построчный режим выделения
Ctrl-V - прямоугольный блок текста
Над выделенным фрагментом можно производить все обычные действия.

Undo и redo

u (undo) - Отменить последнее изменение (7u - 7 изменений)
ctrl-r (redo) - Повторить изменение
:earlier 40m - вернуть текст таким, как он был 40 минут назад
:later 20s - передвинуться вперед на 20 секунд по временной шкале изменения текста
:undolist - список правок

Выход, запись изменений

Возвращаясь к теме статьи:
:w (write) запись файла на диск
:q (quit) выход из редактора, если изменения не нужно сохранять, то добавьте!

Существует множество версий Vi. Я представлю вам версию Vi, называемую «Vim». Vim очень популярен, так как у него есть несколько дополнений, делающих Vi немного приятнее (когда будут демонстрироваться специфичные для Vim команды, я это отмечу). Здесь приведена картинка GVim из моей системы.

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

sudo apt-get install vim

Хотя в большинстве дистрибутивов Linux он уже установлен по умолчанию. В придачу к улучшенному консольному Vi, Vim доступен также в виде GVim - прекрасного графического редактора, который может быть сконфигурирован для использования с великолепной библиотекой GUI (графического интерфейса пользователя) GTK+.

sudo apt-get install vim-gtk

Если Vi вам в новинку, попробуйте установить в своей системе GVim. Использование Vi в графической оболочке может кое в чем облегчить новичкам жизнь.

Также можно запустить обучающую программу, набрав в терминале команду

Vimtutor

Gvimtutor

Это небольшая обучающая программа поможет за 25-30 минут освоиться в этом необычном для новичка редакторе.

Открываем файл

Перед использование Vi для редактирования файлов вам следует узнать, как в Vi перемещаться по файлу. У Vi множество команд перемещения, многие из них мы сейчас рассмотрим. Для этой части обучения найдите какой-нибудь малоценный текстовый файл (TODO: лучше на английском) и загрузите его в Vi напечатав:

vi myfile.txt

Если у вас установлен Vim, наберите в консоли:

vim myfile.txt

Если вы предпочитаете использовать GVim:

Gvim myfile.txt

myfile.txt должно быть именем текстового файла в вашей системе.

Внутри Vi

После загрузки Vi, на экране вы должны увидеть часть загруженного вами текстового файла. Поздравляю - вы уже в Vi! В отличии от большинства редакторов, загрузившись, Vi находится в специальном режиме, называемом «командным режимом» . Это значит, что если вы нажмете клавишу (строчная L) , вместо появления «l» на месте курсора вы увидите, что курсор всего лишь сдвинулся на один символ вправо. В командном режиме знаки, набираемые на клавиатуре, используются как команды для Vi, а не как помещаемые в текст символы. Один из наиболее важных типов команд - это команды перемещения. Давайте рассмотрим некоторые из них.

Перемещаемся по документу

Перемещения в Vi, часть 1

Находясь в командном режиме, вы можете использовать клавиши ,, и для перемещения курсора влево, вниз, вверх и вправо соответственно. Если вы используете современную версию Vi, вы можете также с этой целью использовать клавиши со стрелками. Клавиши ,, и предпочтительнее, так как освоившись с ними вы сможете перемещаться по файлу, не размахивая руками над клавиатурой. Для перемещения по текстовому файлу используйте следующие клавиши:

Попробуйте использовать пока не дойдете до начала строки. Отметьте, что Vi не даст вам перескочить на предыдущую строку, нажимая , если вы находитесь в начале строки. Точно также он не позволит вам перескочить на следующую строку, нажимая в конце строки.

Перемещения в Vi, часть 2

Vi предоставляет специальные команды для прыжков в начало и конец текущей строки:

    0 (ноль) – перескочить на первый символ в строке;

    $ – перескочить на последний символ в строке.

Поскольку у Vi так много команд перемещения, его можно использовать в качестве великолепного инструмента просмотра - «pager»а (как команды more или less). Используя Vi для просмотра, вы очень быстро запомните все команды перемещения.

Вы также можете использовать и для перемещения вперед и назад сразу на страницу. Современные версии Vi (такие как Vim) могут позволить использовать для этих целей клавиши И

Комбинация означает комбинацию клавиш +. Во многих источниках про Vim можно встретить именно такое обозначение комбинация клавиш. Часто еще можно встретить и такое обозначение: ^F

Перемещение по словам, часть 1

Vi также позволяет вам перемещаться влево и вправо по словам:

    w – перемещения на первый символ следующего слова нажмите;

    e – передвинуться на следующий последний символ слова нажмите;

    b – сдвинуться на предыдущий первый символ слова можно нажимая.

Перемещение по словам, часть 2

Позабавившись с командами перемещения по словам, вы могли заметить, что Vi считает слова типа «foo-bar-oni» пятью различными словами! Это происходит потому, что Vi по умолчанию разделяет слова пробелами или знаками пунктуации (которые тоже считает словами). Поэтому foo-bar-oni считается пятью словами: «foo»,«-»,«bar»,«-» и «oni».

Иногда вам так и надо, а иногда - нет. К счастью, Vi воспринимает понятие «большого слова». vi разделяет большие слова только пробелами и началами строк. Это значит, что foo-bar-oni состоит из пяти Vi-слов, но является только одним большим словом Vi.

Перемещение по словам, часть 3

Чтобы переместиться на следующее или предыдущее большое слово, вы можете использовать «заглавные» команды перемещения по словам. Нажав следующие клавиши, вы попадете на:

    W - первый символ следующего большого слова;

    E - следующий последний символ большого слова;

    B - предшествующий первый символ большого слова.

Дальние переходы

Осталось рассмотреть еще несколько команд, и можно будет начинать их записывать на шпаргалку. Вы можете использовать скобки:

    ( и ) чтобы перейти на начало предыдущего и следующего предложения.

    { или } (фигурные скобки) – Позволят перескочить в начало параграфа.

Выход

Мы рассмотрели основные команды перемещения, однако осталась еще пара команд, которые вам необходимо знать. Напечатав:

    :q вы должны выйти из Vi. Если не получиться, значит вы каким-то образом ухитрились изменить файл;

    :q! выйти отбросив изменения следует командой.

Теперь вы должны оказаться в командной строке системы.

Любая команда в Vi, начинающаяся с двоеточия («:»), называется командой ex-режима (an ex-mode command). Это из-за того, что Vi имеет встроенный не экранный редактор, зовущийся ex . Он может использоваться подобно sed для выполнения операций редактирования, ориентированных на строки. Дополнительно, как мы только что видели, он может использоваться для завершения работы. Если вы случайно нажмете , находясь в командном режиме, то можете оказаться в ex-режиме. В этом случае вы столкнетесь с приглашением «:», и нажатие на Enter будет сдвигать вверх содержимое экрана. Для возврата к привычному vi-режиму просто наберите vi и нажмите .

Сохранение и редактирование

Save(сохранить) и Save as...(сохранить как...)

Мы уже видели, как используя ex-команду :q выйти из vi.

    :w filename – для сохранение под другим именем;

В Vim (и других потомках Vi, типа elvis), вы можете держать открытыми одновременно несколько буферов. Введите команду

    :sp filename.txt для открытия файла filename.txt в новом окне;

    :sp (без имени файла) откроет дополнительное окно для активного буфера.

Для перехода между окнами нажмите , (дважды +) . Любая из команд :q, :q!, :w и :x относиться только к активному окну.

Простое редактирование

Вот и подошло время заняться изучением простых команд редактирования. Рассматриваемые здесь команды считаются «простыми» из-за того, что оставляют вас в командном режиме. Более сложные команды автоматически переводят вас в режим ввода текста, позволяющий добавлять в буфер символьную информацию, набираемую на клавиатуре; их рассмотрим позднее.

    J – присоединение следующей стоки к текущей;

    r+символ – замена символа на символ;

    dd – удаление текущей стоки.

Повторение и удаление

Повторить любую команду редактирования вы можете нажимая клавишу <. > (точка). Если попробуете, то можете увидеть, что печать dd… удалит 4 строки, а J…… объединит семь строк. Как обычно, Vi обеспечивает вас различными удобными средствами сокращения трудозатрат.

Удалять текст вы можете также комбинируя команду d с любыми командами перемещения. Например, dw удалит часть текста от текущей позиции курсора до начала следующего слова; d) удалит вплоть до следующего конца предложения, и d} удалит весь остаток абзаца. Поэкспериментируйте с командой d и другими командами редактирования, пока не почувствуете себя с ними уверенно.

Режим ввода текста

Мы уже рассмотрели, как в vi перемещаться, выполнять чтение\запись файлов и основные операции редактирования. Однако, я еще не объяснил, как напечатать произвольный текст! Сделано это было умышленно, так как поначалу режим ввода текста в Vi малость сложноват. Тем не менее, после того, как вы станете спокойно себя чувствовать в режиме ввода текста, эта сложность (и гибкость) станет настоящей ценностью.

В Vi, в режиме ввода текста, вы можете вводить текст «прямо на экран», как в большинстве других экранных редакторов. Сделав свои изменения, вы можете нажать

    Esc – вернуться в командный режим;

    i или a – вернуться/войти в режим ввода.

Не забудьте, введя свой текст, нажать для возврата в режим команд.

Комбинированные команды

Vi действительно становиться мощным, когда вы начинаете использовать совмещенные (или комбинированные) команды, типа d{ и cw . Дополнительно к таким командам, вы также можете совмещать числа с любыми командами перемещения, как 3w , которая сообщает Vi о необходимости проскочить вперед на три слова. Вот еще несколько примеров таких комбинированных команд: 12b , 4j .

Разрешая комбинации (число)(команда перемещения), Vi позволяет еще совмещать команды d или c с числами или командами перемещения. Так d3w удалит следующие три слова, d2j удалит текущую и две следующие строки, и т.д. Попробуйте немного поэкспериментировать с командами c и d , совмещенными с перемещениями, чтобы почувствовать, каким мощным и лаконичным может быть редактирование в Vi. Когда эти команды станут вашей второй натурой, вы сможете редактировать файлы с невероятной скоростью.

Увеличение производительности

Только что мы рассмотрели, как перемещаться, сохранять и завершать работу, выполнять простое редактирование и удаление, пользоваться режимом ввода текста. С этим багажом знаний (только что показанным на шпаргалке) вы уже способны, используя Vi, справиться практически с любой задачей.

Однако, у Vi есть еще много более мощных команд. В этом разделе вы узнаете как вы"резать (cut), скопировать (copy) и вставить (paste), найти (search) и заменить (replace) текст, а так же, как использовать автоматический отступ (autoindent). Эти команды помогут Vi быть более приятным и производительным.

Экранный режим

Лучшим способом вырезать и вставлять фрагменты текста является использование экранного режима, специального режима, добавленного в современных версиях Vi, таких как Vim и elvis. Вы можете представлять себе экранный режим как режим «подсвечивания текста». Выделенный текст может быть скопирован или удален, а затем вставлен. Если вы используете GVim, выделить кусок текста вы можете просто нажав левую кнопку мышки и протащив курсор по нужной области. Войти в экранный режим вы еще можете нажав v (это может быть вашей единственной возможностью, если вы используете Vi в консоли). Затем, двигая курсор командами перемещения (обычно стрелками), вы можете выделить область текста. Закончив выделение, вы уже готовы вырезать либо копировать текст.

Для копирования текста нажмите y (от слова «yank»). Чтобы вырезать текст нажмите d . Вы будете переведены назад в командный режим. Теперь переместитесь в то место, где вы хотите вставить вырезанный или скопированный текст, и нажмите P (заглавная) для вставки перед курсором или p (строчная) для вставки за курсором. Всё, копирование\вырезание и вставка выполнены! А теперь проделайте еще несколько раз процедуру копирования\вырезания и вставки перед тем, как перейти к следующему разделу.

Для того, чтобы вставить в редактор содержимое буфера обмена (в который Вы скопировали информацию по + ) необходимо установить утилиту xclip

apt-get install xclip

и скопировав нужный текст выполнить в командном режиме редактора

:r! xclip -o и нажмите .

Замена текста

Для замены образцов текста мы используем ex-режим. Если вы хотите заменить первый попавшийся в текущей строке образчик, наберите:

:s/// и нажмите , где - что хотите заменить, и - на что.

Для замены всех совпадений с эталоном в текущей строке используйте команду:

    :%s///g – замена каждого вхождения образца во всем файле (что обычно и требуется);

И не забудьте, набрав команду, нажать .

Выделение

Vi поддерживает автоматический отступ при редактировании вами исходников (текстов программ). Большинство современных версий Vi (таких, как Vim) могут самостоятельно включать абзацный авто отступ при редактировании вами исходников (например, файлов типа.c).

    :set autoindent – включить авто отступ;

    :set tabstop=(число) – установить авто табуляцию (где число есть число символов табуляции).

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

Ссылки

Полезное

Обои с описанием клавиатурных сокращений и команд.

Размер: 1366х768
Для загрузки нажмите на изображение, в появившемся окне нажмите на изображение ещё раз для увеличения и нажмите правой кнопкой «Сохранить изображение как…»