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

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
uplevel
рядовой
Сообщения: 16
Зарегистрирован: 2012-07-10 18:59:09

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

Непрочитанное сообщение uplevel » 2012-07-10 19:09:01

Редактор 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
Последний раз редактировалось f_andrey 2012-07-11 10:12:28, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Гость
проходил мимо

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

Непрочитанное сообщение Гость » 2012-07-11 8:45:51

и?
если это в статьи то в статьи
а то это и так каждый знает))

alek2012
рядовой
Сообщения: 37
Зарегистрирован: 2012-06-22 15:54:19

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

Непрочитанное сообщение alek2012 » 2012-07-11 11:30:23

Кстати вопрос по теме!
Можно ли как то в редакторе VI подсветить абсолютно одинаковые строки.
Очень горящий вопрос)))
Спасибо.

uplevel
рядовой
Сообщения: 16
Зарегистрирован: 2012-07-10 18:59:09

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

Непрочитанное сообщение uplevel » 2012-07-11 11:31:30

Гость писал(а):и?
если это в статьи то в статьи
а то это и так каждый знает))
не каждый знает

uplevel
рядовой
Сообщения: 16
Зарегистрирован: 2012-07-10 18:59:09

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

Непрочитанное сообщение uplevel » 2012-07-11 11:32:16

alek2012 писал(а): Очень горящий вопрос)))
горячий)


alek2012
рядовой
Сообщения: 37
Зарегистрирован: 2012-06-22 15:54:19

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

Непрочитанное сообщение alek2012 » 2012-07-11 14:00:19

Гость

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

uplevel
рядовой
Сообщения: 16
Зарегистрирован: 2012-07-10 18:59:09

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

Непрочитанное сообщение uplevel » 2012-07-11 22:33:35

стёбно

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

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

Непрочитанное сообщение manefesto » 2012-07-12 5:55:36

пфф, лохопеды
vi-vim-cheat-sheet.gif
я такой яростный шо аж пиздеЦ
Изображение

uplevel
рядовой
Сообщения: 16
Зарегистрирован: 2012-07-10 18:59:09

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

Непрочитанное сообщение uplevel » 2012-07-12 12:44:59

показалось... таблица менделева...

Аватара пользователя
sadchok
сержант
Сообщения: 271
Зарегистрирован: 2011-10-13 10:40:54
Откуда: Алтайский край

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

Непрочитанное сообщение sadchok » 2012-07-12 19:14:30

В комплекте с VIm идет учебник /usr/share/vim/vim73/tutor/tutor.ru.utf-8
The brain can not be found. Runs the software emulation

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

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

Непрочитанное сообщение LMik » 2012-07-13 1:32:26

А теперь вопрос!

Много ли осталось "работа может быть выполнена в vi с помощью обычных клавиш печатной машинки" и нахрена нам весь этот гемор в начале второй десятки 21 века?
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Гость
проходил мимо

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

Непрочитанное сообщение Гость » 2012-07-13 8:38:28

LMik писал(а):А теперь вопрос!

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

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

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

Непрочитанное сообщение Bayerische » 2012-07-13 9:05:20

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

uplevel
рядовой
Сообщения: 16
Зарегистрирован: 2012-07-10 18:59:09

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

Непрочитанное сообщение uplevel » 2012-07-13 9:38:07

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

Гость
проходил мимо

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

Непрочитанное сообщение Гость » 2012-07-13 9:51:56

Для венды vim идёт в комплекте с инструкцией.