Редактор vi
| FreeBSD - Азы |
Описание
Редактор vi - один из первых редакторов, разработанных для операционных систем UNIX. Он и по сей день остается одним из самых мощных редакторо и стандартно поставляется практически с каждой операционной системой типа UNIX, а уж в нашей любимой FreeBSD и подавно. К сожалению, среди новичков редактор vi пользуется репутацией программы, известной своей загадочностью и трудностью в изучении. В нем отсутствует меню, и все действия осуществляются с помощью клавиш и клавиатурных комбинаций. Понятно, что на их изучение требуется время.
Так зачем же изучать этот редактор? Есть, по меньшей мере, 2 причины. Во-первых, в FreeBSD он идет как редактор по умолчанию, так что сразу после установки приходится его использовать.
Во-вторых, когда вы изучите различные комбинации клавиш и команды, окажется, что в вашем распоряжении очень мощное средство. Если вы хорошо печатаете, редактор vi обеспечит возможность очень быстрой работы, так как для набора большинства команд не потребуется убирать руки с базовых клавиш.
Редактор vi работает в двух режимах - командном и набора текстов. Сразу после запуска vi находится в командном режиме. В этом режиме нажатия клавиш интерпретируются как команды редактору, а не как текст, вводимый в документ.
Чтобы переключиться в режим ввода текста, необходимо нажать одну из клавиш: a, i или o.
Клавиша a означает append (присоединить). В этом режиме вводимый текст вставляется после символа, на котором находится курсор.
Клавиша i означает insert (вставить). В этом режиме вводимый текст вставляется перед символом, на котором находится курсор.
И, наконец, клавиша o означает open (открыть). Это приводит к тому, что после строки, на которой находится курсор, в текст вставляется новая строка. Затем курсор перемещается на новую строку, и редактор переходит в режим insert, разрешая ввод текста на новой строке.
Имеется также несколько других команд для установки режима ввода текста, которые применяются не так часто. Это команда O, которая добавляет пустую строку над текущей строкой; и команда A, которая начинает вставлять текст в конце текущей строки.
Из режима ввода текста в командный режим можно вернуться нажатием клавиши Esc. При переходе в командный режим редактор vi по умолчанию выдает звуковой сигнал.
Перемещение по тексту в редакторе vi
Перемещаться по тексту в режиме ввода текста можно, как правило, с помощью курсорных клавиш или клавиш Page Up / Page Down. Однако на терминале это не всегда функционирует. Кроме того, на некоторых терминалах эти клавиши могут отсутствовать. На этот случай имеются другие клавиши, позволяющие перемещаться по документу в командном режиме.
Чтобы воспользоваться этими клавишами перемещения, нажмите клавишу Escape для перехода в командный режим. В этом режиме можно пользоваться клавишами h, j, k и l для перемещения курсора влево, вниз, вверх и вправо. Вот несколько советов, которые помогут запомнить их назначение:
l - крайняя справа и поэтому перемещает курсор вправо.
h - крайняя слева и перемещает курсор влево
j - немного похожа на стрелку, направленную вниз. Соответственно, она перемещает курсор вниз
С буквы k начинается слово kaif :), при котором душа улетает вверх - вместе с курсором.
В командном режиме имеется еще несколько клавиш перемещения. В таблице приведены различные клавиши и их функции.
Обратите внимание, что с каждой командой этой таблицы по умолчанию используется число 1. Клавиша j перемещает вниз на 1 строку, клавиша k перемещает его вверх на 1 строку, и так далее. Все эти команды можно модифицировать, вводя перед ними число. Так, следующая команда перемещает вниз не на одну строку, а на пять:
5j
Следующая команда перемещает курсор на 75-ю строку файла, редактируемого в данный момент:
75G
А вот команда, которая перемещает курсор на пятую снизу строку экрана:
5L
Данный синтаксис справедлив для всех команд из таблицы, за исключением команды ^, которая перемещает курсор к первому символу документа, не являющегося пробелом.
Прочие клавиши перемещения
Помимо описанных выше клавиш перемещения курсора, имеется еще несколько клавиатурных комбинаций, выполняющих прокрутку текста на экране (см. ниже):
Команды редактирования текста
В редакторе vi клавиши Backspace и Delete не выполняют тех действий, которых от них можно ожидать. Для удаления текста и тому подобного придется воспользоваться различными клавишами в командном режиме редактора. В таблице перечислены различные команды редактирования текста, имеющиеся в редакторе vi.
Операции над файлами и выход из редактора vi
Это операции загрузки и сохранения файлов в редакторе vi.
Поиск в тексте и замена текста в редакторе vi
В редакторе vi имеются несколько команд для выполнения поиска и замены.
Копирование, вырезание и вставка текста в редакторе vi
Текст из буфера можно вставить на любое место документа, перемещая на требуемое место курсор и применяя команду р или Р. Команда р вставляет текст в документ после курсора. Команда Р вставляет текст перед курсором. Текст продолжает оставаться в буфере и после того, как вы вставите его в документ. Поэтому можно снова использовать эти команды для вставки текста в документ в других местах.
Предостережение
Редактор vi хранит в буфере текст только самой последней операции копирования текста в буфер или удаления. Другими словами, если ты выполнил команду dd, чтобы удалить строку текста, а потом выполнил команду yy, чтобы скопировать строку текста, то в буфере текст, с которым оперировала команда dd, будет замещен текстом операции yy. Это означает, что текст из операции dd будет потерян, т.е. операцию удаления отменить будет невозможно...
| < Предыдущая | Следующая > |
|---|