Тарифы Услуги Сим-карты

Что нового в русской версии Adobe Photoshop CS6. Редактирование файла в Vim

Редактор 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 .

Изучаем Linux, 101

Редактирование файлов с помощью vi

Редактор, который всегда под рукой

Серия контента:

Краткий обзор

Из этой статьи вы узнаете об основных приемах работы с редактором vi, который есть практически в каждом дистрибутиве UNIX или Linux. Вы научитесь:

  • Перемещаться по документу с помощью vi.
  • Использовать основные режимы vi.
  • Вставлять, редактировать, удалять, копировать и искать текст.
Об этой серии

Эта серия статей поможет вам освоить задачи администрирования операционной системы Linux. Вы также можете использовать материал этих статей для подготовки к .

Чтобы посмотреть описания статей этой серии и получить ссылки на них, обратитесь к нашему . Этот перечень постоянно дополняется новыми статьями по мере их готовности и содержит самые последние (по состоянию на апрель 2009 года) цели экзаменов сертификации LPIC-1. Если какая-либо статья отсутствует в перечне, можно найти ее более раннюю версию, соответствующую предыдущим целям LPIC-1 (до апреля 2009 года), обратившись к нашим .

Эта статья поможет вам подготовиться к сдаче экзамена LPI 101 на администратора начального уровня (LPIC-1) и содержит материалы цели 103.8 темы 103. Цель имеет вес 3.

Предварительные требования

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

Перемещение по документу с помощью vi

Как связаться с Яном

Ян – один из наших наиболее популярных и плодовитых авторов. Ознакомьтесь со (EN), опубликованными на сайте developerWorks. Вы можете найти контактные данные в и связаться с ним, а также с другими авторами и участниками ресурса My developerWorks.

Редактор vi есть практически в каждом дистрибутиве Linux и UNIX. Фактически, если в операционной системе имеется только один редактор, то, скорее всего, это именно vi, поэтому очень важно уметь работать с ним. В этой статье представлены лишь основные команды редактирования vi, а полную информацию о vi вы можете найти в руководстве " " (EN) на сайте developerWorks, на соответствующих man-страницах или в одной из многочисленных книг, посвященных этому редактору.

Запуск vi

Сегодня многие дистрибутивы Linux поставляются с редактором vim (V i IM proved – улучшенный vi), а не с классической версией vi. Редактор vim обратно совместим с vi, и помимо стандартного текстового интерфейса имеет графический интерфейс (gvim). Обычно команда vi является символической ссылкой на программу vim. Существует несколько версий vim: крошечный (tiny), маленький (small), обычный (normal), большой (big) и огромный (huge). Версию vim, которая используется в вашей операционной системе, а также ее возможности, можно узнать с помощью команды

vi --version

В предыдущей статье этой серии " " мы хотели изменить приоритет работающего сценария командной оболочки count1.sh. Если вы пытались сделать это самостоятельно, то, возможно, обнаружили, что команды выполнялись настолько быстро, что вы не успевали изменить приоритет с помощью renice . Итак, давайте начнем работу с редактором vi и добавим в начало сценария строку для вставки 20-секундной паузы, благодаря которой мы сможем успеть изменить приоритет.

Если у вас нет под рукой сценария count1.sh, то можно сделать следующее: откройте окно терминала, перейдите в вашу домашнюю директорию и скопируйте в окно содержимое листинга 1. В результате в вашей домашней директории будет создана поддиректория lpi103-8, содержащая файл сценария count1.sh.

Листинг 1. Сценарий, нагружающий центральный процессор – count1.sh
mkdir -p lpi103-8 && cd lpi103-8 && {echo "x="$1"">count1.shecho "echo "$2" $(date)">>count1.shecho "while [ $x -gt 0 ]; do x=$((x-1));done">>count1.shecho "echo "$2" $(date)">>count1.sh }

Для редактирования существующего файла наберите команду vi , указав имя этого файла в качестве параметра. Подробную информацию о различных опциях вы можете найти на man-страницах или в разделе , а пока давайте запустим редактор без каких-либо опций:
vi count1.sh
В результате должен открыться файл count1.sh. Вы должны увидеть нечто похожее на листинг 2. Если вы используете vim, то некоторые слова или символы могут быть выделены цветом. В редакторе vim имеется режим выделения цветом (отсутствующий в оригинальном vi), который может быть включен в вашей системе по умолчанию.

Листинг 2. Редактирование сценария count1.sh в vi
x="$1" echo "$2" $(date) while [ $x -gt 0 ]; do x=$((x-1));done echo "$2" $(date) ~ ~ ~ ~ "count1.sh" 4L, 84C 1,1 All

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

Перемещение

Следующие команды предназначены для перемещения по файлу:

h Перейти на один символ влево в текущей строке. j Перейти к следующей строке. k Перейти к предыдущей строке. l Перейти на один символ вправо в текущей строке. w Перейти к следующему слову в текущей строке. e Перейти к концу текущего слова в текущей строке. b Перейти к началу текущего слова в текущей строке. Ctrl-f Прокрутить одну страницу вперед. Ctrl-b Прокрутить одну страницу назад.

Если вы наберете перед любой из этих команд число, то команда будет выполнена указанное количество раз. Это число называется счетчиком повторений или просто счетчиком . Например, команда 5h переместит курсор на пять символов влево. Счетчики повторений можно использовать со многими командами vi.

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

Следующие команды предназначены для перехода к определенным строкам файла.

G Перейти к определенной строке файла. Например, команда 3G перемещает курсор к строке 3. Команда G без каких-либо параметров перемещает курсор к последней строке файла. H Перейти к определенной строке относительно верхнего края экрана. Например, команда 3H перемещает курсор к третьей строке относительно верхнего края экрана. L Подобна команде H, но отсчет происходит относительно последней строки экрана. Таким образом, команда 2L перемещает курсор на вторую строку относительно нижней строки экрана.

Поработайте с этими командами и научитесь свободно использовать их. Если в процессе работы что-то пойдет не так, то всегда можно выйти из vi. Как это сделать, рассказывается далее.

Выход из vi

Всегда необходимо уметь выйти из редактора. Это позволит не испортить важный файл, если при его редактировании вы допустите какую-либо критическую ошибку. Из vi можно выйти следующими способами: с сохранением изменений, без сохранения изменений, с перезапуском редактирования файла с самого начала. Если приведенные ниже команды не работают, то проверьте, не находитесь ли вы в режиме вставки, о котором вы узнаете чуть позже. Если вы сомневаетесь, то нажмите клавишу Esc для выхода из режима вставки и возврата в режим команд, в котором эти команды должны работать.

:q! Завершить редактирования файла с отменой всех изменений. Эта команда очень часто используется при возникновении трудностей. :w! Записать файл (независимо от того, был ли он изменен или нет). Предпринимается попытка перезаписать существующие файлы, файлы с доступом только для чтения или другие неперезаписываемые файлы. В качестве параметра можно указать имя, под которым будет сохранен исходный файл, который вы начинали редактировать. Зачастую безопаснее не использовать символ!, если вы не уверены на все 100% в том, что вы сделали. ZZ Записать файл, если он был изменен, а затем выйти из редактора. Эта команда обычно используется для нормального выхода из vi. :e! Редактировать текущую копию файла на диске. Выполняется повторная загрузка файла с отменой всех внесенных изменений. Эту команду можно также использовать в тех случаях, когда файл на диске по какой-то причине был изменен и вам требуется использовать его последнюю версию. :! Запустить команду интерпретатора. Наберите команду и нажмите клавишу Enter . По завершении работы команды вы увидите ее вывод и приглашение вернуться в редактор vi.

Примечания.

  1. Когда вы набираете двоеточие (:), курсор перемещается в нижнюю строку экрана, в которой можно набирать команду и ее параметры.
  2. Если в вышеперечисленных командах пропустить восклицательный знак, то можно получить сообщение о ошибке, например, о невозможности сохранения изменений или записи в конечный файл (если вы редактируете файл с доступом только на чтение).
  3. Существуют длинные формы команд: (:quit, :write, :edit), однако используются они редко.

Режимы vi

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

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

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

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

Теперь, когда вы умеете открывать файлы в редакторе vi, перемещаться по ним и выходить из vi, пришло время узнать, как редактировать текст в файле.

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

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

i Перейти в режим вставки перед символом в текущей позиции. Наберите текст и нажмите клавишу Esc для возврата в режим команд. Используйте команду I для вставки текста в начале текущей строки. a Перейти в режим вставки после символа в текущей позиции. Наберите текст и нажмите клавишу Esc для возврата в режим команд. Используйте команду A для вставки текста в конце текущей строки. c Изменить текущий символ и перейти в режим вставки для ввода символов замены. o Вставить новую строку после текущей строки. Используйте команду O для вставки новой строки над текущей строкой. cw Удалить оставшуюся часть текущего слова и перейти в режим вставки для его замены. Используйте счетчик повторений для замещения нескольких слов. Используйте команду c$ для замены оставшейся части строки. dw То же самое, что и cw (и c$), но без перехода в режим вставки. dd Удалить текущую строку. Используйте счетчик повторений для удаления нескольких строк. x Удалить символ в позиции курсора. Используйте счетчик повторений для удаления нескольких символов. p Поместить последний удаленный текст после текущего символа. Используйте команду P, чтобы поместить текст перед текущим символом. xp Полезная команда из комбинации x и p. Замещает символ в позиции курсора символом, находящимся справа от него.

Поиск текста

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

/ Используйте регулярное выражение после символа / для прямого поиска в файле. ? Используйте регулярное выражение после символа? для поиска в файле в обратном направлении. n Используйте n для повторения последнего поиска в любом из направлений.

Все вышеперечисленные команды можно предварять счетчиком повторений. Так, команда 3/x (так же, как и команда /x, после которой следует 2n) будет искать третье вхождение x, начиная с текущей позиции. Аналогично, команда 2/^e будет искать вторую строку, начинающуюся на e, относительно текущей позиции.

Обратите внимание на то, что при достижении конца файла поиск продолжится с начала файла.

Справочная информация

Еще одна полезная команда vi – это команда справки, которую можно вызвать, набрав:help . Справка открывается в самом редакторе vi; используйте команду:q , чтобы закрыть справку и продолжить работу. Если вам необходима информация по какой-то определенной тематике (например, перестановка строк), то попробуйте добавить соответствующее слово после команды:help, например, :help wrap .

Собираем все вместе

В начале статьи мы собирались добавить строку в наш файл count1.sh. Чтобы сохранить исходный файл и записать его измененную версию под именем count2.sh, мы можем использовать команды редактора после того, как откроем этот файл при помощи команды vi . Заметьте, что обозначение соответствует нажатию клавиши Esc .

Листинг 3. Команды редактора для добавления строки в файл count1.sh
1GOsleep 20 :w! count2.sh:q

Эти команды выполняют следующие действия:

1G Переход в первую строку файла. O Добавление новой строки над текущей строкой и переход в режим вставки. sleep 20 Текст, который необходимо добавить. Нажатие клавиши Esc для возврата в режим команд. :w! count2.sh Запись файла на диск. :q Выход из vi.

Все просто, когда знаешь, как.

Эта статья последняя из серии статей по теме 103 экзамена LPI 101 на администратора начального уровня (LPIC-1). Ссылки на остальные статьи этой серии вы можете найти в .

Как выйти из 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 — один из первых редакторов, разработанных для операционных систем 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 будет потерян, т.е. операцию удаления отменить будет невозможно.