当我打开缓冲区时(通过:tabnew或任何其他方式),如果有的话 没有与缓冲区关联的文件名,我想插入 一些默认文本(最近打开的文件)。
au BufAdd * call My_dir(expand("<afile>"))
function! My_dir(fname)
python << EOF
import vim
blah = vim.eval('a:fname')
if str(blah) == 'None':
cb = vim.current.buffer
cb.append("yuck")
EOF
endfunction
麻烦的是,fname将是'None',但current.buffer是 我以前的缓冲区!我如何获得缓冲区 打开所以我可以把东西粘在里面吗?
答案 0 :(得分:0)
您遇到的问题是在创建窗口之前触发了BufAdd
事件,显然是在Vim的当前缓冲区设置为新创建的缓冲区之前。
您需要做的只是使用BufWinEnter
事件:
au BufWinEnter * call My_dir(expand("<afile>"))
我尝试了这个小改动的功能,但它确实有效。