Логотип хостинга
бесплатный домен Сервер хостинга
тарифы хостинга
недорогой хостинг
Хостинговая компания тарифы на хостинг акции хостинга ресселлеру хостинг новости хостинг регистрация доменов карта сайта хостинга
описание редактора vi

Краткое описание редактора 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,y d - уничтожить строки с номерами от 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 с просьбой не отвечать на это сообщение письмом.

Хостинг

Rambler's Top100 Service