Vim,重新打开最后关闭的窗口,那是分开的

时间:2011-11-18 14:30:21

标签: vim split

是否可以在vim中重新打开关闭的窗口?这是分开的?

像ctrl + shift + t这样的浏览器选项卡?

5 个答案:

答案 0 :(得分:59)

:vs#将垂直拆分当前窗口并打开备用文件 它非常简单,您无需将其绑定到密钥。

答案 1 :(得分:12)

好问题!我想的是以下内容:

nmap <c-s-t> :vs<bar>:b#<CR>

它可以按你的意愿工作。

答案 2 :(得分:2)

不需要 SHIFT

nmap <c-t> :vs<bar>:b#<CR>

CTRL 一起使用vim,大写或不大写处理字符。

实际上也在之前的答案中, CTRL n CTRL SHIFT N 应该都有效。

答案 3 :(得分:1)

我使用bufmru.vim来实现这一点!

以下命令:ReopenLastTab将重新拆分最后打开的缓冲区:

command ReopenLastTab execute "vsplit" bufname(g:bufmru_bnrs[1])

我使用Vundle安装了bufmru,如下所示,但当然您可以按照自己喜欢的方式安装它。

#.vimrc

" Install bufmru with Vundle
Plugin 'vim-scripts/bufmru.vim'

let g:bufmru_switchkey = "<c-t>"  " I never use this: the default is Space, but I don't need to use it so set it to something I don't care about.

答案 4 :(得分:1)

如果有人需要更通用的东西,我可以使用此功能。

只需将其放入您的.vimrc

" open last closed buffer
function! OpenLastClosed()
    let last_buf = bufname('#')

    if empty(last_buf)
        echo "No recently closed buffer found"
        return
    endif
    let result = input("Open ". last_buf . " in (n)ormal (v)split, (t)ab or (s)plit ? (n/v/t/s) : ")
    if empty(result) || (result !=# 'v' && result !=# 't' && result !=# 's' && result !=# 'n')
        return
    endif
    if result ==# 't'
        execute 'tabnew'
    elseif result ==# 'v'
        execute "vsplit"
    elseif result ==# 's'
        execute "split"
    endif
    execute 'b ' . last_buf
endfunction

nnoremap <C-t> :call OpenLastClosed() <CR>

使用Ctrl+t进行调用,然后选择要打开该文件的位置。