这不是缩进问题。
Vim的窗口导航行为真让我烦恼。假设此窗口当前配置已打开,文件wp-config-sample.php
是当前文件:
由于所有其他文件都位于不同的目录中,如果我将其中任何一个文件集中在<ESC>gt
上,所有这些文件都会更改其内容,并且标签也会调整大小:
这是一个简单的例子,但问题确实出现在有很多标签打开但我无法弄清楚我在哪里,因为焦点标签显着改变了它的位置原来的。
我认为好的行为是Firefox上的同一个系统,其中聚焦和未聚焦的选项卡永远不会改变它们的位置,而只关注一个只会略微强调。
有没有办法让它停止?
答案 0 :(得分:3)
autochdir
打开了。要快速解决这个问题:
:set noautochdir
Coot向我指出了一个不错的vim's wiki link,其中有一个很好的代码段,可以在.vimrc
中很好地保留autochdir
行为,并在切换到窗口时保留常规标签标题
现在我的标签很漂亮了!
答案 1 :(得分:1)
是的,您只能在Vim中显示文件名。请参阅:h tabline
和:h filename-modifiers
。
答案 2 :(得分:1)
是的,当你打开autochdir时,默认的标签标签会让标签真的很烦人。基本上,如果您的:pwd
不是文件的位置,它们会向您显示完整路径(缩写),如果您的:pwd
与文件相同,则只显示文件名。当您启用autochdir
时,:pwd
会在您加载缓冲区时发生更改,包括切换标签页时。我碰巧喜欢autochdir
,因为:ls
和任何文件操作都是自动相对于活动缓冲区的cwd。我总是知道这个位置,因为我的状态行中有完整的路径。
我有gui标签设置为我显示一些不同的东西...标签编号,修改过的指标,如果标签中有多个窗口(显示计数),并且始终只显示缓冲区的文件名(如果有多个窗口,则使用活动窗口中的那个。)
" GUI Tab label full path
function! GuiTabLabeler()
let tabno = tabpagenr()
let label = ''
let bufnrlist = tabpagebuflist(v:lnum)
" Add '+' if one of the buffers in the tab page is modified
for bufnr in bufnrlist
if getbufvar(bufnr, "&modified")
let label = '[+]'
break
endif
endfor
" Append the number of windows in the tab page if more than one
let wincount = tabpagewinnr(v:lnum, '$')
if wincount > 1
let label .= ' [' . wincount . ']'
endif
" Append the buffer name
return tabno . " " .
\ fnamemodify(bufname(bufnrlist[tabpagewinnr(v:lnum) - 1]), ":t")
\ . label
endfunction
set guitablabel=%!GuiTabLabeler()
选项卡中的选项卡编号很不错,特别是如果您执行将alt-number键映射到它们的操作:
" Tab navigation in with alt-#
noremap <A-1> :tabnext 1<CR>
noremap <A-2> :tabnext 2<CR>
noremap <A-3> :tabnext 3<CR>
noremap <A-4> :tabnext 4<CR>
noremap <A-5> :tabnext 5<CR>
noremap <A-6> :tabnext 6<CR>
noremap <A-7> :tabnext 7<CR>
noremap <A-8> :tabnext 8<CR>
noremap <A-9> :tabnext 9<CR>
noremap <A-0> :tabnext 0<CR>
这样,我的gui标签保持非常狭窄和干净。我更喜欢在状态行(以及其他内容)中使用完整路径的文件名:
" Statusline
set laststatus=2
let &statusline='%F %r%m [%{&fileformat}]%y[%{strlen(&fenc)?&fenc:&enc}]'
\ . '%= --%3p%% -- l:%3l, c:%3c (%03b 0x%02B)'
答案 3 :(得分:0)
对于gVim,我使用
R:"Enter slope, intercept"
User:*input*
R:"Enter slope, intercept"
User:*input*
R:"Enter slope, intercept"
User:"no"
R:"Thank you for inputs"
,因此具有一个标签标签,显示: