Страница 1 из 1

как работать с vi редактором

Добавлено: 2012-07-10 19:09:01
uplevel
Редактор vi есть почти в каждой системе Linux и UNIX. На самом деле, если в системе есть только один текстовый редактор, то это наверняка vi, поэтому следует знать как им пользоваться. В этом разделе представлены основные команды vi, а для полного руководства по vi, обратитесь к нашему “введению в vi — метод шпаргалки” (смотриРесурсы), или же обратитесь к man-страницам или многочисленным книгам.

Запуск vi

Большинство дистрибутивов Linux сейчас поставляется с vim (от ViIMproved) редактором, а не классическим vi. Vim обратно совместим с vi, для которого также доступна графическая оболочка (gvim), а также обычный текстовый режим. Команда vi обычно является псевдонимом или символьной ссылкой на программу.

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

Чтобы запустить редактор vi, используйте команду vi, а также имя файла в качестве параметра. Редактор имеет много опций. За более полной информацией обратитесь к man-страницам. Наберите команду

Код: Выделить всё

vi count1.sh
Вы увидите вывод как в Листинге 115. Если вы используете vim, некоторые слова могут быть подсвечены другим цветом. Vim поддерживает подсветку синтаксиса (она не являлась частью редактора vi), и по умолчанию она может быть включена.

Листинг 115. Редактирование count1.sh в vi

Код: Выделить всё

x="$1"
echo "$2" $(date)
while [ $x -gt 0 ]; do let x=$x-1;done
echo "$2" $(date)
~
~
~
~
~
~
"count1.sh" 4L, 82C
Режимы vi

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

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

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

Выход из vi

Одну из первых вещей, которой я хотел бы выучить в новом редакторе, это как осуществлять выход из программы до того, как начать работать. Следующие способы выхода vi включают сохранение или отмену изменений или перезапуск редактирования файла. Если команды не работают, то возможно, вы находитесь в режиме вставки, поэтому нажмите Esc, чтобы покинуть режим вставки и перейти в режим команд.
Выход с отменой всех изменений в файле. Это часто используемая команда, чтобы вернуть все в первоначальный вид. Записать файл (в независимости от того было ли модифицировано содержимое или нет). Попытка перезаписать существующие файлы или файлы только для чтения или другие не записываемые файлы. Вы можете определить имя файла в качестве параметра, и этот файл будет записан, а не тот с которым вы начали работу. В общем безопаснее пропускать !, кроме случаев, когда вы знаете, что делаете.
ZZ
Записать файл, если он был изменен. Затем произвести выход. Эта команда часто применяется для нормального выхода из vi. Редактировать текущую копию файла на диске. Команда перезагрузит файл, отменив созданные вами изменения. Вы также можете использовать команду, если копия на диске была изменена по какой-либо причине и вам требуется последняя ее версия. Запустить команду интерпретатора. Наберите команду и нажмите Enter. Когда команда завершится, вы увидите ее вывод и приглашение вернуться в редактор vi.

Замечания:

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

Перемещение

Следующие команды используются для перемещения по файлу:
Перейти на один символ влево на текущей строке Перейти на следующую строку Перейти на предыдущую строку Сдвинуться на один знак вправо в текущей строке Перейти к следующему слову на текущей строке Перейти на предыдущее слово в текущей строке Перейти в начало предыдущего слова на текущей строке Пролистнуть страницу вперед Пролистнуть страницу назад

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

Переход по строкам

Следующие команды используются для перехода к определенным строкам вашего файла:
Перейти к определенной строке вашего файла. Например, 3G переходит к строке 3. Без параметров, G переходит к последней строке файла. Переходит к строке, отстоящей вниз относительно верхнего края экрана. Например, 3H осуществляет переход к третьей строке сверху относительно текущего экрана. Аналог H, но переход осуществляется относительно нижней части экрана. Так осуществляет на вторую строку относительно нижней части экрана.


Поиск

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

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

Модификация текста

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

Заключение

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

Листинг 116. Команды редактора для добавления строки в count1.sh

Код: Выделить всё

1G
O
sleep 20
:w! count2.sh
:q

Re: как работать с vi редактором

Добавлено: 2012-07-11 8:45:51
Гость
и?
если это в статьи то в статьи
а то это и так каждый знает))

Re: как работать с vi редактором

Добавлено: 2012-07-11 11:30:23
alek2012
Кстати вопрос по теме!
Можно ли как то в редакторе VI подсветить абсолютно одинаковые строки.
Очень горящий вопрос)))
Спасибо.

Re: как работать с vi редактором

Добавлено: 2012-07-11 11:31:30
uplevel
Гость писал(а):и?
если это в статьи то в статьи
а то это и так каждый знает))
не каждый знает

Re: как работать с vi редактором

Добавлено: 2012-07-11 11:32:16
uplevel
alek2012 писал(а): Очень горящий вопрос)))
горячий)

Re: как работать с vi редактором

Добавлено: 2012-07-11 13:34:58
Гость

Re: как работать с vi редактором

Добавлено: 2012-07-11 14:00:19
alek2012
Гость

Супер! Уже распечатал)
Спасибо, очень полезная вещь! :good:

Re: как работать с vi редактором

Добавлено: 2012-07-11 22:33:35
uplevel
стёбно

Re: как работать с vi редактором

Добавлено: 2012-07-12 5:55:36
manefesto
пфф, лохопеды
vi-vim-cheat-sheet.gif

Re: как работать с vi редактором

Добавлено: 2012-07-12 12:44:59
uplevel
показалось... таблица менделева...

Re: как работать с vi редактором

Добавлено: 2012-07-12 19:14:30
sadchok
В комплекте с VIm идет учебник /usr/share/vim/vim73/tutor/tutor.ru.utf-8

Re: как работать с vi редактором

Добавлено: 2012-07-13 1:32:26
LMik
А теперь вопрос!

Много ли осталось "работа может быть выполнена в vi с помощью обычных клавиш печатной машинки" и нахрена нам весь этот гемор в начале второй десятки 21 века?

Re: как работать с vi редактором

Добавлено: 2012-07-13 8:38:28
Гость
LMik писал(а):А теперь вопрос!

Много ли осталось "работа может быть выполнена в vi с помощью обычных клавиш печатной машинки" и нахрена нам весь этот гемор в начале второй десятки 21 века?
Да, точно! Ведь есть же Мелкософт Оффис и Винда 8 почти уже вышла. :-D

Re: как работать с vi редактором

Добавлено: 2012-07-13 9:05:20
Bayerische
Начинал учить, потом забросил в буй. Ставлю везде mcedit и назначаю его в env, так проще.
На всяк пожарный на маленьком листочке выписал 10 команд vi. Это помятуя "бывают в глухих местах устройства, в которых ничего нет, кроме vi". Кстати, видел кто такие устройства? Сегодня попробую до товарища сходить, он прикупил роутер D-Link с ляликсом на борту, надо полюбопытствовать.

Re: как работать с vi редактором

Добавлено: 2012-07-13 9:38:07
uplevel
Bayerische писал(а):"бывают в глухих местах устройства, в которых ничего нет, кроме vi". Кстати, видел кто такие устройства?
у меня такое устройство intel se7501gh2 фряха только 9 ая встала остальные не видят скази контроллер ,не видны сетевухи пришлось vi изучать ,чтоб ядро перекомпилировать

Re: как работать с vi редактором

Добавлено: 2012-07-13 9:51:56
Гость
Для венды vim идёт в комплекте с инструкцией.