Vim търсене и замяна

Vim Search Replace



Vim е усъвършенстван и популярен текстов редактор, който се предлага предварително инсталиран в повечето дистрибуции на Linux. Това е текстов редактор, базиран на командния ред, който се използва най-вече в операционни системи, които не са базирани на GUI. Той е силно конфигуриран и идва с много функции. Важен момент по отношение на Vim е, че той е силно оптимизиран за повторение.

В тази статия ще обясним една от най -полезните му функции, която е търсене и замяна. С няколко конфигурации можете да търсите всичко, което искате с невероятна скорост и с по -фина детайлност.







Метод #1 Намерете и заменете едно събитие наведнъж (с помощта на командата наклонена черта и точка)

Най -простият начин за търсене и замяна на дума във Vim е чрез командата наклонена черта и точка. Наклонена черта (/) може да се използва за търсене на дума, докато точката (.) Може да се използва за замяна на тази дума.



Следвайте следните прости стъпки, за да търсите и замените всяка дума в редактора на Vim:



  • Отворете файла във Vim
  • Натиснете наклонена черта ( /) заедно с думата за търсене като / search_term и натиснете Enter. Той ще маркира избраната дума.
  • След това натиснете клавиша cgn за да замените маркираната дума и въведете replace_term
  • Върнете се в нормален режим. След това натиснете n, за да преминете към следващото появяване на думата за търсене.
  • След това натиснете точката (.), Ако искате да замените следващото събитие със същия replace_term, в противен случай отново натиснете клавиша n, за да преминете към следващото събитие.

Това е най -бързият и най -добрият метод за основно търсене и замества функциите, тъй като включва само няколко натискания на клавиши и по -малко смущения в текущата ви работа. Въпреки това, за търсене на дума, която се среща твърде много пъти, тя ще се превърне в повтаряща се и отнемаща време задача.





С Vim има друг по -добър начин да се избегне тази повтаряща се задача, който използва командата замяна.

Метод #2 Намерете и заменете с помощта на командата Замяна

Командата заместител може да се използва за извършване на основно до разширено търсене и замяна на функции с една команда. Синтаксисът на тази команда е:



$/<search_term> /<replace_term> /опция

Обърнете внимание, че трябва да въведете тази команда в нормален режим.

Където

  • S: означава заместител
  • search_term: думата, която искате да търсите и замените
  • replace_term: думата, с която искате да го замените
  • Опция: c (за потвърждение), g (заменете всички събития в един ред), i (за игнориране на регистъра)

Търсене и замяна

За да извършите основно търсене и замяна с помощта на командата за заместване, използвайте следния синтаксис:

:%с/<search_term> /<replace_term> /g

Тази команда ще замени всички екземпляри на search_term с replace_term.

Например, това е нашият примерен текст:

Ubuntu е една от най -използваните Linux операционни системи. Ubuntu включва хиляди полезни програми. С командния ред на Ubuntu можете да изпълнявате почти всякакъв вид задачи.

За да замените всяко появяване на Ubuntu с Debian в следния текст, ще се използва следната команда:

:%с/Ubuntu/Debian/g

Търсене и замяна в един ред

За да търсите и замените появата на дума само в един ред вместо в целия файл, използвайте следния синтаксис:

/<search_term> /replace_term/g

Например, за да замените появата на Ubuntu с Debian в горния примерен текст, ще се използва следната команда без символа %:

/Ubuntu/Debian/g

Търсене и замяна с потвърждение

Ако искате да бъдете помолени за потвърждение, преди да замените думата за търсене, използвайте c в края на командата за търсене, както следва:

/<search_term> /<replace_term> /gc

Горната команда ще иска потвърждение преди всяка подмяна (Въведете y за да, докато n за не).

Търсене и замяна без регистрация

Когато извършвате търсене и замяна във Vim, по подразбиране той е чувствителен към малки и големи букви. Можете да извършите нечувствително към регистър търсене, като добавите i в края на командата, както следва:

/<search_term> /<replace_term> /давам

Например, за да търсите термина Ubuntu независимо от неговия регистър (UBUNTU, Ubuntu, ubuntu, uBuntu), ще се използва следната команда:

/ubuntu/debian/давам

Търсете и заменете цялата дума

По подразбиране заместващата команда търси всяко съвпадение, независимо дали е частично или пълно. За да съответства на точния search_term и след това да го замени с replace_term, заградете _term за търсене в.

Например, в някои документи искате да потърсите и замените точната дума от мен. В този случай ще се използва следната команда:

/<Вие> /Аз/

Той ще намери думата ти и ще я замени с мен. Това обаче няма да замени думите като вашите.

Търсете и заменяйте думи сред определени редове

За да търсите дума сред отделните редове, вместо само на един ред или целия файл, може да се използва следният синтаксис:

:<start_line>,<end_line>с/<search_term> /<replace_term> /g

Например, за да търсите и замените появата на Ubuntu с Debian от редове, вариращи от 3 до 8 в някой файл, командата ще бъде:

:1, 10s/ubuntu/debian/g

За да търсите и замените появата на дума от текущия ред към следващия x брой редове, ще се използва следният синтаксис:

/search_term/replace_term/g x

По същия начин, за да търсите и замените появата на дума от текущия ред до последния ред: ще се използва следният синтаксис:

:.,$ s/search_term/replace_term/g

ЗАКЛЮЧЕНИЕ

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