Как запустить скрипт vim в интерактивном режиме из командной строки vim?

Есть ли способ запустить эти сценарии из командной строки : несколькими нажатиями клавиш?

За последние пару месяцев я создал серию файлов, полных vim-команд для автоматической генерации стандартного кода для моих проектов. Это позволило мне работать быстрее.

Однако единственный способ, которым я знаю, как запускать эти скрипты, — это назначать их комбинациям клавиш в ~/.vimrc. Я могу переназначить только так много клавиш.

Есть ли способ запустить эти сценарии из командной строки : несколькими нажатиями клавиш?

Например, у меня есть скрипт unit_test_cpp.vim, который создает шаблонный файл модульного теста cpp. Я хотел бы иметь возможность печатать

:utc

или какая-то другая простая комбинация букв с простой мнемоникой для запуска этого скрипта в моем открытом файле.


person J. Polfer    schedule 30.07.2010    source источник


Ответы (4)


Вы можете использовать функцию command vim. В файле unit_test_cpp.vim вы должны добавить что-то вроде этого:

command Utc call CreateUnitTests()

Теперь, когда вы наберете :Utc, он вызовет вашу функцию. Единственным ограничением является то, что ваша команда должна начинаться с заглавной буквы.

person richq    schedule 30.07.2010

Откройте Vim и введите следующее:

:source /path/to/vim/file/name.vim

Если вы сейчас редактируете этот файл, вы также можете ввести:

:w <ENTER>
:source % <ENTER>

Знак процента (%) означает путь к текущему открытому файлу.

person HVNSweeting    schedule 10.01.2012

Скрипт или функция? Если это функция, попробуйте

:call FunctionName() 
person Doon    schedule 30.07.2010
comment
Это файлы с командами vim. Я могу запустить их с помощью команды so. - person J. Polfer; 30.07.2010
comment
Каждая из команд so обернута функцией в .vimrc. Итак, могу ли я использовать метод :call FunctionName() для запуска этих функций из .vimrc? - person J. Polfer; 30.07.2010
comment
в основном. если бы у вас была функция! Конечная функция источника Foo() 'foo.vim', которую вы могли бы: вызвать Foo(), и она должна стать источником foo.vim, или вы можете сопоставить команду, как предлагает rq ниже, чтобы избежать: call... - person Doon; 31.07.2010

:run file.vim

:run похоже на :source, но :run путь не нужен. Он ищет runtimepath.

Линукс runtimepath:

$HOME/.vim,
$VIM/vimfiles,
$VIMRUNTIME,
$VIM/vimfiles/after,
$HOME/.vim/after
person Javier OP    schedule 14.05.2015