на самом деле это не ответ: если вы уже находитесь в точке, когда вы понимаете, что вам следует автоматизировать это (для сотен функций), вы должны сделать еще один шаг и полностью автоматизировать его: напишите генератор кода insert_your_favourite_language_here
.
Как я могу использовать vim для автоматизации этого ...?
357
flumpb
Я реализую сотни подобных функций на данный момент, которые принимают форму
String name(String arg1, String arg2, String arg3, String arg4) { trampoline("name=&arg1=&arg2=&arg3=&arg4=", name, arg1, arg2, arg3, arg4); }
Сложность в том, что функция может принимать от 2 до 10 аргументов.
Если бы у меня был способ заставить vim запрашивать у меня «Имя функции:», «Количество аргументов:», «Арг1:», я мог бы легко построить эти функции.
Если вам нужна дополнительная информация, чтобы помочь мне помочь, я был бы более чем готов предоставить.
Спасибо
3 ответа на вопрос
1
akira
Я на самом деле думаю сделать это прямо сейчас, но я бы хотел стать более опытным с vim.
flumpb 12 лет назад
0
благие намерения, но для этой задачи может быть неподходящее время
akira 12 лет назад
0
Хороший вопрос, я продолжил и написал генератор (в ..... c ++!) И закончил все методы :). Мне нужно пойти учиться сценариям VIM в свободное время на другой день
flumpb 12 лет назад
0
1
uzsolt
Первая идея: в vim есть for
(Try :help for
).
Вы можете создать простую функцию для этого.
0
Luc Hermitte
Вот ответ, основанный на mu-шаблоне (должно быть легко перенести его на обычный viml :put
).
VimL: " /template//.template VimL: let s:nb_args = INPUT("Number of args: ") VimL: let s:args=map(copy(range(1,s:nb_args)), '"arg".v:val') VimL: let s:formal = join(map(copy(s:args), "'String '.v:val"), ', ') VimL: let s:real = join(s:args, ', ') VimL: let s:format = join(map(copy(s:args), "v:val.'={'.v:val.'}'"), '&') String name(<+s:formal+>) { trampoline("name=&<+s:format+>", name, <+s:real+>); }
Похожие вопросы
-
3
Как я могу "инвертировать" структуру каталогов?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
7
Запустить синергетический клиент при загрузке в Mac OS X
-
-
13
Какие функции Vim вы используете?
-
5
Будьте в курсе обновлений?
-
4
Как синхронизировать скрипты GreaseMonkey между компьютерами?
-
8
Удалить расширенную "вкладку" в Vim одним нажатием клавиши?
-
3
Автоматизированные массовые скриншоты видео
-
1
Могу ли я написать скрипт, который будет автоматически переключать пользователей?
-
6
Хорошее руководство по PowerShell, начало работы с более продвинутым использованием