恼人的vim标签行标签
这不是一个缩进问题。恼人的vim标签行标签
Vim的窗口导航行为真的让我很烦恼。假设有打开的窗口当前的这种配置,文件wp-config-sample.php
是当前的一个:
所有其他文件在不同的目录,如果我着重于任何人做一个<ESC>gt
,所有的他们得到他们的内容改变,标签得到调整大小,以及:
这是一个简单的例子,但是当有很多的标签打开,我不能找出哪里出了问题真的出现我因为t他关注的标签显着地改变了原来的位置。
我期望的良好行为是Firefox上的同一个系统,其中聚焦和未聚焦的选项卡永远不会改变它们的位置,而聚焦的选项只会略微强调。
有什么办法让它停止?
tappi在Freenode的#vim上澄清说我打开了autochdir
。要快速解决此问题:
:set noautochdir
而笨人向我指出一个不错vim's wiki link,一个漂亮的片段,作品真的很好在.vimrc
,保存autochdir
行为,并保持定期分页标题透过窗户切换时。
现在我的标签很漂亮!
是的,你可以在Vim中只显示自己的文件名。见:h tabline
和:h filename-modifiers
。
是的,当你打开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-数字键对他们说:
" 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)'
调整标题去掉_'That不是question'_键入歧义的压痕 – sehe 2012-03-25 20:36:03