Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

unite.vimより高速な発達中のdenite.nvimを使う

$
0
0

Denite

Denite.nvim is a dark powered Neovim unite all interfaces. It resolves unite.vim problems. It is 10 times faster than unite.vim.

暗黒の力を手に入れた云々。早い
現在はuniteと比べると機能が限られているが、Shougoさんが鋭意開発中です。
Neovimでしか動作しないので、Vimを使っている方は使えません。

こんな感じ

asciicast

インストール

python3を持ってないといけません。
pyenvとpyenv-virtualenvを使っている場合

pyenv install 3.5.2
pyenv virtualenv 3.5.2 neovim3
pyenv activate neovim3
pip install neovim

生のpython3を使っている方は

pip3 install neovim

とかでいいかもしれません。
ここら辺は詳しくはNeovim Wikiに懇切丁寧にかいてあるので、こちらを見てみると良いです。

python3のbinを指定してあげます。

.vimrc
letg:python3_host_prog = expand('~/.pyenv/versions/neovim3/bin/python')" 上に記載した方法を取っていない方は which python3 とかしてそのPATHを設定してください。

neovimを起動して:echo has('python3')で1が返ってきた場合、設定できています。

0が返ってきた場合はどっかの設定が間違っています。vim-jpの方はみなさん優しいので問い合わせましょう。

本体のインストールは使っているプラグインマネージャーによって違うかと思いますが、

.dein.toml
[[plugins]]repo='Shougo/denite.nvim'

こんな感じです。
:UpdateRemotePlugins
をneovimないで呼び出してください。

remote/host: python3 host registered plugins ['denite', 'deoplete']
remote/host: generated rplugin manifest: /Users/okamos/.local/share/nvim/rplugin.vim

こんな感じのメッセージが出てくると思います。deniteがあれば成功しています。

操作方法

2016/09/09現在docに載っていませんのでソースコードより

letg:denite#_default_mappings._ = {
        \ "\<Esc>": 'quit',
        \ "\<C-g>": 'quit',
        \ "\<BS>":  'delete_backward_char',
        \ "\<C-h>": 'delete_backward_char',
        \ "\<C-w>": 'delete_backward_word',
        \ "\<C-n>": 'move_to_next_line',
        \ "\<Down>": 'move_to_next_line',
        \ "\<C-p>": 'move_to_prev_line',
        \ "\<Up>": 'move_to_prev_line',
        \ "\<C-j>": 'input_command_line',
        \ "\<CR>":  'do_action',
        \}

こうなっています。Vimを使っている人にとってはごく一般的な移動方法です。

機能

今の所

  • Denite file_rec
  • Denite file_mru (neo_mru連携)
  • Denite line

の三つです。

これを見る限り、source_grepは近い将来実装されそうです。

file_rec

unite.vimであったfile_rec/asyncです。
カレントディレクトリ以下のファイルを列挙して、絞込み選択してアクション(ファイルを開く)します。

file_mru

neomru.vimのmruファイルから絞込みをかけて、アクション(ファイルを開く)します。
unite.vimより高速に動作するので、保持する最大量を上げても安心です。

line

現在開いているファイル(バッファ)内を絞込み検索してアクション(その行へジャンプ)します

私の設定

dein.vimですが

dein.toml
hook_add='''nmap<silent><C-u><C-u>:<C-u>Denitefile_mru<CR>nmap<silent><C-u><C-p>:<C-u>Denitefile_rec<CR>nmap<silent><C-u><C-j>:<C-u>Deniteline<CR>'''hook_post_source='''calldenite#custom#source(\'file_rec','vars',{\'command':[\'pt','--follow','--nocolor','--nogroup',\'--hidden','-g',''\]})'''

こんな感じでマッピングしています。
denite#custom#sourceはプラグイン読み込みが終わってからじゃないと動作しないので注意してください。
file_recはデフォルトはfindですがagやackなどに変えることができます。

余談

なぜかカーソルラインのfgが設定されていなかったので、最初選択行がどれなのか全くわかりませんでした。

.vimrc
hi CursorLine guifg=#E19972

Shougoさんへの感謝の気持ちで溺れそう。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>