Необхідність навчитися користуватися текстовими редакторами в Linux безперечна. Кожен системний адміністратор та інженер щодня мають справу з файлами конфігурації (звичайний текст), і в більшості випадків це робиться виключно за допомогою одного або кількох інструментів з інтерфейсу командного рядка (наприклад, нано, vim, або emacs).
Поки нано можливо, більше підходить для нових користувачів, vim або emacs є інструментом вибору для більш досвідчених користувачів завдяки його розширеним можливостям.
Але є ще одна причина, чому вивчення того, як користуватися одним із цих текстових редакторів, має бути для вас головним пріоритетом: ви можете або натиснути на сервер, який працює лише з CLI, або запустити у проблему з менеджером робочого столу на вашому GUI-сервері або настільному комп'ютері, і єдиним ресурсом для його перевірки та редагування конфігураційних файлів є команда лінія.
Між цією статтею та наступною з цієї серії з 2 статей ми розглянемо
15 порад і хитрощів для покращення свого vim навички. Передбачається, що ви вже знайомі з цим текстовим редактором. Якщо ні, зробіть собі послугу і ознайомтесь з vim, перш ніж продовжити: можливо, ви захочете звернутися до Як використовувати vi/vim як повнотекстовий редактор за дуже докладний посібник щодо початку роботи з vim.Частина 2: 8 цікавих порад та підказок редактора "Vi/Vim"
Після запуску vim натисніть F1 або використовувати : h в екс режим, щоб увійти в онлайн -довідку. Щоб перейти до певного розділу або теми, наведіть на нього курсор, а потім натисніть Ctrl+]
(Ctrl, потім заключна квадратна дужка).
Після завершення натисніть Ctrl+t
для повернення до попереднього екрана. Крім того, ви можете шукати певну тему або команду : h
.
Наприклад,
: h x
відобразить довідку для x(видалити) команда:
та
: h замінник.
підніме довідку щодо замінник команда (наша остання порада в цій статті).
Якщо ви виявите, що редагуєте файл, розмір якого перевищує один екран, ви оціните функціональні можливості, які надає позначки. Ви можете думати про знак у vim як про закладку - як тільки ви його десь розмістите, ви зможете повернутися до нього швидко і легко. Припустимо, ви редагуєте файл 300 слів конфігураційний файл і з якихось причин потрібно неодноразово перемикатися між рядками 30 та 150 наприклад.
Спочатку перейдіть до рядка #30 шляхом введення :30 в екс режим, потім поверніться в командний режим і натисніть ма (м, потім а), щоб створити позначку з назвою "А" в лінію 30.
Потім перейдіть до рядка 250 (з :250 у колишньому режимі) і натисніть `а
(значить, назад а) повернутися до позначки а в лінію 30. Ви можете використовувати малі та великі літери для ідентифікації знаків у vim (тепер повторіть процес, щоб створити позначку з назвою А. в лінію #250).
Ви можете переглянути свої позначки за допомогою
: позначки aA.
Як бачите, на кожну позначку посилається певна позиція рядка / стовпця у файлі, а не лише рядок.
Припустимо, ви редагуєте сценарій оболонки і розумієте, що попередній розробник був досить жалюгідним, коли справа доходить до відступів. Давайте подивимося, як це можна виправити за допомогою кількох команд vim.
Спочатку виберіть візуальний блок, розмістивши курсор на початку блоку, а потім натисніть Ctrl+v (Ctrl, потім v).
Потім натисніть кнопку .
(крапка) команда повторити будь -який відступ. Вибраний блок переміститься праворуч або ліворуч лише одним натисканням клавіші.
Ще один класичний приклад використання крапка команда - це коли потрібно видалити ряд слів: наведіть курсор на перше слово, яке потрібно видалити, а потім натисніть dw. Щоб продовжити видалення наступних слів, просто натисніть .
(коротше і легше, ніж повторювати dw декілька разів).
Якщо розкладка клавіатури не дозволяє легко вставляти у файл спеціальні символи Юнікоду, або якщо ви її знайдете себе перед сервером з іншими мовними налаштуваннями, ніж той, до якого ви звикли, цей трюк з’явиться під рукою.
Для цього натисніть Ctrl+v у режимі вставки, за яким слідує буква у та шістнадцятковий числовий код для символу, який потрібно вставити. Ви можете перевірити Діаграми Unicode для переліку спеціальних символів та відповідних їм цифрових кодів.
Наприклад,
Ctrl+v, а потім | повертає |
u0040 | @ |
u00B5 | μ |
u20AC | € |
Бувають моменти, коли вам потрібно буде вставити вихідні дані зовнішніх команд безпосередньо у файл, що редагується за допомогою vim. Наприклад, я часто створюю змінну з іменем DIR у моїх сценаріях зберігати абсолютний шлях до каталогу, де знаходиться скрипт, щоб потім використовувати його у сценарії. Для цього я використовую:
: r! pwd
в екс режим. Таким чином, вставляється поточний робочий каталог.
Інший приклад: якщо вам потрібно використати шлюз за замовчуванням десь у сценарії, ви можете легко вставити його у поточний файл, не виходячи з vim наступним чином:
:! r ip маршрутне шоу | grep за замовчуванням | вирізати -f 3 -d ""
Якщо вам потрібно додати вміст окремого файлу до того, який ви зараз редагуєте, синтаксис подібний до попередньої підказки. Просто опустіть знак оклику, і ви готові.
Наприклад, для копіювання вмісту /etc/passwd:
: r /etc /passwd.
Можливо, ця порада стане вам у пригоді, коли вам потрібно змінити файли конфігурації, але ви хочете зберегти оригінальні, щоб повернутися до "заводські налаштування" так би мовити.
Правдива історія. Одного разу під час іспиту мене попросили відкрити великий текстовий файл, що містить випадкові дані. Доручене завдання полягало в заміні кожного входження слова Глобус з Земля (так, я ще пам’ятаю точні слова). Для тих, хто знайомий з sed, це пролунає в дзвінок екс режим, тип:
:%s/старий/новий/g.
де старий - це шаблон для пошуку і новий це рядок, який його замінить.
У вищеописаному випадку я використав:
:%s/Глобус/Земля/g.
щоб виконати роботу.
То як щодо того, щоб ви хотіли отримати запит перед тим, як робити заміни? Легко. Просто додайте a c в кінці наведеної вище команди, наступним чином:
:%s/старий/новий/gc.
Виникнення шаблону буде виділено, і вас запитають, чи хочете ви замінити його новим рядком:
:%s/gacanepa/me/gc.
де
У цій статті ми почали розглядати деякі vim поради та хитрощі щоб додати до ваших навичок редагування тексту. Ви, напевно, подумаєте про декілька інших, тому, будь ласка, поділіться ними, використовуючи форму нижче, і я розгляну їх у наступній і останній статті цієї серії vim. Я з нетерпінням чекаю вашого повідомлення.