- Linux редактор vi поиск
- пУОПЧОЩЕ РПОСФЙС
- ъБРХУЛ ТЕДБЛФПТБ vi
- Как искать в Vim / Vi
- Базовый поиск
- Искать слово целиком
- Искать в текущем слове
- История поиска
- Чувствительность к регистру
- Выводы
- Найти и заменить в Vim / Vi
- Базовый поиск и замена
- Чувствительность к регистру
- Диапазон поиска
- Замена всего слова
- История замены
- Примеры
- Вывод
- Основные команды текстового редактора VI / VIM
- Основные режимы работы.
- Перемещение по файлу
- Ввод текста
- Удаление и вставка
- Отмена изменений
- Поиск
- Выход
- Справка
Linux редактор vi поиск
фЕЛУФПЧЩН ТЕДБЛФПТПН (text editor) ОБЪЩЧБАФ РТПЗТБННХ, ЛПФПТБС РТЕДОБЪОБЮЕОБ ДМС ТЕДБЛФЙТПЧБОЙС (УПУФБЧМЕОЙС Й ЙЪНЕОЕОЙС) ЖБКМПЧ, УПДЕТЦБЭЙИ ФПМШЛП ФЕЛУФ, ОБРТЙНЕТ: РЙУШНП, РТПЗТБННБ ОБ СЪЩЛЕ C, УЙУФЕНОЩК ЛПОЖЙЗХТБГЙПООЩК ЖБКМ. рТЙ ФПН, ЮФП ЙНЕЕФУС НОПЗП ТБЪМЙЮОЩИ ТЕДБЛФПТПЧ ДМС УЙУФЕНЩ Linux, ЕДЙОУФЧЕООЩК, ЮШЈ РТЙУХФУФЧЙЕ ВХДЕФ ЗБТБОФЙТПЧБОП Ч МАВПК УЙУФЕНЕ UNIX ЙМЙ Linux љ— ЬФП vi (visual editor). тЕДБЛФПТ vi ОЕ СЧМСЕФУС УБНЩН РТПУФЩН Ч ЙУРПМШЪПЧБОЙЙ, Й ЕЗП ЙОФЕТЖЕКУ ОЕ ПЮЕОШ РПОСФЕО УБН РП УЕВЕ. пДОБЛП ЧЧЙДХ УЧПЕК ТБУРТПУФТБОЈООПУФЙ, Б ПФЮБУФЙ Й РПФПНХ, ЮФП ЧМБДЕОЙЕ ЙН Ч ОЕЛПФПТЩИ УЙФХБГЙСИ ОЕПВИПДЙНП, ЕНХ РПУЧСЭБЕФУС ЧОЙНБОЙЕ Ч ЬФПК ЛОЙЗЕ.
чЩВПТ ФЕЛУФПЧПЗП ТЕДБЛФПТБ ПВЩЮОП СЧМСЕФУС ЧПРТПУПН ЙОДЙЧЙДХБМШОПЗП ЧЛХУБ. нОПЗЙЕ РПМШЪПЧБФЕМЙ РТЕДРПЮЙФБАФ РЩЫОЩК, НПЭОЩК Й ОБДЕМЈООЩК РПДУЛБЪЛБНЙ ТЕДБЛФПТ emacs. ьФПФ ТЕДБЛФПТ ЙНЕЕФ ВПМШЫЕ ЖХОЛГЙК, ЮЕН МАВБС ДТХЗБС РТПЗТБННБ Ч НЙТЕ UNIX. л РТЙНЕТХ, Ч ТЕДБЛФПТЕ emacs ЙНЕЕФУС УПВУФЧЕООЩК ЧУФТПЕООЩК ДЙБМЕЛФ СЪЩЛБ РТПЗТБННЙТПЧБОЙС LISP. лТПНЕ ФПЗП, Х ЬФПЗП ТЕДБЛФПТБ ЙНЕЕФУС НОПЦЕУФЧП ТБУЫЙТЕОЙК (ПДОП ЙЪ ОЙИ љ— РТПЗТБННБ ЙУЛХУУФЧЕООПЗП ЙОФЕММЕЛФБ ФЙРБ РТПЗТБННЩ Eliza). пДОБЛП, РПУЛПМШЛХ УБН ТЕДБЛФПТ Й ЖБКМЩ, ЛПФПТЩЕ ЕЗП РПДДЕТЦЙЧБАФ, УТБЧОЙФЕМШОП ЧЕМЙЛЙ, ЬФПФ ТЕДБЛФПТ НПЦЕФ ОЕ ВЩФШ ХУФБОПЧМЕО ОБ ОЕЛПФПТЩИ УЙУФЕНБИ. оБРТПФЙЧ, ТЕДБЛФПТ vi СЧМСЕФУС ОЕВПМШЫЙН Й НПЭОЩН, ПДОБЛП ЙУРПМШЪПЧБФШ ЕЗП УМПЦОЕЕ. фЕН ОЕ НЕОЕЕ, РТЙ ЪОБЛПНУФЧЕ У ТЕДБЛФПТПН vi ПО Ч ДЕКУФЧЙФЕМШОПУФЙ ПЛБЪЩЧБЕФУС ПЮЕОШ РТПУФЩН.
ч ЬФПН ТБЪДЕМЕ ДБЈФУС МЙЫШ ЧЧЕДЕОЙЕ Ч vi љ— НЩ ВХДЕН ПВУХЦДБФШ ОЕ ЧУЕ ЕЗП ЖХОЛГЙЙ, Б МЙЫШ ОХЦОЩЕ ДМС ФПЗП, ЮФПВЩ ОБЮБФШ ТБВПФБФШ Ч ОЕН. дПРПМОЙФЕМШОХА ЙОЖПТНБГЙА НПЦОП РПМХЮЙФШ ЙЪ ЬЛТБООПК ДПЛХНЕОФБГЙЙ Л ЛПНБОДЕ vi .
пУОПЧОЩЕ РПОСФЙС
ч МАВПК НПНЕОФ РТЙ ТБВПФЕ Ч ТЕДБЛФПТЕ vi ЧЩ ОБИПДЙФЕУШ Ч ПДОПН ЙЪ ФТЈИ ТЕЦЙНПЧ ТЕДБЛФПТБ: ЛПНБОДОЩК ТЕЦЙН (command mode), ТЕЦЙН ЧЧПДБ (insert mode) Й ТЕЦЙН РПУМЕДОЕК УФТПЛЙ (last line mode).
рТЙ ЪБРХУЛЕ ТЕДБЛФПТБ vi ЧЩ ПЛБЪЩЧБЕФЕУШ Ч ЛПНБОДОПН ТЕЦЙНЕ. ч ЬФПН ТЕЦЙНЕ НПЦОП ДБЧБФШ ЛПНБОДЩ ДМС ТЕДБЛФЙТПЧБОЙС ЖБКМПЧ ЙМЙ РЕТЕКФЙ Ч ДТХЗПК ТЕЦЙН. оБРТЙНЕТ, ЧЧПДС x Ч ЛПНБОДОПН ТЕЦЙНЕ НЩ ХДБМСЕН УЙНЧПМ, ОБ ЛПФПТЩК ХЛБЪЩЧБЕФ ЛХТУПТ. лМБЧЙЫЙ-УФТЕМЛЙ РЕТЕНЕЭБАФ ЛХТУПТ РП ТЕДБЛФЙТХЕНПНХ ЖБКМХ. лБЛ РТБЧЙМП, ЛПНБОДЩ, ЙУРПМШЪХЕНЩЕ Ч ЛПНБОДОПН ТЕЦЙНЕ, УПУФПСФ ЙЪ ПДОПЗП ЙМЙ ДЧХИ УЙНЧПМПЧ.
пУОПЧОПК ЧЧПД Й ТЕДБЛФЙТПЧБОЙЕ ФЕЛУФБ ПУХЭЕУФЧМСЕФУС Ч ТЕЦЙНЕ ЧЧПДБ. рТЙ ЙУРПМШЪПЧБОЙЙ ТЕДБЛФПТБ vi ПУОПЧОПЕ ЧТЕНС, УЛПТЕЕ ЧУЕЗП, ВХДЕФ РТПЧПДЙФШУС ЙНЕООП Ч ЬФПН ТЕЦЙНЕ. рЕТЕИПД Ч ТЕЦЙН ЧЧПДБ ЙЪ ЛПНБОДОПЗП ТЕЦЙНБ ПУХЭЕУФЧМСЕФУС ЛПНБОДПК i (ПФ УМПЧБ insert). оБИПДСУШ Ч ТЕЦЙНЕ ЧЧПДБ, НПЦОП ЧЧПДЙФШ ФЕЛУФ Ч ФП НЕУФП, ЛХДБ ХЛБЪЩЧБЕФ ЛХТУПТ. чЩИПД ЙЪ ТЕЦЙНБ ЧЧПДБ Ч ЛПНБОДОЩК ТЕЦЙН ПУХЭЕУФЧМСЕФУС ЛМБЧЙЫЕК Esc .
тЕЦЙН РПУМЕДОЕК УФТПЛЙ љ— ЬФП УРЕГЙБМШОЩК ТЕЦЙН, Ч ЛПФПТПН ТЕДБЛФПТХ ДБАФУС УМПЦОЩЕ ЛПНБОДЩ. рТЙ ЧЧПДЕ ЬФЙИ ЛПНБОД ПОЙ ПФПВТБЦБАФУС Ч РПУМЕДОЕК УФТПЛЕ ЬЛТБОБ (ПФУАДБ РПЫМП ОБЪЧБОЙЕ ТЕЦЙНБ). оБРТЙНЕТ, ЕУМЙ ЧЧЕУФЙ Ч ЛПНБОДОПН ТЕЦЙНЕ ЛПНБОДХ : , ФП ПУХЭЕУФЧЙФУС РЕТЕИПД Ч ТЕЦЙН РПУМЕДОЕК УФТПЛЙ, Й НПЦОП ВХДЕФ ЧЧПДЙФШ ФБЛЙЕ ЛПНБОДЩ, ЛБЛ wq (ЪБРЙУБФШ ЖБКМ Й РПЛЙОХФШ ТЕДБЛФПТ vi ) ЙМЙ q! (ЧЩКФЙ ЙЪ ТЕДБЛФПТБ vi ВЕЪ УПИТБОЕОЙС ЙЪНЕОЕОЙК). ч ТЕЦЙНЕ РПУМЕДОЕК УФТПЛЙ ПВЩЮОП ЧЧПДСФУС ЛПНБОДЩ, ОБЪЧБОЙЕ ЛПФПТЩИ УПУФПЙФ ЙЪ ОЕУЛПМШЛЙИ УЙНЧПМПЧ. ч ЬФПН ТЕЦЙНЕ Ч РПУМЕДОАА УФТПЛХ ЧЧПДЙФУС ЛПНБОДБ, РПУМЕ ЮЕЗП ОБЦЙНБЕФУС ЛМБЧЙЫБ Enter , Й ЛПНБОДБ ЙУРПМОСЕФУС.
ъБРХУЛ ТЕДБЛФПТБ vi
оБЙМХЮЫЙН УРПУПВПН ХСУОЙФШ ДМС УЕВС ЧУЕ ЛПОГЕРГЙЙ ТЕДБЛФПТБ vi ВХДЕФ ЪБРХУФЙФШ ЕЗП Й ПФТЕДБЛФЙТПЧБФШ Ч ОЕН ОЕЛПФПТЩК ЖБКМ. ч РТЙЧПДЙНЩИ ОЙЦЕ « ЬЛТБОЮЙЛБИ » ВХДЕФ РПЛБЪБОП ЧУЕЗП ОЕУЛПМШЛП УФТПЛ ФЕЛУФБ, ЛБЛ ВХДФП ФЕЛУФПЧЩК ЬЛТБО ЙНЕЕФ РП ЧЩУПФЕ ЧУЕЗП 6 УФТПЛ ЧНЕУФП 24. уЙОФБЛУЙУ ТЕДБЛФПТБ vi ФБЛПЧ:
ЗДЕ filenameљ— ЙНС ЖБКМБ, ЛПФПТЩК ОБДП ТЕДБЛФЙТПЧБФШ.
ъБРХУФЙН ТЕДБЛФПТ vi Й УПЪДБДЙН ОПЧЩК ЖБКМ РП ЙНЕОЙ test ЛПНБОДПК
оБ ЬЛТБОЕ ВХДЕФ РТЙНЕТОП УМЕДХАЭБС ЛБТФЙОЛБ:
ПВПЪОБЮБЕФ РХУФЩЕ УФТПЛЙ, ЙОБЮЕ ЗПЧПТС, ХЛБЪЩЧБЕФ, ЮФП НЩ ОБИПДЙНУС Ч ЛПОГЕ ЖБКМБ. уЙНЧПМ _ ПВПЪОБЮБЕФ ЛХТУПТ.
Источник
Как искать в Vim / Vi
В этой статье описывается, как выполнять поисковые операции в Vim / Vi.
Vim или его предшественник Vi предустановлен в macOS и большинстве дистрибутивов Linux. Поиск текста — одна из самых распространенных задач при работе с файлами. Знание основ Vim может быть очень полезным, когда вы сталкиваетесь с ситуацией, когда ваш любимый редактор недоступен.
Базовый поиск
Для поиска в Vim вы должны быть в обычном режиме. Когда вы запускаете редактор Vim, вы находитесь в этом режиме. Чтобы вернуться в нормальный режим из любого другого режима, просто нажмите клавишу Esc.
Vim позволяет быстро находить текст с помощью / (косая черта) и ? (знак вопроса) команды.
Для поиска вперед нажмите / а для поиска назад нажмите ? , введите шаблон поиска и нажмите Enter чтобы запустить поиск:
Важно отметить, что команда поиска ищет шаблон как строку, а не целое слово. Если, например, вы искали «gnu», поиск совпадет с тем, что «gnu» встроено в слова большего размера, такие как «cygnus» или «magnum».
Нажмите n для поиска следующего вхождения или N в верхнем регистре для поиска в обратном направлении.
Основные шаги для выполнения поиска в Vim следующие:
- Нажмите / .
- Введите шаблон поиска.
- Нажмите Enter чтобы выполнить поиск.
- Нажмите n чтобы найти следующее вхождение, или N чтобы найти предыдущее вхождение.
Искать слово целиком
Для поиска всего слова начните поиск, нажав / или ? , введите чтобы отметить начало слова, введите шаблон поиска, введите > чтобы отметить конец слова, и нажмите Enter чтобы выполнить поиск.
Например, для поиска «gnu» вы должны использовать / :
Искать в текущем слове
Вы также можете выполнить поиск целого слова, переместив курсор на слово и нажав * (звездочка) для поиска вперед или # (решетка) для поиска в обратном направлении. Чтобы найти следующее совпадение, снова нажмите * или # .
История поиска
Vim отслеживает все операции поиска, выполненные вами в текущем сеансе. Чтобы просмотреть историю поиска, нажмите / или ? и используйте клавиши со стрелками вверх / вниз, чтобы найти предыдущую операцию поиска. Чтобы запустить поиск, просто нажмите Enter . Вы также можете отредактировать шаблон поиска перед выполнением операции.
Чувствительность к регистру
По умолчанию в результатах поиска учитывается регистр; поиск «GNU» не будет соответствовать «Gnu».
Чтобы игнорировать регистр :set ignorecase или :set ic в командной строке Vim. Вы также можете установить регистр игнорирования как вариант по умолчанию, добавив команду в ваш файл
Чтобы вернуться в режим совпадения регистра, введите :set noignorecase или :set noic .
Другой способ принудительно игнорировать регистр — добавить c после шаблона поиска. Например, /Linuxc выполняет поиск без учета регистра. Верхний регистр C после шаблона приводит к поиску совпадения по регистру.
Выводы
Для поиска в Vim / Vi введите / или ? , введите шаблон поиска и нажмите Enter .
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Источник
Найти и заменить в Vim / Vi
В этой статье описывается, как найти и заменить текст в Vim / Vi.
Vim — самый популярный текстовый редактор командной строки. Он предустановлен в macOS и большинстве дистрибутивов Linux. Найти и заменить текст в Vim быстро и легко.
Базовый поиск и замена
В Vim вы можете найти и заменить текст с помощью команды :substitute ( :s ).
Чтобы запускать команды в Vim, вы должны находиться в обычном режиме, который используется по умолчанию при запуске редактора. Чтобы вернуться в обычный режим из любого другого режима, просто нажмите клавишу «Esc».
Общая форма команды замены следующая:
Команда ищет в каждой строке в [range]
Если не [range] и [count] , заменяется только шаблон, найденный в текущей строке. Текущая строка — это строка, в которой находится курсор.
Например, чтобы найти первое вхождение строки ‘foo’ в текущей строке и заменить его на ‘bar’, вы должны использовать:
Чтобы заменить все вхождения шаблона поиска в текущей строке, добавьте флаг g
Если вы хотите найти и заменить шаблон во всем файле, используйте процентный символ % в качестве диапазона. Этот символ указывает диапазон от первой до последней строки файла:
Если часть
Вместо символа косой черты ( / ) можно использовать любой другой однобайтный символ, кроме буквенно-цифрового, кроме разделителя. Этот параметр полезен, если в шаблоне поиска или в строке замены есть символ «/».
Для подтверждения каждой замены используйте флаг c
Нажмите y чтобы заменить совпадение, или l чтобы заменить совпадение и выйти. Нажмите n чтобы пропустить совпадение, и q или Esc чтобы выйти из замены. Параметр a заменяет совпадение и все оставшиеся вхождения совпадения. Для прокрутки экрана вниз используйте CTRL+Y , а для прокрутки вверх используйте CTRL+E
Вы также можете использовать регулярные выражения в качестве шаблона поиска. Приведенная ниже команда заменяет все строки, начинающиеся с ‘foo’ на ‘Vim is the best’:
Символ ^ (каретка) соответствует началу строки, а .* Соответствует любому количеству любых символов.
Чувствительность к регистру
По умолчанию операция поиска чувствительна к регистру; поиск «FOO» не будет соответствовать «Foo».
Чтобы игнорировать регистр для шаблона поиска, используйте флаг i
Другой способ принудительно игнорировать регистр — добавить c после шаблона поиска. Например, /Linuxc выполняет поиск без учета регистра.
Если вы изменили настройку регистра по умолчанию и хотите выполнять поиск с учетом регистра, используйте флаг I
Верхний регистр C после шаблона также приводит к поиску совпадения по регистру.
Диапазон поиска
Если диапазон не указан, подстановочная команда работает только в текущей строке.
Диапазон может быть одной строкой или диапазоном между двумя строками. Спецификаторы строки разделяются символами , или ; символы. Диапазон можно указать с помощью абсолютного номера строки или специальных символов.
Например, чтобы заменить все вхождения ‘foo’ на ‘bar’ во всех строках, начиная со строки 3 по строку 10, вы должны использовать:
Диапазон является включительным, что означает, что первая и последняя строки включены в диапазон.
Точка . символ указывает на текущую строку и $ — доллар знак последней строки. Чтобы заменить ‘foo’ во всех строках, начиная с текущей и заканчивая последней:
Спецификатор строки также может быть установлен с помощью символа «+» или «-», за которым следует число, которое добавляется или вычитается из номера предыдущей строки. Если число после символа опущено, по умолчанию используется 1.
Например, чтобы заменить каждое ‘foo’ на ‘bar’, начиная с текущей строки и четырех следующих строк, введите:
Замена всего слова
Команда замены ищет образец как строку, а не целое слово. Если, например, вы искали «gnu», поиск совпадет с тем, что «gnu» встроено в слова большего размера, такие как «cygnus» или «magnum».
Для поиска всего слова введите чтобы отметить начало слова, введите шаблон поиска, введите > чтобы отметить конец слова:
Например, для поиска слова «foo» вы должны использовать :
История замены
Vim отслеживает все команды, которые вы выполняете в текущем сеансе. Чтобы просмотреть историю предыдущих заменяющих команд, введите :s и используйте клавиши со стрелками вверх / вниз, чтобы найти предыдущую заменяющую операцию. Чтобы запустить команду, просто нажмите Enter . Вы также можете отредактировать команду перед выполнением операции.
Примеры
Строки комментариев (добавьте # перед строкой) от 5 до 20:
Раскомментируйте строки с 5 по 20, отмените предыдущие изменения:
Замените все экземпляры «яблоко», «апельсин» и «манго» на «фрукты»:
Удалите завершающие пробелы в конце каждой строки:
Вывод
Поиск и замена — это мощная функция Vim, которая позволяет быстро вносить изменения в текст.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Источник
Основные команды текстового редактора VI / VIM
Текстовый редактор vim, созданный на основе более старого vi. Один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, возможными благодаря расширениям и надстройкам. По умолчанию входит в состав любого дистрибутива Linux.
Открываем файл с помощью vi / vim:
Основные режимы работы.
«Обычный режим» — перемещение по файлу, стирание текста и другие редактирующие функции. Это — основной режим, только из него можно сразу перейти в другие режимы. Для возврата в основной режим из любого другого режима:
«Режим ввода» — ввод текста. Как только завершается ввод текста, принято сразу возвращаться в обычный режим. Заметьте, что стирание и ввод текста происходит в двух разных режимах. Переход в него из обычного режима:
«Командный режим» — Команды (операции с файлом, поиск и замена, настройка редактора…). Переход в него из обычного режима:
«Режим поиска» — ввод поискового запроса. Переход в него из обычного режима
«Визуальный режим» — режим выделения текста:
Перемещение по файлу
После загрузки Vim, на экране вы увидите часть загруженного вами текстового файла. Загрузившись, Vim находится в «командном режиме» — один из основных режимов. Это значит, что если вы нажмете клавишу (строчная L), вместо появления «l» на месте курсора вы увидите, что курсор сдвинулся на один символ вправо. В командном режиме знаки, набираемые на клавиатуре, используются как команды для Vim, а не как помещаемые в текст символы. Команды перемещения — один из наиболее важных типов команд. Вот некоторые из них:
Ввод текста
Следующие команды переводят редактор в режим ввода:
Удаление и вставка
Ниже перечислены основные комманды удаления и вставки текста:
Отмена изменений
Поиск
Перейти на строку:
Выход
Есть еще пара команд, которые вам необходимо знать:
В этой статье описаны основные возможности, необходимые для работы. Практически во все дистрибутивы Linux входит учебник по работе с редактором, — просто введите в командной строке команду vimtutor.
Справка
Для вызова справки (помощи) о редакторе введите в терминале команду:
Источник