Unite拡張機能の概要と構成

ハブにUnite拡張機能の説明がないことに驚きました。これにより、Vimの膨大な数のプラグインを置き換えることができます。 Uniteは、CtrlP、FuzzyFinder、ack、yankring、LustyJuggler、バッファーエクスプローラーなどの拡張機能を組み合わせています。



Unite Installation


拡張機能の構成を開始する前に、依存関係をインストールする必要があります。 私は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チームは、たとえば、-auto-previewオプションを使用してUniteを起動するオプションをサポートしています。Uniteをファイルプレビュー機能(Sublimeのように)で起動します。

ファイルを再帰的に処理する必要がある場合、つまり、CtrlPおよびCommand-Tのようにファイルの最初の文字を入力するだけで現在のプロジェクトを検索する必要がある場合、これはfile_rec / asyncフラグを使用してUniteを実行するだけで十分なので、このオプションはvimprocアセンブリなしでは機能しないことを警告します:

 Unite file_rec/async 

入力された最初の文字に従って検索が行われるようにするには、-start-insertオプションを追加する必要があります。

 Unite file_rec/async -start-insert 

そして最後に、リーダー+ fの組み合わせにアタッチしたコマンドの最終結果

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

Uniteを実行しているエディターのスクリーンショット



Uniteには、開いているUniteバッファーでCtrl + iを押すことで起動するコマンドモードもあります。 コマンドモードでは、ファイル、ディレクトリの作成と比較、ブックマークの作成、grepの実行などを行うことができます。ちなみに、コマンドを使用してブックマークのリストを表示できます。

Uniteで独自のメニューを作成する


Uniteには独自のメニューを作成する機能があります(gab ユーザー gmistのヘルプに感謝します )。 使用例:

 let g:unite_source_menu_menus = {} let g:unite_source_menu_menus.mymenu = { \ 'description' : 'My Unite menu', \ } let g:unite_source_menu_menus.mymenu.candidates = { \ 'mru&buffer' : 'Unite buffer file_mru', \ 'tag' : 'Unite tag', \ 'file' : 'Unite file', \ 'file_rec' : 'Unite file_rec', \ 'file_rec/async' : 'Unite file_rec/async', \ 'find' : 'Unite find', \ 'grep' : 'Unite grep', \ 'register' : 'Unite register', \ 'bookmark' : 'Unite bookmark', \ 'output' : 'Unite output', \ } function g:unite_source_menu_menus.mymenu.map(key, value) return { \ 'word' : a:key, 'kind' : 'command', \ 'action__command' : a:value, \ } endfunction 


次のコマンドでメニューを実行できます

 :Unite menu:mymenu 


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 

作業例


プロジェクトページ

Source: https://habr.com/ru/post/J201564/


All Articles