在vim中,我想做类似的事情
function! ModuleFile()
let $module = input("Module of file> ")
:e **/${module}_
endfunction
map <Leader>e :call ModuleFile()<CR>
我期望的是,例如,如果我输入模块“ABC”,我会在vim中获得这个命令行:
:e **/ABC_
然后输入新文本,比如“name_of_file”,就会得到我:
:e **/ABC_name_of_file
最后按Enter键将执行该命令。这一点是为了能够获得标签完成。
答案 0 :(得分:2)
vim脚本中不需要使用sigils,${...}
或$var
用于环境变量。
function! ModuleFile()
let module = input("Module of file> ")
let name = input("Search pattern> ")
execute 'args **/' . module . '_' . name
endfunction
map <Leader>e :call ModuleFile()<CR>
评论后你想要的可能是:
map <leader>e :args **/<c-r>=input("Module of file: ") . '_' . input("Search pattern: ")<cr>