首页 > 解决方案 > Vim:切换选项卡时显示文件名

问题描述

我已经映射<C-J><C-K>Vim 中的上一个/下一个选项卡。

有时当 Vim 中打开的选项卡过多时,它会在选项卡标签中仅显示当前选项卡文件名的最后几个字符。切换选项卡时,我不知道当前正在查看哪个文件。(我禁用了状态栏。)

如何绑定<C-J>到“切换选项卡并显示当前文件名”?

我试过:map <C-J> :tabNext<CR>:f<CR>但无济于事。

标签: vim

解决方案


您需要强制重绘,以便您可以使用:file. 例如

nnoremap gt gt:redraw<bar>file<cr>

如需更多帮助,请参阅:

:h gt
:h :redraw
:h :file

除了关于标签

Vim 的选项卡大多数文本编辑器的选项卡不同。

让我再说一遍:Vim 的选项卡大多数文本编辑器的选项卡不同。

Vim 的选项卡更像是一组窗口/拆分的视口。此外,Vim 以缓冲区为中心,而不是像大多数编辑器那样以选项卡为中心。因此,在没有标签的情况下,使用诸如快速修复列表之类的功能通常会更容易(看看:h 'switchbuf'你是否必须使用标签)。Vim 的选项卡经常妨碍良好的窗口和缓冲区工作流程,因为有更好的窗口和缓冲区导航命令可用。我个人打开了许多文件(通常有 50 多个缓冲区)。我很少使用制表符,平均使用 1-2 次拆分没有任何问题。您可能想阅读以下帖子:

Vim 映射的最佳实践

制作映射的两个一般经验法则:

  • 提供一种模式。所以:map变成:nmap
  • 除非使用 a<Plug><SID>映射,否则您可能应该使用:noremap变体,例如nnoremap,xnoremap等。使用它会阻止递归映射。

这表示:

map <c-j> ...

变成:

nnoremap <c-j> ...

推荐阅读