Як додати команду в редактор vim?


86

Якщо припустимо, мій файл вихідного коду - "foo.c". Під час редагування та налагодження я завжди виконую цю команду: -

:! gcc -g foo.c -o foo; gdb foo

Чи можу я додати спеціальну команду до Vim таким чином, що якщо я введіть ": налагодження", то наведена вище команда виконується? Як я цього досягти?

Відповіді:


102

Так. Документація Vim, розділ 40.2, відображення командного рядка :

Редактор Vim дозволяє визначати власні команди. Ви виконуєте ці команди так само, як і будь-яку іншу команду режиму командного рядка. Щоб визначити команду, використовуйте команду ": command" так:

: команда DeleteFirst 1delete

Тепер, коли ви виконуєте команду ": DeleteFirst" Vim Executes ": 1delete", яка видаляє перший рядок.

Примітка. Команди, визначені користувачем, повинні починатися з великої літери. Ви не можете використовувати ": X", ": Далі" та ": Друк". Підкреслення не можна використовувати! Можна використовувати цифри, але це не рекомендується.

Поставте цей рядок у свою чергу ~/.vimrc(за вирахуванням первісної :), і він визначатиметься кожного разу, коли ви починаєте vim. Крім того, використовуйте %:tдля посилання на файл, що редагується (запис ! gcc %:tзамінюється на ! gcc foo.c).

Якщо ви хочете, щоб це було визначено лише для одного файлу або для певних файлів, ви хочете створити автокоманду.


4
якщо ви замінюєте існуючу команду, вам потрібно скористатися command!.
фіат

14

Vim вже має підтримку для Makefiles (: make). Якщо ви створите його для свого джерела, ви можете вказати в ньому, що ви хочете зробити. Також через ctags Vim зможе повторити всі помилки, виявлені під час компіляції.


5

Додайте визначену користувачем команду редактора vi:

Це зробить так, що коли користувач набирає :Legendв звичайному режимі, під курсором додається блок тексту.

Крок 1. Поставте цей рядок у файл під назвою ~ / legend_header.txt`

this text will be added

Крок 2: Введіть цю команду у ваш файл ~ / .vimrc (якщо файл не існує, створіть його):

"The following command puts the contents of ~/legend_header.txt 
"under the cursor when the user types ":Legend" in normal mode.
command Legend :r ~/legend_header.txt

Крок 3: Перезапустіть vi, щоб зміни набрали чинності. Ви закінчили.

Перевірте це

Крок 1: Відкрийте новий файл in vi. Будьте у стандартному режимі in vi за замовчуванням. Тип:Legend

Крок 2: Вміст ~/legend_header.txtмає бути додано , де знаходиться курсор.


0

Я використовую цю команду у своєму .vimrc для компіляції та виконання коду c:

:command Gcc !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; chmod o+x $1; $1

, але для своїх потреб ви можете поставити:

:command Gdb !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; gdb $1

Ви можете бути впевнені, що ім'я файлу exec буде ім'ям джерела без розширення .c

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.