是否可以在vim中重新打开关闭的窗口?这是分开的?
像ctrl + shift + t这样的浏览器选项卡?
答案 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
进行调用,然后选择要打开该文件的位置。