Vim 维姆,重新打开上次关上的窗户,那是在分裂中
是否可以重新打开vim中关闭的窗口,即split中的窗口Vim 维姆,重新打开上次关上的窗户,那是在分裂中,vim,split,Vim,Split,是否可以重新打开vim中关闭的窗口,即split中的窗口 类似于ctrl+shift+t和浏览器选项卡的功能?问得好!我在想下面的事情: nmap <c-s-t> :vs<bar>:b#<CR> nmap:vs:b# 它应该可以正常工作。无需轮班: nmap:vs:b# 与CTRL一起使用时,vim对字符进行同等处理,大写与否 实际上,在前面的回答中,CTRLn和CTRLSHIFTN应该都能工作。:vs#将垂直拆分当前窗口并打开备用文件。 它非常简单,您
类似于ctrl+shift+t和浏览器选项卡的功能?问得好!我在想下面的事情:
nmap <c-s-t> :vs<bar>:b#<CR>
nmap:vs:b#
它应该可以正常工作。无需轮班:
nmap:vs:b#
与CTRL一起使用时,vim对字符进行同等处理,大写与否
实际上,在前面的回答中,CTRLn和CTRLSHIFTN应该都能工作。:vs#
将垂直拆分当前窗口并打开备用文件。它非常简单,您不需要将它绑定到密钥。我已经使用 以下命令,
:rebootlasttab
,将重新拆分最后打开的缓冲区:
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.
#.vimrc
“使用Vundle安装bufmru
插件“vim脚本/bufmru.vim”
让g:bufmru_switchkey=“”我从不使用这个:默认值是空格,但我不需要使用它,所以将它设置为我不关心的值。
如果有人需要更通用的东西,我就做了这个函数
只需将它放在你的.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>
“打开上次关闭的缓冲区
函数!OpenLastClosed()
设last_buf=bufname(“#”)
如果为空(最后一个)
echo“未找到最近关闭的缓冲区”
返回
恩迪夫
让结果=输入(“打开”。最后一个“打开”。(n)正常(v)拆分,(t)ab或(s)拆分?(n/v/t/s):)
如果为空(result)| |(result!=#'v'和&result!=#'t'和&result!=#'s'和&result!=#'n')
返回
恩迪夫
如果结果=#'t'
执行“tabnew”
elseif result==#“v”
执行“vsplit”
elseif result==#'s'
执行“拆分”
恩迪夫
执行“b”。最后一步
端功能
nnoremap:调用OpenLastClosed()
使用
Ctrl+t
调用它,然后选择要打开该文件的位置。这不会回答您的问题,但是有一个:ls
命令列出所有缓冲区,甚至是已关闭的缓冲区。您可以在那里找到缓冲区,并使用:b 15
在当前窗口中打开缓冲区15。谢谢,我知道这一点,但是如果您能找到它,那将是非常棒的只需按一些组合键,然后重新打开上次关闭的窗口。注意:C-S-t是中的“重新打开上次关闭的选项卡”Chrome@sehe-一次或多个,视情况而定。从技术上讲,这会打开备用缓冲区,它并不总是与上次关闭的缓冲区相同。是的,我知道……但我想不出更好的方法来做这样的事情。我正在考虑它它不容易在我的vim上工作(我得到的缓冲区4不存在
)。我不知道b#是做什么的,虽然很好!它很有效。现在我只需要第二个namp就可以在sp中打开它。比如nmap:sp:b#。或者也许有一种方法可以选择当前windows布局的最佳分割?@sehe-See。我找不到关于:b#的官方文档链接。顺便说一句,我承认我很惊讶你还没有这样做。阅读你的a回答关于Vim的问题我感觉你对它了如指掌:)哦,这真是太好了。我可能不适合使用rails.Vim
或类似插件的人,因为Vim中的钩子可以为你提供特定的文件,实际上你甚至不需要
。
" 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>