我在 Vim 中工作(不是 GVim 或 MacVim 等),我使用了一个非透明终端,所以我可以看到它背后的背景(这是这个运动备忘单)
我想要一种方法,让 vim 的实例成为一个空白屏幕,然后能够像以前一样重新绘制它。也许我只是在我的网络搜索中失败了,但我找不到任何关于这个问题的东西。
我对任何事情都非常感激,即使只是指向一些可以让我从兔子洞开始的文档方法的链接。
我在 Vim 中工作(不是 GVim 或 MacVim 等),我使用了一个非透明终端,所以我可以看到它背后的背景(这是这个运动备忘单)
我想要一种方法,让 vim 的实例成为一个空白屏幕,然后能够像以前一样重新绘制它。也许我只是在我的网络搜索中失败了,但我找不到任何关于这个问题的东西。
我对任何事情都非常感激,即使只是指向一些可以让我从兔子洞开始的文档方法的链接。
如果您编辑一个新缓冲区(在一个不存在的文件中),您将看到一个空白屏幕
:ed foo
完成后,您可以将其删除
:bd
我通过点点滴滴、一个相关问题以及@Ken 和@Prince Goulash 的帮助实现了我想要的效果。这是我的 .vimrc 中的 vimscript 的功能部分:
function! TabIsEmpty()
" From Stackoverflow: http://stackoverflow.com/a/5026456/212307
" Remember which window we're in at the moment
let initial_win_num = winnr()
let win_count = 0
" Add the length of the file name on to count:
" this will be 0 if there is no file name
windo let win_count += len(expand('%'))
" Go back to the initial window
exe initial_win_num . "wincmd w"
" Check count
if win_count == 0
" Tab page is empty
return 1
else
return 0
endif
endfunction
function! ToggleBlankTab()
if TabIsEmpty() == 1
tabc
else
tabe
endif
endfunction
nnoremap <leader>m :call ToggleBlankTab()<cr>