Обзор и настройка расширения Unite

от автора

Был удивлен, что на хабре нет описания Unite, которое позволяет заменить просто огромное количество расширений для Vim. Unite сочетает в себе функционал таких расширений как: CtrlP, FuzzyFinder, ack, yankring, LustyJuggler, buffer explorer и т.д.


Установка Unite

Прежде чем приступить к настройке расширения необходимо установить зависимости. Я использую Vundle, поэтому устанавливать будем через него. Для доступа к некоторым функциям Unite необходим плагин vimproc. Для этого добавим следующие строчки в наш файл .vimrc:

Bundle 'Shougo/vimproc.vim' Bundle 'Shougo/unite.vim'  

Перезапускаем редактор и вводим команду :BundleInstall. Откомпилируем vimproc:

cd ~ cd .vim/bundle/vimproc.vim make -f make_mac.mak # тут зависит от платформы, для Linux: make_unix.mak 

Установка всех зависимостей завершена, переходим к настройке Unite. Давайте добавим следующие строки в vimrc:

" Автоматический insert mode let g:unite_enable_start_insert = 1  " Отображаем Unite в нижней части экрана let g:unite_split_rule = "botright"  " Отключаем замену статус строки let g:unite_force_overwrite_statusline = 0  " Размер окна Unite let g:unite_winheight = 10  " Красивые стрелочки let g:unite_candidate_icon="▷" 

Ознакомимся с некоторыми командами Unite:

Команда Описание
Unite file открыть список файлов и директории в текущем проекте
Unite buffer показать открытые буферы
Unite file buffer показать файлы и открытые буферы

Команда Unite так же поддерживает опции, например запустив Unite с опцией -auto-preview мы запустим Unite с функцией предпросмотра файлов (как в Sublime).

Если вам нужно ходить по файлам рекурсивно, то есть осуществлять поиск по текущему проекту просто вводя начальные буквы файла как в CtrlP и Command-T, для этого достаточно запустить Unite с фалгом file_rec/async, хочу предупредить что без сборки vimproc данная опция работать не будет:

Unite file_rec/async

Что бы поиск происходил по первым введенным буквам нужно добавить опцию -start-insert:

Unite file_rec/async -start-insert

И наконец конечный результат команды, которую я привязал к комбинации leader+f

nnoremap <leader>f :<C-u>Unite -buffer-name=files -start-insert buffer file_rec/async:!<cr> 

Скриншот редактора с запущенным Unite

У Unite есть так же и командный режим, который запускается нажатием клавиши Ctrl+i в открытом буфере Unite. Командный режим позволяет создавать и сравнивать файлы, директории, создавать закладки, выполнять grep и т. д. Кстати, посмотреть список закладок можно командой :Unite bookmark, а добавить файл в закладки можно из командного режима.

Еще несколько примеров работы Unite

Поиск по файлу как в CtrlP

:Unite file_rec/async 

Пример работы

Поиск как в ack.vim

:Unite grep:. 

Пример работы

Поиск по истории как в yankring/yankstack

let g:unite_source_history_yank_enable = 1 :Unite history/yank 

Пример работы

Переключение буферов как в LustyJuggler

:Unite -quick-match buffer 

Пример работы

Страница проекта

ссылка на оригинал статьи http://habrahabr.ru/post/201564/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *