Редактирование нескольких буферов в vim:“((1) из 3)” в строке состояния
Вопрос
Когда я переключаюсь между буферами в vim с помощью ":bn" и ": bp", в моей строке состояния отображается следующая удобная информация:
"foo.txt" 43 lines --88%-- ((1) of 3) 38,1 All
(Я думаю, что это "set showmode", который позволяет это.) Но это "(1)" всегда буквально "(1)" - это не меняется, когда я меняю буферы.(Скобки вокруг "1" тоже странные.)
Кто-нибудь знает, как это исправить?
ДОБАВЛЕННЫЙ:Вероятно, это связано с чем-то безумным в my .vimrc, который находится здесь: http://yootles.com/outbox/.vimrc
В связи с этим, вот удобный трюк, позволяющий сделать переключение буферов действительно безболезненным (записи в .vimrc):
"left/right arrows to switch buffers in normal mode
map <right> :bn<cr>
map <left> :bp<cr>
Ключевые слова для улучшения удобства поиска:vim, несколько буферов, переключение между буферами, странная строка состояния.[Добавьте сюда другие, если вы искали ответы на этот вопрос и не нашли их с первой попытки!]
Решение
Причина, по которой vim показывает ((1) из 3), заключается в списке аргументов.Когда вы запускали vim, вы, вероятно, включили в качестве аргументов 3 имени файла.Поскольку вы использовали :bn/:bp для переключения буферов вместо :n /:N для перемещения по списку аргументов, вы все еще используете аргумент 1.Читайте:h список аргументов-позиция.
Другие советы
В моем случае строка состояния в порядке, но заголовок gvim выглядит так, как вы сказали.
Вы можете рассмотреть возможность изменения обоих строка состояния и заголовок ниже к тому же значению, поскольку они используют одни и те же параметры шаблона.
Для выбора буферов удобным способом вы можете использовать
минибуфэкспл.vim :Элегантный проводник буферов - занимает очень мало места на экране
http://www.vim.org/scripts/script.php?script_id=159
или
0скан :Поиск на основе тегов для любых вещей, которые вы, возможно, захотите найти (ctags, буферы, ...).
http://www.vim.org/scripts/script.php?script_id=2507
Вы можете настроить внешний вид вашей строки состояния;например, это мое:
set laststatus=2 " all windows have statuslines
set statusline=%mb%n:%f%R%Y\ %l/%L,%c:%v
1 - я ПРАВКА:
Попробуйте поискать в справке
:help arglist-position
:help shortmess
Я никогда не использовал эти опции, поэтому не могу дать вам подробного объяснения, но, немного почитав, вы должны разобраться в этом.