更新:
感谢您澄清您的问题。我将尝试提供更好的答案,包括用于调用交互式调试器的额外功能(除了您要求的 RUN 和 REPL)。
我必须发出免责声明,这不一定是使用 vim 编译器插件的惯用方法。
希望这可以实现您尝试实现的替代方法。
将此添加到您的 .vimrc 文件中:
" Per-file-type definitions for RUN REPL DEBUG
au BufNewFile,BufRead *.m let b:comp = ["octave", "octave", "octave"]
au BufNewFile,BufRead *.py let b:comp = ["python", "python", "python -m pdb"]
au BufNewFile,BufRead *.pl let b:comp = ["perl", "perl", "perl -d"]
au BufNewFile,BufRead *.rb let b:comp = ["ruby", "irb", "ruby -rdebug"]
nmap <Leader>r :exec "!" b:comp[0] " %"<cr>
nmap <Leader>i :exec "!" b:comp[1]<cr>
nmap <Leader>d :exec "!" b:comp[2] " %"<cr>
这些au
命令根据文件扩展名设置缓冲区本地 b:comp 数组的 run/repl/debug 命令。这些nmap
命令映射您建议的击键。
然后你可以使用:
<Leader>r - to run the current buffer
<Leader>i - to start REPL in language corresponding to current buffer
<Leader>d - to start interactive debugger for the current buffer
当然,我确实意识到 perl 没有真正的 REPL(至少不是开箱即用的),并且为了在启动 octave 后调用交互式调试器,您似乎必须调用一个函数,例如dbstop("func") 设置断点,然后调用要调试的函数,依此类推。
底线:这种方法的“最终用户”需要记住,运行/复制/调试支持必然会根据您使用的语言的功能而有所不同。