Jump to content

VI


AndreyMust19
 Share

Recommended Posts

VI

Не переводится.

Текстовой редактор с командным интерфейсом. Сейчас наибольшее распространение получил vim, улучшенная версия этого редактора.

Помимо чтения этого документа читайте мануал к этому редактору (команда 'man vi'). Также в некоторых UNIX-системах есть такая программа vimtutor, которая открывает руководство по этому редактору в самом редакторе! Поэтому практические задания вы будете выполнять в самом руководстве!

Также есть возможность получить справку, встроенную в редакторе (для этого пишите ':help слово').

Кроме текстового режима есть программа GVIM для графического интерфейса, которая имеет меню, с которым можно работать с помощью мыши.

- ССЫЛКИ, запускающие vi в разных режимах:

vi

Сам Бинарник редактора.

vim

Запуск редактора, опции по умолчанию.

ex

Запуск в режиме расширенных команд (т.е. vi с ключом -e).

view

В режиме только чтения (c ключом -R).

rvim rview rgvim rgview

Как vim и view, но нельзя выполнять команды оболочки ® и останавливать работу редактора (g).

ОПЦИИ ПРИ ЗАПУСКЕ РЕДАКТОРА

-b

Запуск для правки бинарных файлов. Используйте чтобы открыть файл в той же таблице символов, что и оболочка.

-d

Сравнение файлов.

-R

Открытие файла только для чтения.

+[N]

При открытии файла установить курсор на N строку.

-v

Запуск в обычном vi-режиме. Подавляет ключи, устанавливающие другие режимы.

КУРСОР

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

КОМАНДЫ

В начале вы находитесь в режиме ввода команд. В этом режиме клавиши со стрелками передвигают курсор, а нажимаемые клавиши соответствуют командам. То есть команда - соответствует одной нажатой клавише. Команды бывают 2-х типов:

- Короткие

- и Расширенные

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

При вводе команды вы можете сначала ввести число - сколько раз повторить команду, а потом саму команду:

[Кол]Команда

СПИСОК КОМАНД

Здесь описаны все найденные мной команды. Одинаковые команды разделены пробелом, символы табуляции: (,[,{,< для обозначения команд не используются.

1. ПЕРЕМЕЩЕНИЕ КУРСОРА

"влево" h Backspace

Передвигает курсор влево на 1 символ.

"вправо" l Space

Передвигает курсор вправо на 1 символ.

+ j

Перемещение курсора на следующую строку.

- k

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

Home 0

Перемещает курсор на начало строки.

End $

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

PageUp

Перемещает курсор на 1 экран вверх.

PageDown

Перемещает курсор на 1 экран вниз.

b

Переместить курсор к началу слова, на котором он сейчас стоит (т. е. на его первый символ). Повторное выполнение команды переместит курсор на начало предыдущего слова (слева).

e

Переместить курсор к концу слова. Повторное выполнение переместит курсор на конец следующего слова (справа).

[N]G

Переместить курсор на N строку от начала текста. Если N (сколько раз выполнить команду) не указано, курсор перемещается на последнюю строку файла.

Shift+h

На начало первой строки на экране.

Shift+l

На начало последней строки на экране.

Shift+вверх

На один экран вверх.

Shift+вниз

На один экран вниз.

Shift+влево Shift+вправо

Передвинуть курсор влево / вправо на близжайший разделитель (пробел, пунктуация или новая строка).

2. КОМАНДЫ ВВОДА ТЕКСТА

К этим командам относятся: i a o R

i

Ввод символов, начиная с позиции курсора. В этом режиме все нажимаемые вами клавиши вставляют символы в месте расположения курсора. Delete удаляет символ справа, а Backspace передвигает курсор влево.

Насчет перемещений курсора. Возможность перемещать курсор зависит от того, правильно ли настроена ваша командная оболочка. Если вы можете перемещать курсор, то для этого используйте клавиши со стрелками и специальные клавиши типа Home, PageUp (но не h,j,k,l!). Если вы НЕ можете перемещать курсор, тогда нажатие на клавиши со стрелками приведет к окончанию ввода.

a

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

A

Ввод символов в конце текущей строки.

o

Ввод символов с новой строки (На следующей строке появляется пустая строка и в нее помещается курсор).

O

Ввод символов с новой строки (пустая строка появляется на предудыщей строке).

R

Ввод с заменой символов. Каждый введенный символ заменяет собой символ в позиции курсора.

r

Вставить символ.

Чтобы заменить символ, на котором стоит курсор, нажмите r и потом - символ, который хотите вставить

3. КОМАНДЫ УДАЛЕНИЯ СИМВОЛОВ

x

Удаляет символ в позиции курсора. Для удаления текста советую использовать именно эту команду, так как команда d вырезает удаляемый текст в буфер обмена (а его содержимое вам может быть необходимо). Кроме того, d еще нужно указывать направление.

Delete

Удаляет 1 символ справа от курсора.

4. КОМАНДЫ РАБОТЫ С БУФЕРОМ ОБМЕНА

Позволяют вырезать, копировать и вставлять текст.

d

Вырезает текст и помещает его в буфер обмена.

y

Копирует текст в буфер обмена.

c

Вырезает текст и переводит редактор в режим вставки (i).

Каждое копирование или вырезание затирает предыдущее содержимое буфера.

Работа этих команд (вырезание / копирование) зависит от следующей нажатой клавиши:

"Вверх" или "Вниз" - текущую строку и 1 строку сверху или снизу, начиная с курсора. Если вы набрали 3d<Вниз>, то в буфер будет вырезано 4 строчки: текущая и 3 снизу.

"Влево" или "Вправо" - 1 символ слева или в позиции курсора.

End или $ - символы от курсора до конца строки.

Home - символы от курсора до начала строки.

e - слово, на котором стоит курсор (до первого встреченного пробела). Оставляет после слова пробел.

w - слово, на котором стоит курсор, включая пробел в его конце.

d - всю строку, внутри которой находится курсор.

p

Вставляет содержимое буфера обмена справа от курсора.

P

Вставляет содержимое буфера обмена в позицию курсора.

v

Переводит редактор в режим выделения текста. Передвигайте курсор чтобы выделять текст. Теперь вы можете нажать кнопку d, y, с чтобы переместить / копировать выделенный текст в буфер обмена (или p, чтобы заменить выделенный текст содержимым буфера).

Также вы можете нажать x, чтобы удалить выделенный текст.

5. ОТМЕНА И ПОВТОРЕНИЕ ВНЕСЕННЫХ ИЗМЕНЕНИЙ

u

Отменяет последнее внесенное изменение в текст. Имейте в виду, что выполнение этой команды тоже вносит в текст изменения! Помните - чтобы отменить n-ое кол-во последних изменений, введите число (сколько раз выполнить команду), а потом букву u.

U

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

Ctrl+R

Возвращает на место 1 отмененное изменение.

6. ПОИСК и ЗАМЕНА ТЕКСТА В ФАЙЛЕ

/

Переход в режим поиска. Внизу экрана появляется символ '/' - вы должны ввести искомую строку и нажать Enter. После нажатия на Enter выполнится поиск и курсор встанет на первый символ найденного фрагмента. Искомая строка останется внизу экрана.

Чтобы выйти из режима поиска, удалите '/'.

?

Режим поиска в обратном направлении.

n

Найти следующий фрагмент, заданный командой поиска /. Курсор встанет на следующий найденный фрагмент, а внизу экрана появится искомая строка.

N

Найти предыдущий искомый фрагмент.

%

Поиск парной скобки. Эта команда берет первую справа скобку (Круглую, Прямоугольную или Фигурную), ищет парную ей скобку и устанавливает на нее курсор.

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

Если найденная скобка - закрывающая, команда ищет парную скобку слева от нее.

:#,#s/new/old/$

s - это опция меню, осуществляющая поиск текстового фрагмента new и заменяет его на old.

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

$ - описывает особенности замены, который может состоять из нескольких символов: g - c

g - Искать заменяемый фрагмент по всей строке. Если g отсутсвует, то замене подвергнется только первый найденный фрагмент в строке.

с - Перед заменой спрашивать о ее необходимости (курсор будет находится на найденном фрагменте).

6. РАБОТА С ФАЙЛАМИ

Ctrl+g

Выдает информацию об открытом файле (Имя файла, Есть ли изменения, Новый ли, Кол-во строк, Текущая позиция в процентах). Эта информация появится внизу экрана и не исчезнет, пока в этом месте не появится другая информация.

КОМАНДЫ С КЛАВИШЕЙ "Ctrl"

Ctrl+влево Ctrl+вправо

Передвинуть курсор влево / вправо на одно слово. Слова разделяются пробелами и символами новой строки.

-= Примеры команд =-

10dd

Удалить десять строк снизу.

МЕНЮ

В режиме меню вы вводите строку символов - тем самым выбираете опцию меню. Для ввода строки нажмите Enter или Esc (первое быстрее). Для выхода обратно в режим команд редактирования удалите символ ':'.

ОПЦИИ МЕНЮ

-= Особенности работы в меню =-

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

-= Виды опций =-

Опции бывают нескольких видов:

1) Односимвольные (означают только одно)

2) Сложные

:q

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

:q!

Быстрый выход из редактора (без сохранения изменений).

:w файл

Сохранение в файле всех проделанных изменений, с указанием полного пути. Если <файл> не указан, тогда изменения сохраняются в текущем файле (если этот файл открыт).

:wq

сохранить изменения в файле и выйти из редактора.

:!команда

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

Если ! является частью имени файла, напишите перед ним \ (обратный слэш), чтобы vi не принял ! за приказ исполнить команду, а за символ восклицательного знака.

:r файл

Вставляет туда, где стоит курсор содержимое указанного файла. Имейте ввиду, что вместо файла может стоять команда (Предваренная символом !)

:e файл1

Сохранить текущий и открыть другой файл (файл1). Эта команда сработает только если в текущем файле вы сохранили сделанные изменения (команда w).

:e! файл1

Как предыдущая команда, но не сохраняет текущий файл.

:help слово

Получить справку по указанному ключевому слову или команде.

НЕИЗВЕСТНЫЕ КОМАНДЫ

g

Расширенная команда для навигации по тексту и его изменения.

Link to comment
Share on other sites

Сначала о небольших неточностях

1.

AndreyMust19 писал(а)

Работа этих команд (вырезание / копирование) зависит от следующей нажатой клавиши:

"Вверх" или "Вниз" - текущую строку и 1 строку сверху или снизу, начиная с курсора. Если вы набрали 3d<Вниз>, то в буфер будет вырезано 4 строчки: текущая и 3 снизу.

"Влево" или "Вправо" - 1 символ слева или в позиции курсора.

End или $ - символы от курсора до конца строки.

Home - символы от курсора до начала строки.

e - слово, на котором стоит курсор (до первого встреченного пробела). Оставляет после слова пробел.

w - слово, на котором стоит курсор, включая пробел в его конце.

d - всю строку, внутри которой находится курсор.

последнее неверно

d не является командой перехода, поэтому не указывает диапазон действия команды перед ней.

yd - в данном контексте не имеет смысла

yy - копирует текущую строку в безымянный буфер обмена

dd - вырезает текущую строку в безымянный буфер обмена

2. Режим командной строки почему-то назван меню. С таким же успехом можно название "меню" выдать и строке bash.

Теперь о самой статье.

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

Чайник, прочитавший эту статью так и останется чайником, способным работать с vi.

Здесь не указаны идея и основные концепции редактора.

Но это нельзя назвать недостатком, если в статье будут приведены ссылки на учебники по vi (даже на русском языке есть несколько замечательный статей).

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

Link to comment
Share on other sites

  • 1 month later...

Исправил ошибки и добавил описание параметров запуска (на данный момент описаны ещё не все параметры), также переименовал в более понятное для человека название "Vim_Tutorial". Статью переместил в раздел Документация.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...