如何让Vim选项卡不显示完整文件路径,只显示相同名称的文件打开时显示相关文件夹?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让Vim选项卡不显示完整文件路径,只显示相同名称的文件打开时显示相关文件夹?相关的知识,希望对你有一定的参考价值。
The Problem
我知道a variant of this question可能已被回答。
我试过:set guitablabel=%t
,但有两个问题:
- 它在终端的Vim中不起作用(因为gui设置仅适用于GVim)。我专门使用终端Vim,所以给出的答案不适用。
- 不同目录中具有相同名称的文件不会显示其相关文件夹以进行区分。
Current Situation
为了更好地理解我的问题,请说我有一个项目文件夹,awesome-project
具有以下结构:
awesome-project
AAA/
file1.txt
file2.txt
CCC/
special.txt
BBB/
file2.txt
file3.txt
DDD/
special.txt
说我cd
到我的终端项目和vim
从那里。然后我继续在单独的选项卡中打开所有文件。
目前,我的vim设置为显示以下标签(|
s是分隔符 - 使用你的想象力!):
AAA/file1.txt | AAA/file1.txt | AAA/CCC/special.txt | BBB/file2.txt | BBB/file3.txt | BBB/DDD/special.txt
What I Want
我希望标签显示为:
file1.txt | AAA/file2.txt | CCC/special.txt | BBB/file2.txt | file3.txt | DDD/special.txt
或Sublime Text的作用:
file1.txt | file2.txt --- AAA | special.txt --- AAA/CCC | file2.txt --- BBB | file3.txt | special.txt --- BBB/DDD
基本上,鉴于当前选项卡具有唯一的文件名,所有选项卡应仅显示其文件名。否则,提供要在选项卡中显示的第一个不同的相对文件夹,以便我可以确定哪些文件是文件。
这是许多其他文本编辑器(Sublime Text,Atom)中的一个功能,我真的想保留它,因为相对路径文件名对我自己的好处来说太长了。
任何帮助将不胜感激,无论是:
- 一个简单的命令来解决问题(耶!)
- 一个可用的插件
- 有关如何在
.vimrc
中手动配置此提示的提示
你不出所料 - 误解和滥用标签页。
就像Atom或Sublime Text一样,Vim是一个基于文档的程序,但与其他程序不同,它不使用“tab”隐喻作为这些文档的代理。相反,标签页是设计用于包含一个或多个窗口的工作空间,这些窗口本身是用于显示缓冲区的视口。缓冲区是Vim相当于其他编辑器中的文档,幸运的是没有内置的方法来获得“永远在线”的缓冲区列表。 “谢天谢地”,因为这样的功能与其他编辑器一样无用。
而不是使用标签页作为文档代理 - 无论如何都无法工作 - 我建议你习惯Vim基于缓冲区的工作流程。
Here is a bit of reading让你开始踏上好脚。
我也在尝试做同样的事情。如果您有兴趣编写自己的标签行,则需要阅读tabline和setting-tabline。但是,如果您只想要一个简单的,您可以将其复制到您的vimrc:
"tabline
if exists("+showtabline")
function MyTabLine()
let s = ''
let t = tabpagenr()
let i = 1
while i <= tabpagenr('$')
let buflist = tabpagebuflist(i)
let winnr = tabpagewinnr(i)
let s .= '%' . i . 'T'
let s .= (i == t ? '%1*' : '%2*')
let s .= ' '
let s .= '|'. i . ')'
let s .= ' %*'
let s .= (i == t ? '%#TabLineSel#' : '%#TabLine#')
let file = bufname(buflist[winnr - 1])
let file = fnamemodify(file, ':p:t')
if file == ''
let file = '[No Name]'
endif
let s .= file
let s .= ' '
let i = i + 1
endwhile
let s .= '%T%#TabLineFill#%='
let s .= (tabpagenr('$') > 1 ? '%999XX' : 'X')
return s
endfunction
set stal=2
set tabline=%!MyTabLine()
endif
以上是关于如何让Vim选项卡不显示完整文件路径,只显示相同名称的文件打开时显示相关文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
新的vim自带markdown插件,请问markdown怎么折叠文本,只显示标
Excel 2016 Power View选项卡不显示的问题