如何在vimscript中移动缓冲区位置

时间:2014-11-03 21:22:34

标签: vim autocmd

我正在尝试使用autocmd来检查文件打开时是否存在某个文件。如果该文件存在,我想做vsplit,并将vsplit缓冲区移到右侧。类似的东西:

function! CheckForFile()
    let file=expand("%:p:h")."/.".expand("%:t").".x"
    if filereadable(file)
        execute "vs " . file
        <C-w>L
   endif
endfunction
autocmd BufReadPost * call CheckForFile()

我无法弄清楚如何做<C-w>L部分。我得到的只是语法错误。

如何在CheckForFile函数中移动缓冲区?

1 个答案:

答案 0 :(得分:3)

<C-w>L

是正常模式命令;因此,它不能在函数的上下文中以的形式使用。正如您在<C-w>末尾所看到的,所有wincmd {char}正常模式命令的等效ex命令均为:help window-move-cursor

所以正确的表示法是:

wincmd L