- PVSM.RU - https://www.pvsm.ru -

Настройка стартового экрана Vim

Вступление

Стартовый экран Vim содержит лишь информацию о том, как начать читать документацию по этому редактору и как правильно из него выйти. Ведь, как известно, многие инструменты имеют крутую кривую входа, а Vim к тому же еще и крутую кривую выхода. Те, кто уже научились выходить из Vim, наверняка захотят сделать стартовый экран более информативным и полезным. Чем мы и займемся.

Установка и базовая настройка

А поможет нам в этом плагин Startify [1].

Для управления плагинами Vim'а я использую Vundle, поэтому добавил в .vimrc следующий фрагмент:

Plugin 'mhinz/vim-startify'             " Nice start screen

При запуске Vim без указания файлов для открытия данный плагин показывает стартовый экран, на котором перечислены файлы, которые недавно редактировались, а также сессии Vim'а. Также можно указать список файлов, которые всегда будут присутствовать (закладки или bookmarks):

image

Для открытия файла теперь достаточно набрать число, которое расположено рядом с файлом в квадратных собках. Также определен ряд команд, например:
e — создать пустой буфер
i — создать пустой буфер и перейти в Insert-режим
q — выйти из Vim

Чтобы указать файлы для закладок, необходимо прописать в .vimrc:

let g:startify_bookmarks = ['~/.vimrc',]

Дополнительные настройки

Плагин позволяет также указать заголовок стартового экрана и подвал (footer). В документации в качестве примера приводится использование фортунок и коровы:

let g:startify_custom_header = map(split(system('fortune | cowsay'), 'n'), '"   ". v:val') + ['','']

image

Однако мне такой вариант не совсем нравится. Во-первых, фортунки иногда могут содержать довольно много строк и, как следствие, занимать почти весь экран. Во-вторых, хочется иметь тематические фортунки с советами по Vim. Поэтому я взял файл vim-фортунок с проекта vimtips-fortune [2], положил его в ~/.vim/fortunes и сформировал dat-файл:

strfile vimtips

После этого добавил следующую строку в .vimrc

let g:startify_custom_header = 
     map(split(system('fortune ~/.vim/fortunes | cowsay -W 60'), 'n'), '"   ". v:val') + ['','']

Таким образом, получаем уже довольно неплохой стартовый экран:
image

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

Настройка смены рабочего каталога

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

let g:startify_change_to_vcs_root = 1

В настоящий момент поддерживаются: git, hg, bzr, svn.

Такое поведение также не всегда целесообразно. Например, в нескольких моих проектах есть подпроекты, написанные на python. Эти файлы располагаются в отдельных подкаталогах. При открытии таких python-файлов было бы логичнее переключаться именно в этот подкаталог, а не в корневой git'а. Для реализации подобного функционала я использую плагин vim-rooter [3], который также изменяет рабочий каталог при открытии файла. Плагину можно указать список файлов-маркеров, до которых будет вестись поиск. Так как у меня в python-подкаталогах лежит файлов тегов tags, то я его добавил в список:

let g:rooter_patterns = ['tags', '.git', '.git/']

Таким образом, с помощью рассмотренных плагинов можно оптимизировать работу с Vim.

Во мой фрагмент .vimrc с настройками для vim-startify и vim-rooter:

" Startify
let g:startify_change_to_dir = 0
let g:startify_files_number = 8
let g:startify_bookmarks = ['~/.vimrc',]
let g:startify_skiplist = ['vimrc',]
let g:startify_custom_header = map(split(system('fortune ~/.vim/fortunes | cowsay -W 60'), 'n'), '"   ". v:val') + ['','']

" Rooter
let g:rooter_patterns = ['tags', '.git', '.git/']

Надеюсь, кто-то найдет изложенную информацию полезной для себя.

Автор: XVadim

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/vim/71171

Ссылки в тексте:

[1] Startify: https://github.com/mhinz/vim-startify

[2] vimtips-fortune: https://github.com/hobbestigrou/vimtips-fortune

[3] vim-rooter: https://github.com/airblade/vim-rooter

[4] Источник: http://habrahabr.ru/post/239579/