Используйте последние аргументы из команды vim: make - PullRequest
3 голосов
/ 17 февраля 2010

У меня есть одно ключевое сопоставление для создания моего проекта.

noremap <F5> :make<CR>

Это прекрасно работает. Однако я иногда строю только часть проекта. В этом случае я использую команду :make smaller_part, чтобы построить только этот кусок. Я также хотел бы, чтобы для этого варианта использования также было назначено отображение одной клавиши.

noremap <S-F5> :make last_arguments()<CR>

Возможно ли это? Функция last_arguments() не требуется. Просто я представляю, как будет выглядеть решение. Важной частью является то, что я нажимаю одну клавишу, и она запускается: make с аргументами, которые я дал ей в прошлый раз.

Ответы [ 3 ]

7 голосов
/ 17 февраля 2010

Я использую

map <f2> :wa<cr>:Make <Up>

запустить make с последними аргументами кстати

command -nargs=* Make write | make <args> | cwindow 6

это марка.

1 голос
/ 17 февраля 2010

Что если вы включите команду: make в несколько собственных команд? Одна команда запускает make с тем аргументом, который вы указали (возможно, ни с одним). Он также хранит аргумент в переменной. Затем вы сопоставляете эту команду с . Другая команда запускает make с аргументом, хранящимся в вашей переменной (опять же, если есть). Вы отображаете эту команду на . Я думаю, что команда vim для определения ваших собственных команд - это Command.

1 голос
/ 17 февраля 2010

Я не знаю, можете ли вы программно извлечь последнюю строку из истории команд или конкретные аргументы для нее. Я ожидаю, что вы можете, но я не знаю, как это сделать не по месту.

Но какие здесь ограничения? Если вы позволите начальному вызову make вызвать функцию, которую вы определили, скажем, :MyMake(smaller_part), тогда это может сохранить меньшую часть в переменной, и вы можете определить функцию Remake(), которая будет вызывать make на цели, сохраненной в этой переменной.

Это решение приемлемо для вас? Или исходный вызов должен иметь вид :make smaller_part?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...