1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
Полноэкранный текстовый редактор vi (от англ. visual) универсален, но сейчас он чаще всего используется для редактирования исходных текстов программ и конфигурационных файлов. Команды его подобраны таким образом, что он будет работать даже на терминалах, не обладающих клавишами управления курсором. В современных версиях GNU/Linux обычно устанавливается редактор текста vim (vi improved), являющийся дальнейшим развитием vi. Имеется также графическая оконная версия gvim редактора vi. Она предоставляет современный интерфейс меню, что значительно облегчает работу для начинающих. Запускают vi следующим образом: vi — в таком случае vi будет запущен для ввода текста vi - — текст будет считан из стандартного потока ввода (stdin) vi filename — файл будет открыт для редактирования view filename или vi –R filename — файл будет открыт для просмотра vi +[num] filename — курсор будет поставлен на строку с номером num или на последнюю строку, если num не указан vi +/regexp filename — файл будет открыт для редактирования и курсор будет установлен на первое вхождение регулярного выражения regexp ЛОЛ: Для "срочной эвакуации" из vi следует нажать клавишу <Esc>, а затем набрать команду :q!. Эта команда обеспечит выход из vi без сохранения изменений. Редактор vim обладает развитой системой помощи, которая может быть получена посредством команды :help, если ее набрать после нажатия клавиши <Esc>. Редактор vi обладает тремя различными режимами работы. - Командный режим, в котором vi оказывается при его запуске и при нажатии клавиши <Esc>. В этом режиме осуществляется перемещение курсора, просмотр и редактирование текста. - Режим ввода текста, в который vi переходит при вызове любой из команд вставки или добавления текста, например, i. В этом режиме не следует пользоваться клавишами перемещения курсора по тексту. Этот режим используется исключительно для ввода нового текста. Для выхода из этого режима применяется клавиша <Esc>. - Режим двоеточия, или, иначе, режим последней строки, в который vi переходит при нажатии клавиши <:> в командном режиме. В этом режиме работают такие команды, как открытие нового файла или установка нумерации строк. Официальное название этого режима — ex mode, т. к. в нем можно использовать команды однострочного редактора ex (развитая версия ed). h - смещает курсор влево на одну позицию j - на строку вниз k - на строку вверх l - на позицию вправо w - на слово вправо b - на слово влево e - установить курсор в конец слова 0 - курсор в начало строки без учета отступа, т. е. в самое начало ^ - курсор на первый символ строки, не являющийся пробелом или табуляцией $ - курсор в конец строки ) - курсор на начало следующего предложения ( - курсор на начало предыдущего предложения } - курсор в начало следующего абзаца { - курсор в начало предыдущего абзаца G - на последнюю строку документа #G - переместить курсор на # — номер строки (например, 20G) H - установить курсор на первую строку экрана L - курсор на последнюю строку экрана z+ - поместить текущую строку вверх экрана z- - поместить текущую строку вниз экрана z. - поместить текущую строку в центр экрана i - переход в режим вставки в позиции курсора I - переход в режим вставки в начале строки a - добавление после текущего символа A - добавление в конец строки o - вставка строки после текущей строки с переходом в режим вставки O - вставка строки до текущей строки с переходом в режим вставки r - замена символа в текущей позиции R - переход в режим замещения x - удаление символа в позиции курсора X - удаление предыдущего символа s - замена текущего символа и переход в режим вставки S - переходом в режим вставки сс - переходом в режим вставки cw - замена слова до пробела, табуляции (обе команды) или знака препинания cW - замена слова до пробела, табуляции (обе команды) или знака препинания dw - удаление слова до пробела, табуляции (обе) или знака препинания dW - удаление слова до пробела, табуляции (обе) или знака препинания dd - Удаление строки полностью (dd) yy - копирование сроки в буфер обмена yw - копирование слова до пробела, табуляции (обе) или знака препинания (dw) yW - копирование слова до пробела, табуляции (обе) или знака препинания (dw) p - вставка из буфера после текущей позиции P - вставка из буфера до текущей позиции ~ - Смена регистра текущего символа J - объединение строк u - Отмена действия (от англ. undo) Многие команды допускают использование перед ними числовых квантификаторов. Они указывают, сколько раз должно быть выполнено требуемое действие. Например, следующая команда переместит курсор на двадцать строк вверх: 20k. Например, команда 10x удалит десять символов, начиная с текущей позиции. Команда 2Y запомнит в буфере обмена две строки, а команда 10p десять раз произведет их вставку (только в vim). Команды поиска и замены строк /шаблон — для поиска с текущей позиции до конца файла ?шаблон — для поиска с текущей позиции в начало файла Поиск с заменой найденных строк в vi осуществляется с помощью команды режима последней строки :s/шаблон/замена/ :s/ten/10/ :s/ten/10/g Поиск и замена с игнорированием регистра: :s/ten/10/i Поиск всех вхождений строки по всему файлу :%s/ten/10/gi Оператор % указывает диапазон поиска - весь файл. Модификатор i добавлен для игнорирования регистра при поиске. Диапазон поиска можно указывать: номерами начальной и конечной строк, например: :3,5s/ten/10/; номером конечной строки для замены с текущей строки: :,5s/ten/10/; смещением от текущей строки: :,+5s/ten/10/; символом конца файла: :3,$s/ten/10/. Команды режима двоеточия: :q - выход из редактора :q! - выход из редактора без сохранения изменений :wq - выход из редактора с сохранением изменений :x - выход с сохранением, если текст был изменен :w - сохранение редактируемого файла :w имя - задание имени файлу и сохранение или запись с другим именем :e имя - открытие файла для редактирования :e! имя - открытие файла с отказом от изменений в редактируемом файле :r имя - вставка текста из файла в позиции курсора :r! - команда Выполнение команды оболочки и вставка ее текстового вывода в файл :y - копирование строки в буфер (можно указывать диапазон строк) :d - удаление строк :set showmode - показывать текущий режим работы :set number - показывать номера строк |