1

(: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 は以前に使用していたバッファーです! 開いたばかりのバッファーを取得して、その中に何かを入れるにはどうすればよいですか??

4

1 に答える 1

0

あなたが抱えている問題はBufAdd、ウィンドウが作成される前に、そして明らかにVimの現在のバッファが新しく作成されたバッファに設定される前に、イベントが発生することです。

BufWinEnter代わりにイベントを使用するだけです。

au BufWinEnter * call My_dir(expand("<afile>"))

この小さな変更であなたの機能を試してみましたが、うまくいきました。

于 2012-11-28T15:58:12.357 に答える