vimの便利なPlugin(その7)unite.vim

   2017/05/01

unite.vimは、既にくいくつか紹介しているShougo氏が開発したPluginの一つで、vimの統合ユーザインターフェイスです。 「vimの便利なPlugin(その2)bufexlorer」で紹介したbufexplorerと同様にカレントディレクトリのファイルや、オープンしているファイルバッファを同時に一覧表示し操作できます。 また、それ以外にもいろいろ便利な機能がありますので、vimmerでしたら必須でインストールしておくべきPluginの一つと思います。

Install

インストールは、「vimの便利なPlugin(その5)」でご紹介したdein.vimの使用を前提とさせていただきます。 まだ、ご利用になったことのない方は、先に(その5)の方をご覧下さい。

以下の設定を.vimrcに追加します。

call dein#add('Shougo/unite.vim')

以下のインストールコマンドを実行します。

:call dein#install()

インストールは以上で終了です。

使い方

ディレクトリやファイルの一覧表示とファイルオープン

例えば、vimで/etc配下のあるファイルを開いているところで、以下のコマンドを実行します。※CentOS6での環境を想定しています。

:Unite file

すると以下ようにvim内で/etc配下のディレクトリやファイルがリストされます。

unite_file

ノーマルモードでディレクトリを選択してエンターを押すと、ディレクトリを辿って行くことができます。 また、ファイルを選択するとファイルを開くことができます。※インサートモードにすると入力した文字列でリストが絞り込まれていきます。

ディレクトリやファイルを再帰的に一覧表示

上記と同様に/etc 配下で、以下のコマンドを実行します。※CentOS6での環境を想定しています。

:Unite file_rec

するとvim内で/etc配下のディレクトリやファイルが再帰的にリスト表示されます。

バッファ一覧表示とオープン

いくつかファイルをオープンしている状態で、以下のコマンドを実行する。

:Unite buffer

すると以下ようにvim内で/etc配下のディレクトリやファイルがリストされます。

unite_buffer

unite.vimで取り扱えるものの一覧を表示

:Unite source

以下の様に取扱可能なリストを表示する。

unite_source

詳しくは、:help unite-source-file を参照して下さい。このリスト上でカーソールを合わせてエンターを押すと選択した機能が実行されます。

ここでは、いくつか便利そうな機能をご紹介します。

ブックマーク機能

以下のコマンドで現在開いているファイルをブックマークとして登録できます。 ここでは.vimrcファイルを開いてコマンドを実行してみました。

:UniteBookmarkAdd

以下の様に登録名の入力を促されます。

unite_bookmarkadd

そのまま何も入力せずにエンターを押すと、defaultというファイル名でブックマーク情報が記録されていきます。 違うファイル名でbookmarkの情報を記録していきたい場合はここでファイル名を入力します。 ファイルは、CentOS等のLinuxの場合、/home/ユーザ名/.cache/unite/bookmark/ の下に保存されます。

続いてブックマーク名を入力します。 ここで入力した情報が上記で指定したファイルに保存され、ブックマークとしてリスト表示されます。 何も入力せずにエンターを押すと現在開いているファイル名が入力されたことになります。

unite_bookmarkadd_name

 

ブックマーク一覧を開くには、以下のコマンドを実行。

:Unite bookmark

unite_bookmark_list

表示したいブックマーク名の上にカーソールを合わせてエンターをおすとファイルが開けます。 ※ちなみに私は、vimで開発する場合、ブックマークでファイルを記録していくより、セッションをファイルに保存する事が多いです。

grep機能

grep機能を紹介する前に、少し脱線してhighwayという高速検索ツールをインストールし利用してみることにしました。 興味のある方は、highwayでググってみて下さい。

  • highwayのインストール

※CentOS6を想定しています。

まずは、epelをインストール

sudo yum install epel-release

続いてレポジトリファイルを作成します。

$ sudo vi /etc/yum.repos.d/highway.repo
[repos.highway]
name=highway
baseurl=http://tkengo.github.io/highway/centos/6
enabled=0
gpgcheck=0

インストールする。

$ sudo yum install highway –enablerepo=”repos.highway”

依存性の解決をしています
–> トランザクションの確認を実行しています。
—> Package highway.x86_64 0:1.0.0-1 will be インストール
–> 依存性の処理をしています: gperftools-libs のパッケージ: highway-1.0.0-1.x86_64
–> 依存性の処理をしています: libtcmalloc.so.4()(64bit) のパッケージ: highway-1.0.0-1.x86_64
–> 依存性解決を終了しました。
エラー: パッケージ: highway-1.0.0-1.x86_64 (repos.highway)
             要求: libtcmalloc.so.4()(64bit)
エラー: パッケージ: highway-1.0.0-1.x86_64 (repos.highway)
             要求: gperftools-libs

インストール中に上記のようなエラーがでたら、

sudo yum –enablerepo=epel install gperftools-libs
  • unite.vimからhighwayを叩けるように.vimrcに設定を追加
if executable(‘hw’)
let g:unite_source_grep_command = ‘hw’
let g:unite_source_grep_default_opts = ‘–no-group –no-color’
let g:unite_source_grep_recursive_opt =
endif
  • 検索の方法
:Unite grep

「Target .」と画面下に出力されたら検索したいディレクトリを指定しエンター。「Pattern: 」のあとに検索したい文字列を入力して検索を実行。画面上部に検索結果が羅列されます。

最後にコマンドを毎回タイプするのではなく、メタキーと組み合わせて起動させるのが便利だと思います。 例えば以下を.vimrcに追記して、<leader>f でディレクトリやファイルの一覧が表示されると思います。※<leader>は、設定を変更してなければ通常 ‘\’ です。

nnoremap <leader>f :<C-u>Unite file<CR>
nnoremap <leader>r :<C-u>Unite file_rec<CR>
nnoremap <leader>b :<C-u>Unite buffer<CR>
nnoremap <leader>g :<C-u>Unite grep<CR>
nnoremap <leader>a :<C-u>UniteBookmarkAdd<CR>
nnoremap <leader>m :<C-u>Unite bookmark<CR>

まとめ

いかがでしょうか。 私は、まだuniteのをそこまで使い込んでいるわけではありませんので、説明が不十分だったかもしれません。 便利な使い方を発見したら追記していきたいと思います。

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら