8 Vim Съвети и трикове, които ще ви направят Pro потребител

Кратко : В тази статия ще ви покажа някои от любимите ми трикове на Vim с практически примери. Ако не използвате Vim, тези съвети може да не дадат основания за използване на Vim, но ако го използвате вече, определено ще станете по-добър потребител на Vim.

Дори и наскоро започнах да използвам Atom все повече и повече, едва ли мога да прекарам един ден, без да използвам Vim. Не защото съм принуден. Но защото се чувствам толкова удобно.

Да, удобно . Много странна дума, когато говорим за Vi или някой от неговите клони, нали? Съгласен съм, със сигурност не е най- интуитивен текстов редактор.

Но с някаква практика и чрез обучение малко на паметта, можете да изпълнявате очевидно сложни задачи за редактиране само с няколко натискания на клавиши. Нещо, което никога не съм откривал с никакви други текстови редактори за Linux.

Но вместо да напиша още едно-друго-ви-въведение, днес избрах да ви позволя да докоснете истинската сила зад Vi (m), като ви представя няколко трика, които наистина използвам - и ми липсват повечето, ако не и всички други редактори. Няма да ви дам пълното обяснение на всички тези трикове, но аз силно ви препоръчвам да опитате и да експериментирате с тях, докато не разберете как работят.

Ако сте харесали Vim и искате да го овладеете напълно, можете също да се запишете в онлайн Vim курса, осигурен от Linux Training Academy.

8 Вим трикове, за да извлекат повече от това

Позволете ми да повторя: настоятелно ви препоръчвам сами да опитате тези примери. За съжаление, WordPress не е необходимо да свърши добра работа, за да запази точното съдържание на моите примери и команди - особено по отношение на празни редове или кавички. Така че, за ваше удобство, можете да изтеглите използваните тук проби от връзката по-долу:

Изтеглете Vim примери за практика

Всеки пример идва с оригиналния текст (.orig) и Bash скрипт (.sh), който извиква Vim с командата, илюстрирана в тази статия.

1. Промяна на капитализацията във Vim

Само аз използвам ли тази функция? Или това е, защото съм обречен да работя с хора, които вярват, че ПИСАНЕТО НА ВСИЧКИ КАПИНИ е ХОЛ?

Във всеки случай, когато програмирате, когато добавяте известие за авторски права или дори след копиране, не е необичайно да променяте главни букви. В това отношение Вим е много по-развит от първоначалния Vi. И всеки ден благославям Брам Муленаар за великото му дело:

Оригинален текст
(c) от

Използването на строителните работи е разрешено, при условие че този уред е запазен с работите, така че всяко лице, което използва произведенията, е уведомено за този инструмент.

Отказ от отговорност: произведенията са без гаранция.

команди
~Случай на превключване
: $ норма GUUПреобразуване на последния ред в главни букви {не е във Vi}
Променен текст
(C) чрез

Използването на строителните работи е разрешено, при условие че този уред е запазен с работите, така че всяко лице, което използва произведенията, е уведомено за този инструмент.

ОТКАЗ ОТ ОТГОВОРНОСТ: РАБОТИТЕ СА БЕЗ ГАРАНЦИИ.

2. Направете търсене и заменете съветите

Този, който използвам всеки ден. Защо все още не е налице във всички текстови редактори? Разбира се, повечето редактори имат някаква функция за замяна на търсенето. Но колко наистина имат силата на регрекс и модели на заместване? Разбира се, това е по-сложно за овладяване, отколкото базовите замествания на низове . Но аз просто не можех да живея без тази функция. В този момент понякога виждам как копирам / поставям от някои графични интерфейси в терминал, който изпълнява sed и обратно. Но Vi има това, което е вградено от 40 години или така…

Оригинален текст
Има ли момче шанс да рисува черна ограда всеки ден? Това постави нещо в нова светлина. Бен Роджърс спря да изяжда ябълката си. Том метна четката си с четка назад и напред, отстъпи назад, за да забележи ефекта - добавяше докосване тук и там - отново критикуваше ефекта - Бен гледаше всяко движение и все повече се интересуваше, все повече се поглъщаше.
команди
: S / черно / бяло /Замяна на първото появяване на низ „черно“ с „бял“
: s / Бен (Роджърс) @! / Бен Роджърс / гЗаменяйте всяка поява на низа 'Ben' от 'Ben Rogers', освен когато 'Rogers' вече присъства
:с/.*/

\ R '\ R /

Увийте линията между

и

: -1 S / - / \ - / гЗаменяйте всяко появяване на низ '-' с '-' в предходния ред
Променен текст

Дали едно момче има шанс всеки ден да рисува бяла ограда? Това постави нещо в нова светлина. Бен Роджърс спря да изяжда ябълката си. Том преметна четката си назад и напред - отстъпи назад, за да забележи ефекта - добавяше докосване тук и там - отново критикуваше ефекта - Бен Роджърс гледаше всеки ход и все повече се интересуваше, все повече се поглъщаше.

Онези огради ме споменават за ViM…

3. Преместване на нещата в момента

Да, copy-paste и drag-n-drop са чудесни инструменти. Но понякога е прекалено скучно да прегледате целия документ, за да откриете къде да поставите текста, след което превъртете в обратна посока, за да върнете курсора обратно към първоначалното му местоположение.

Оригинален текст
Професионалисти:

* Бърз

* Мощно

* Надежден

* Не са удобни за потребителя:

* Преносим

* Пристрастяване

команди
/ Захранване /Преминете към първия ред, съдържащ низ "Power"
DDPРазменете текущата линия със следващата
: / Лесен / m $Преместете следващия ред, съдържащ низа 'user-friendly' до края на файла
д;Върнете курсора на предишната позиция
: / Минуси / + един м-2Преместете два реда нагоре по ред след „Cons“
Променен текст
Професионалисти:

* Бърз

* Надежден

* Мощно

* Преносими минуси:

* Пристрастяване

* Не е удобен за потребителя

4. Прилагане на команди на адресен диапазон

Редакторите на GUI могат да ви позволят да приложите някои команди върху целия файл или само върху текущия избор. Понякога имаме повече опции, като преди или след курсора. Но Vi (m) позволява много по-изразително описание на обхвата, на който трябва да се приложи дадена команда:

Оригинален текст

Име на писалкаИстинско име
Марк ТвенСамуел Клеменс
Луис КаролЧарлз Доджсън
Ричард БахманСтивън Кинг

Много писатели са избрали да пишат с име.

команди
: / /, // г / ^ $ / г
Изтриване на празни редове между съдържащи линии и
: / ^ $ /; / ^ $ / - 1m1Преместете текста между следващите два празни реда след ред 1 (забележете използването на точка и запетая)
: 2, $ - 1>Повишаване на вдлъбнатината на текста на линия 2 и предпоследната линия
Променен текст

Много писатели са избрали да пишат с име.

Име на писалкаИстинско име
Марк ТвенСамуел Клеменс
Луис КаролЧарлз Доджсън
Ричард БахманСтивън Кинг

5. Примери за команди на Vim

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

Оригинален текст
tee> (echo $ (wc -l) най-новите данни) << EOT

Авг, 2016 г. 2.11%

Сеп, 2016 2.23%

Окт, 2016 2.18%

Ноември, 2016 2.31%

Дек, 2016 2.21%

Яну, 2017 2.27%

Mar, 2016 1.78%

Apr, 2016 1.65%

Май 2016 г. 1.79%

Юни, 2016 2.02%

Юли, 2016 2.33%

Пазарен дял на EOTLinux на работния плот

източник: //www.netmarketshare.com

команди
: 2, / ^ EOT / -1! Sort -k2n -k1MСортиране на данните по година и месец
: $ R! дата "+ Данните са получени \ tДобавете изхода на командата за date в края на файла
: 1, / ^ EOT / БашИзпълнете вградения скрипт и го заменете с резултата
Променен текст
Mar, 2016 1.78%

Apr, 2016 1.65%

Май 2016 г. 1.79%

Юни, 2016 2.02%

Юли, 2016 2.33%

Авг, 2016 г. 2.11%

Сеп, 2016 2.23%

Окт, 2016 2.18%

Ноември, 2016 2.31%

Дек, 2016 2.21%

Яну, 2017 2.27%

11 най-новите данни Linux Market Share на Desktop

източник: //www.netmarketshare.com

Получените данни са Чет 09 Feb 2017 23:07:34 PM CET

6. Въвеждане на по-малко

Когато пишете официална документация, винаги има някои необичайно дълги и сложни термини, които трябва да повторите. Това може да бъде име на марка или продукт. Някои места. Забележка за авторски права. И така нататък. Очевидно е, че всеки екземпляр от тези големи думи трябва да бъде написан правилно и да използва точно същата капитализация и пунктуация. Абсолютната характеристика на Vim е задължителна.

команди
: ab apple Apple Computer, Inc.Въведете ново съкращение
азПревключете в режим на вмъкване
ябълка е основана през 1977 година.

Логото на ябълката е ябълка ^ V.

Въведеният текст

(^ V означава контрол-V )

резултат
Apple Computer, Inc. е основана през 1977 година.

Логото на Apple Computer, Inc. е ябълка.

7. Получаване на помощ във Vim

Добре, има Intenet. Но хората, които все още използват човека като мен, ще оценят инлайн помощта. Можете да получите помощ по теми. Или по команда. Винаги е полезно, когато не си спомняте точния синтаксис или опции за Vim команди - или ако не сте сигурни, че командата ви е нужна, е нормална команда или команда ex :.

Опитайте тази!
:помощ помощ
: помощ m
: help: m

8. Сценарии във Вим

Когато използвате Vi (m), основно използвате визуален преден край на друг основен редактор, наречен ex . Може би забелязахте колко команди в горните примери започва с двоеточие (:)? Това е, защото това са бивши команди. И това е още едно предимство на Vi (m) върху толкова много текстови редактори: не само, че можете да го използвате интерактивно - но можете и да го скриптирате .

Защо някой би искал да направи това? Говорейки за себе си, намирам, че това е чудесен начин за автоматизиране на обработката на текст. Освен това можете да видите типичен пример направо от моя твърд диск.

Вероятно има някои загадъчни команди в този скрипт, но мога да ви кажа, че това ще премахне всеки (в крайна сметка присъстващ) хедър от скрипт и ще го замени с друг, прочетен от файла NEW.HEADER - добавяне на # преди всяка добавена линия, Няма съмнение, че бих могъл да направя това, като използвам други инструменти, отколкото ех. Наистина, това беше дори предмет на една от предишните ни Bash Challenge. Но бившият определено е опция.

Колко загадъчно…
ex some.script << EOT

0pu_

1, / ^ [#] / - 1d

0r NEW.HEADER

1, .s / ^ / # /

WQ

EOT

Както казах първоначално, тази статия беше абсолютно не урок, нито въведение във Vi (m). Само някои Vim съвети, за да ви покаже защо някой все още може да хареса този редактор, въпреки всички други модерни редактори на кодове за Linux, които са на разположение днес. В известен смисъл споделих с вас някои от любимите ми заклинания. Но в голямата традиция на магьосничеството не разкрих как точно работят.

Така че, скъпи чираци, не се колебайте да използвате раздела за коментари по-долу, за да споделите вашите собствени заклинания или контраарми - или, ако смеете, да обясните тези трикове!

Препоръчано

Как да се определи десен клик Touchpad не работи на Ubuntu 18.04
2019
Unity Gaming Engine пристига в Linux
2019
Как да използвате разширенията на GNOME Shell
2019