Раздражающие ярлыки строки табуляции vim - PullRequest
3 голосов
/ 24 марта 2012

Это не вопрос отступа.

Поведение Vim для оконной навигации меня действительно раздражает.Предположим, есть эта конфигурация окон, открытых в данный момент, и файл wp-config-sample.php является текущим:

enter image description here

Поскольку все другие файлы находятся в другом каталоге, если я фокусируюсь на любомиз них делают <ESC>gt, все они меняют свой контент, а вкладки также меняются:

enter image description here

Это простой пример, но проблема действительно возникает, когдатам открыто много вкладок, и я не могу просто понять, где я нахожусь, потому что сфокусированная вкладка значительно изменила свое положение по сравнению с первоначальной.где сфокусированная и не сфокусированная вкладка никогда не меняет своего положения, а сфокусированная вкладка лишь слегка выделяется.

Есть ли способ остановить ее?

Ответы [ 3 ]

3 голосов
/ 24 марта 2012

tappi на #vim на Freenode уточнил, что у меня включено autochdir.Чтобы быстро это исправить:

:set noautochdir

И Кут указал мне симпатичную вики-ссылку vim , с хорошим фрагментом, который действительно хорошо работает в .vimrc, чтобы сохранить поведение autochdirа также сохраняйте обычный заголовок вкладки при переключении между окнами.

Теперь мои вкладки прекрасны!

1 голос
/ 22 января 2013

Да, ярлыки вкладок по умолчанию делают вкладки действительно раздражающими, если у вас включен autochdir.По сути, они показывают полный путь (сокращенно), если ваш :pwd отличается от местоположения файла, и просто имя файла, если ваш :pwd совпадает с именем файла.Когда вы включаете autochdir, ваш :pwd меняется каждый раз, когда вы загружаете буфер, в том числе при переключении вкладок.Мне нравится autochdir, потому что :ls и любые файловые операции автоматически относятся к cwd активного буфера.Я всегда знаю это местоположение, потому что у меня есть полный путь в строке состояния.

У меня есть набор графических вкладок, чтобы показать мне несколько разных вещей ... Номер вкладки, измененный индикатор, если есть более одного окнана вкладке (показать количество) и всегда показывать только имя файла буфера (используя имя в активном окне, если имеется более одного окна).

" 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()

Номера вкладок на вкладкахэто хорошо, особенно если вы делаете что-то вроде сопоставления с ними ваших цифровых клавиш:

" 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>

Таким образом, мои графические вкладки остаются довольно узкими и чистыми.Я предпочитаю иметь имя файла с полным путем в строке состояния (среди прочего):

" Statusline 
set laststatus=2
let &statusline='%F  %r%m  [%{&fileformat}]%y[%{strlen(&fenc)?&fenc:&enc}]'
           \ . '%= --%3p%% --   l:%3l, c:%3c (%03b 0x%02B)'
1 голос
/ 24 марта 2012

Да, вы можете отображать только имена файлов в Vim.См :h tabline и :h filename-modifiers.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...