【问题标题】:Is it possible to modify ctrl-o behaviour in VIM?是否可以在 VIM 中修改 ctrl-o 行为?
【发布时间】:2013-07-13 10:32:10
【问题描述】:
我正在使用带有 VIM 的 minibufexplorer 插件,它在我的窗口顶部显示缓冲区。默认 Ctrl+O(使用 jumplist 跳转)在单独的缓冲区中打开文件,因此在多次跳转后显示的缓冲区计数会变得非常大。是否可以修改 Ctrl+O 行为,以便打开新缓冲区并关闭前一个缓冲区?我曾尝试使用 vimscript 对其进行编程,但没有找到任何与 jumplist 交互的 API。如果我用自己的函数替换 Ctrl+O 我不知道如何调用原始实现来进行实际跳转:(。有什么帮助吗?
【问题讨论】:
标签:
vim
keyboard-shortcuts
【解决方案1】:
您可以使用:normal! 来调用原始实现,如下所示:
function s:CtrlO(count1)
let buf=bufnr('%')
execute 'normal!' a:count1 "\<C-o>"
if bufnr('%')!=buf
execute 'bwipeout' buf
endif
endfunction
nnoremap <silent> <C-o> :<C-u>call <SID>CtrlO(v:count1)<CR>