当我错误地试图在最后一个缓冲区[n:]后面切换时,我正在丢失所有先前的缓冲区。
例如,如果我在编辑器中打开几个文件
:ls
1 # "/etc/moduli" line 1
2 %a "/etc/motd" line 1
:n
E163: There is only one file to edit
:p
E163: There is only one file to edit
now i can navigate between tabs just using :b [number]
请告知如何解决此问题。在这种情况下,如何防止缓冲区关闭?
答案 0 :(得分:4)
我觉得你在那里混淆了什么。缓冲区就像一个打开的文件。当您使用:n 切换到参数列表中的下一个文件时,关闭当前缓冲区并打开下一个缓冲区,因此必须保存或丢弃更改。
此外,如果你试图超越参数列表中的最后一个文件,vim的默认行为是显示错误信息,因此在vim中丢失任何东西都不是很容易。
如果这不能回答你的问题,也许在这里描述你的行为(按键)可能有所帮助。
[编辑]
好的,现在我知道问题所在:缓冲区和启动vim时要提供的要编辑的文件列表之间存在差异。如果你用
启动vimvim a.txt b.txt
有2个要编辑的文件。这并不意味着,有多个缓冲区。您可以使用:n和:p(表示n(ext)文件和p(revious)文件)进行导航。如果你有全局标志:hidden set,这意味着你关闭的每个缓冲区都将成为一个隐藏缓冲区。该文件仍在编辑中,但未在任何窗口中显示。该值可能在系统启动vim时设置。尝试将:se nohidden 添加到.vimrc并尝试以下操作:
:help buffer-hidden
[/编辑]
答案 1 :(得分:2)
:n和:p不在缓冲区之间切换:)
尝试:bufnext和:bufprev
也许你会喜欢:
nmap <LEADER>k :bnext<CR>:redraw<CR>
nmap <LEADER>j :bprevious<CR>:redraw<CR>
nmap <LEADER>d :bd<CR>
nnoremap <LEADER>b :buffers<CR>:buffer<space>
按,j表示前一个缓冲区,k表示下一个缓冲区,d表示关闭当前缓冲区,b表示缓冲区并选择一个带数字键的缓冲区。
答案 2 :(得分:2)
:bn
将在缓冲区中显示 n ext文件(在您的情况下为“/ etc / moduli”)
:bp
会在缓冲区中显示 p revious文件(也是“/ etc / moduli”,因为它会进行排列)
您会注意到的一件事是您正在编辑的文件标有
%a
而
#
表示它是您显示的最后一个文件。 希望它可以帮到你。