我正在努力学习如何编写vim-plugin,并且想出最简单的方法来编写我自己编写的编译函数,以便用vim-plugin启动并最终完成以下操作:
function! PreprocessingCode(commands)
" Get the bytecode.
try
let bytecode = system(a:commands . " -E -o " . bufname("%") . " 2>&1")
catch
echo v:exception
endtry
" Check that buffer already exist
if bufwinnr('__Bytecode__') > 0
"Code to replace the buffer.
setlocal filetype=objectcode
setlocal buftype=nofile
call append(0, split(bytecode, '\v\n'))
else
" Open a new split and set it up.
vsplit __Bytecode__
normal! ggdG
setlocal filetype=objectcode
setlocal buftype=nofile
" Insert the bytecode.
call append(0, split(bytecode, '\v\n'))
endif
endfunction
nnoremap <buffer> <localleader>b :call PreprocessingCode("g++")<cr>
主要问题是我想使用__Bytecode__
缓冲区。因此,如果缓冲区已经打开,那么函数应该重用现有缓冲区,这样如果我多次按b,它就不应该通过vsplit打开多个窗口堆栈。
来到这里。不知道如何达到预期的效果? 有什么想法吗? 感谢。