Простой редактор текста с небольшим набором команд и удобной системой
подсказок. Все команды видны на экране при запуске редактора. Находится в
каталоге /usr/bin. Является частью клиентской подсистемы почтовой программы
pine. Вызов:
pico [file_name]
Статусная строка вверху экрана показывает версию редактора, имя
редактируемого файла, модифицирован файл или нет. Третья строка внизу экрана
используется для информационных сообщений и дополнительных команд ввода;
2 нижних стоки содержат основные команды редактора.
Каждый вводимый символ автоматически помещается в буфер и в текущую
позицию курсора.
Перемещение по тексту:
- с помощью клавиш со стрелками
- с помощью комбинаций клавиш
^ - принятое обозначение клавиши Ctrl в сочетании с другой клавишей. Можно
эмулировать клавишу Ctrl двойным нажатием клавиши ESC.
^g - справочная информация. Комбинации клавиш для навигации по
help-тексту указаны внизу страницы
^f - вперед на символ
^b - назад на символ
^p - на предыдущую строку
^n - на следующую строку
^a или Home - к началу текущей строки
^e или End - к концу текущей строки
^v или PageDown - к следующей странице текста
^y или PageUp - к предыдущей странице
^w - поиск фрагмента текста
^l - обновить дисплей
^ctrl - пометить начало выделяемого текста, блок
^k - вырезать выделенный текст в буфер (инверсия подсветки текста)
^u - вставка удаленного текста в позицию курсора.
^d - удалить символ после курсора
Backspase - удалить символ перед курсором
^t - проверка синтаксиса. Каждое нераспознанное слово приведет к выводу
соответствующего запроса
^i или Tab - вставить табуляцию
^j - выравнивание текущего параграфа по правому полю (текст между
пустыми строками или отступами)
^c - показать текущую позицию курсора
^r - вставить файл
^o - сохранить все выполненные изменения в файле
^x - exit, выход из редактора с сохранением изменений
7.2 Краткое описание редактора vi/vim
vi - экранная версия редактора ex.
vim - Vi Improved - улучшенный вариант редактора vi vim полностью эмулирует все команды редактора vi и имеет расширенный набор
параметров при вызове и множество дополнительных возможностей. Для вызова
редактора можно использовать оба имени.
Возможные варианты вызова редактора:
vi [file_name]
vim [options][file_name]
vim [options] - - (с минусом) файл для редактирования
читается с устройства стандартного ввода
vim -o file1 file2 - чтение во внутренние буферы двух файлов и
одновременное открытие двух окон
ex - строчный командный режим
view [file_name] - просмотр файла в режиме read-only. Удобен для
просмотра больших текстовых файлов, протоколов сообщений Linux,
например.
Пути получения справочной информации о редакторе:
- в консоли:
man vim
- список команд и их описание (в командном режиме):
:help
:help vim-modes
:help
:help index.txt
:help starting
Переход к описанию отдельного термина в help-тексте осуществляется его
выделением с помощью курсора и нажатием клавиш Ctrl/] . Переход к
первоначальному описанию - Ctrl/t.
Начальные установки работы редактора определяются двумя файлами:
/usr/local/etc/.exrc и .exrc в домашнем каталоге, если он есть. Т.к. последним
выполняется файл .exrc в корневом домашнем каталоге, то есть возможность
самостоятельно отpедактиpовать его, изменив таким образом режим работы.
Например, в файл .exrc можно добавить команды:
set sm - (showmatch) показывает соответствующую открывающую
скобку ( или { после ввода закрывающей.
set smd - (showmode) индикатор режима вставки или замены.
Перед началом использования редактора полезно посмотреть, с какими
параметрами вызван редактор. Команда :set (в командном режиме) выводит все
параметры, чьи значения отличаются от значений по умолчанию.
Редактоp vim имеет более 300 команд!
Режимы работы редактора
Редактор имеет несколько основных режимов:
normal, командный. Ввод команд редактора. В этом режиме находится
редактор сразу после старта.
Cmdline, режим ввода командной строки. Вход в этот режим из normal: : - двоеточие с командой / или ? - начало операции поиска :! - начало ввода Linux - команды
insert, режим ввода текста. Внизу экрана появляется надпись --
INSERT --
Переход из режима normal (командный) в insert (ввода):
i - набор текста перед текущим положением курсора
a - набор текста после текущего положения курсора
A - набор текста после конца текущей строки
I - набор текста перед первым печатаемым символом текущей строки
o - открыть для набора текста строку после текущей строки
O - открыть для набора текста строку перед текущей строкой
Можно набирать текст и нажатием клавиши Enter переходить к новой строке
набора. Ввод текста возможен также и из файла ( знак "-" обязателен):
cat file_name | vim -
Для переключения в командный режим из режима ввода следует нажать Ctrl/[
(т.е. одновременно клавиши Ctrl и [ ) или нажать Esc (или дважды Esc). Переход
в командный режим из режима ввода только для выполнения одной команды -
Ctrl/o
visual - визуальный режим. После перехода в этот режим любое
перемещение курсора выделяет текст. Далее работа продолжается с выделенным
текстом
select - режим выбора, вариант визуального режима. Вводится
нажатием клавиш Ctrl/g в визуальном режиме. Внизу экрана появляется надпись
-- SELECT --
Переход из командного режима в визуальный осуществляется вводом символов:
v - операции над отмеченными символами
V - операции над отмеченными строками
Ctrl/V - операции над отмеченным блоком
Повторный ввод символа отменяет визуальный режим.
insert command mode - ввод команд в режиме ввода, осуществляется
нажатием клавиш Ctrl/o. Полезный дополнительный режим: редактор
переходит из режима ввода в командный только для выполнения одной
команды. После выполнения введенной команды редактор возвращается в
режим ввода.
Двойное нажатие Esc из любого режима приводит в командный.
Командный режим
Ctrl/z - приостановить редактор (или запустить новую оболочку) Ctrl/w - выбрать команды управления окнами
Перемещение курсора в командном режиме
l или R или spacebar - переместиться на один символ вправо h или или backspace - переместиться на один символ влево k или - - перейти на одну строку вверх
(текущая колонка при этом останется прежней)
j или ? - перейти на одну строку вниз
(текущая колонка при этом останется прежней)
0 - перейти к первой колонке текущей строки $ - перейти к последнему символу текущей строки n| - перейти к колонке n текущей строки ^ - перейти к первому печатаемому символу текущей строки - - подняться вверх на одну строку к первому печатаемому символу + или enter - опуститься вниз на одну линию к первому печатаемому
символу
Позиционирование курсора на экране дисплея
H - перейти к первому печатаемому символу верхней строки экрана M - перейти к первому печатаемому символу строки в середине экрана L - перейти к первому печатаемому символу последней строки экрана
"Листание" файла по страницам, содержащим один экран Вашего
терминала
CTRL/f - продвинуться на одну страницу вперед CTRL/b - вернуться на одну страницу назад CTRL/d - продвинуться вперед на 1/2 страницы CTRL/u - вернуться на 1/2 страницы CTRL/e - продвинуться на одну строку вперед CTRL/y - вернуться на одну строку назад z +enter - переместить текущую строку наверх экрана z- - переместить текущую строку вниз экрана z. - переместить текущую строку в центр экрана
Передвижение курсора по словам
Под словом в vi/vim понимается последовательность алфавитно-цифровых
символов, разделенных не алфавитно-цифровыми символами или пробелами.
w - переместить курсор на одно слово вправо W - переместить курсор на одно слово, разделенное пробелами, вправо b - переместить курсор на одно слово влево B - переместить курсор на одно слово, разделенное пробелами, влево e - переместить курсор в конец текущего или следующего слова E - переместить курсор в конец текущего или следующего слова, разделенного
пробелами.
Включение нумерации строк
Для включения нумерации строк следует выполнить команду
:set nu
В качестве номера строки можно задавать не только номер в явном виде, но и
символы:
$ - это последняя строка
. - это текущая строка
% - это сокращение для 1,$, т.е. от первой до последней строки
Перемещение по файлу
nG - перейти к строке n.
Т.е., если набрать 1G, то Вы окажетесь в первой строке редактируемого
файла. Если n не указано, то перейти к концу файла.
Поиск по фрагменту
/фрагментenter - найти фрагмент в тексте файла, двигаясь к концу
файла ?фрагмент enter - найти фрагмент в тексте файла, двигаясь
к началу файла n - повторить предыдущую / или ? команду n раз N - повторить предыдущую / или ? команду, двигаясь в обратном направлении :g/фрагмент/nu - поиск строк, содержащих фрагмент по всему тексту,
найденные строки будут напечатаны на экране с указанием номера :v/фрагмент/nu - поиск строк, не содержащих фрагмент, по всему тексту
Внесение изменений в редактируемый файл
r x - заменить текущий символ на символ x RтекстCTRL/[ - заменить несколько символов на текст
(т.е. Вы нажимаете R, затем набираете текст, на который хотите заменить
последующие символы, после чего нажимаете одновременно CTRL и [) ccтекстCTRL/[ - заменить текущую строку на текст CтекстCTRL/[ - заменить символы от текущего до конца строки на текст s текстCTRL/[ - вставить текст, начиная от текущего символа SтекстCTRL/[ - заменить текущую строку на текст
Удаление в тексте
dl или x - уничтожить текущий символ X - уничтожить символ перед текущим diw - удалить слово dis - удалить фразу ( набор слов с признаком конца фразы . ? !) dd - уничтожить текущую строку D - уничтожить содержимое строки, начиная с текущего символа
:x,yd - уничтожить строки с номерами от x до y
Отмена и повтор изменений
. - повтор предыдущего изменения u - отменить предыдущее изменение U - восстановить первоначальный вид строки (даже если было сделано
несколько изменений, но только если Вы не перемещали курсор из данной
строки).
Получение информации о файле
CTRL/g - помещает в командной строке экрана информацию о положении
курсора, имени, размере и статусе редактируемого файла.
Поиск по фрагменту с заменой
:x,y s/фрагмент1/фрагмент2/опции - замена в каждой строке диапазона
строк от x до y каждого первого встретившегося в строке
фрагмента1 на фрагмент2, где опции:
g - глобальная замена: заменить все встретившиеся фрагменты1 на фрагмент2
c - замена с проверкой (если замена нужна, Вы отвечайте "y").
Копирование и перемещение текста
YY или Y - запомнить текущую строку в буфере p - поместить содержимое буфера или удаленные строки после текущей строки P - поместить содержимое буфера или удаленные строки перед текущей строкой J - соединить текущую и следующую строки в одну :x,y t z - скопировать строки от x до y после строки с номером z :x,y m z - переместить строки от x до y после строки z :n r имя_файла - скопировать файл имя_файла в редактируемый файл после
строки с номером n. Если номер не указан, то после текущей строки, а если
в качестве номера указан 0, то - перед первой строкой файла :x,y wимя_файла - записать строки от x до y в файл имя_файла
Bыход из редактора
ZZ - выход со спасением нового содержимого старого файла ZQ - выход из редактора без всяких действий и условий :x - выход со спасением нового содержимого файла :wq - записать файл и выйти из vi/vim :q! - выход без сохранения изменений :eимя_файла - перейти (cо спасением отредактированного содержимого
данного файла) к редактированию файла имя_файла
При сбое в работе редактора изменения в файл не заносятся, но сохраняется копия
отредактированного текста в рабочих файлах. vi -rимя_файла - восстановление файла по копии.
Сообщение о сбое и команде восстановления посылается по mail с просьбой не
отвечать на это сообщение письмом.