Лого на страниците (малко).

Заглавна страница > Четива > Четива за глотометрията > cream в режим „expert“ > 16. Външни програми и филтри

 

Александър Иванов

cream в режим „expert“

16. Външни програми и филтри

В командния ред на vim (тоест, в режим „експерт“) може да изпълните всяка команда към операционната система. Достатъчно е да въведете удивителен знак (!), преди да напишете командата, например

:!ls -l

в Linux ще покаже списък на файловете (е, в Windows командата е dir, а не ls).

Ако преди удивителната поставите r, резултатът от командата ще бъде вмъкнат в текста от курсора надолу, например

:r!ls

В този случай точката може да се използва вместо r —

:.! ls

Vim дава възможност да се прилагат към текста, който редактирате, външните програми филтри. Например:

:%!sort

ще подреди (сортира) всички редове във вашия текст по азбучен ред (е, не винаги е така, както са свикнали филолозите).

Разбира се, външните програми филтри работят с файла, записан на диска, а не с текста, който е в паметта (буфера) на редактора. От това следва, че преди да се обърнете към програма филтър, задължително трябва да запишете текста. Ако той не е записан, програмата филтър „увисва“ и трябва да я прекъснете с Ctrl+C. Текстът в буфера (в паметта) на vim не се променя. (Впрочем, във версия 7.3 на vim/gvim записът на текста се извършва вече автоматично.)

Символът % определя, че действието на командата ще се отнася за всички редове в текста. Може да обработите с филтъра и част от текста, Например

:5,10!sort

ще подреди само текста от петия до десетия ред включително.

Не забравяйте да дадете инструкция каква част от текста да се обработва преди символа !; иначе програмата филтър се опитва да обработи само реда, където е курсорът, и може пак да „увисне“.

Външна команда може да се приложи и към маркиран текст. След като сте маркирали, например, от пети до десети ред, просто натиснете !. В командния ред се появява :'<,'>! и курсорът застава след ! Напишете си командата — тя ще се отнася само до маркирания текст.

Командите '< и '> определят началото и края на последния маркиран текст, тоест маркираният текст се определя като област на действие (range) на командата.

Освен програмата филтър sort, за филолога са полезни още и uniq, rev, nl и още няколко. Наличието на много такива програми филтри в Linux ме кара да го препоръчвам на филолозите — те спестяват много труд и неудобства.

За подробностите при използване на външните програми, поглеждайте в справочните страници на съответната програма или търсете информация в интернет.

Впрочем, от вариант 7 на vim в редактора има вградена команда sort и тя може да се използва вместо външната програма филтър. Само че резултатите може да бъдат различни — експериментирайте и с двата варианта на sort и преценете кой повече ви харесва. Различията се дължат на това, че системната програма sort използва настройките на операционната система, а вградената команда sort използва настройките на vim/gvim.

И накрая — най-хубавото: Undo работи и след като сте използвали външна програма.

Бе аз нали вече казах — vim е страхотен редактор!

Страница: А. И.
Електронна поща
Дата на публикуване: 15.V.2014
Последна редакция: 27.IV.2023
Съобразено с
html5/css3