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
      
      





作業例








プロジェクトページ



All Articles