#vim
#vim
Вопрос:
Я использую следующую функцию command для вызова отладчика в Vim:
function! TermDebugArm(executable)
packadd termdebug
let g:termdebugger="arm-none-eabi-gdb"
Termdebug a:executable
endfunction
command! -complete=file -nargs=1 TermDebugArm :call TermDebugArm(<f-args>)
К сожалению, Termdebug
команда получает буквальный аргумент «a:executable», а не фактическое значение, которое оно должно представлять (т. Е. Имя файла, переданное команде, которая вызвала функцию).
Что я делаю не так?
Ответ №1:
Вам нужно использовать :execute
команду для создания команды из строк, которая позволит вам использовать значение a:executable
в качестве литерала:
execute "Termdebug ".a:executable
Или вы можете использовать функцию :execute
, которая будет объединять несколько аргументов с пробелом, поэтому вам не нужна явная конкатенация:
execute "Termdebug" a:executable
Смотрите :help :execute
.