denite でナイト - denite.nvim from unite.vim
とうとうやってやってしまったよ。
思い切って、んなタイトルつけてみたけど。*1...そんな自分が辛い
とゆことで、*2
待ってましたっ!
先日のエントリでも軽く触れましたが、今回のアップデートで Non-native フルスクリーン時の transparency
オプションの問題が解決された模様。
これは嬉しい。
これを以てやっとこさ Non-native フルスクリーンまわりの問題は解決したわけで、やあめでたしめでたし、なのですが。
一方で同時に、それは...
これを以てもはや Neovim 移行の動因を失った、と言う。
Neovim 移行の検討キッカケで denite についても手を出し始め、あーでもないこーでもないとモタモタしていたら、すべて終わっていた、と。
なにやってんの? まだやってんの? もー Vim でいーじゃん、ってな状態に orz
実に滑稽。 呆れます。 自分に。
進むべき道どころか方向すら失った今、自己防衛機構バンザイな完全適応障害の一人集団心理状態で(笑、denite.nvim についての痛メモを残しておこうと思います。
結論から言ってしまいますと...
Neovim 使うなら denite.nvim 使うの決めた
unite.vim で施していた設定は、ほぼ denite.nvim へそのまんま持って行けるようでひと安心。
勿論幾つか無くなったものはあるようですが、個人的に「コレないと困るな」的な要件は満たしてくれましたので “移行する” で決まり。
設定は、こんな感じにしました。
ちなみに、unite.vim の方の設定は、ホント意味も良く理解しないまま、ただただ都合良く切り貼りしただけのもので今改めてみると、「あーわかってねーなこいつ」な感じを醸し出していたりします(笑、...が、自戒の意を込め罰として晒します。;
オカシイ、間違っているトコ等ありましたら、是非をば。;
1 | " | 1 | " | ||
2 | " >unite | 2 | " >denite | ||
3 | " | 3 | " | ||
4 | 4 | ||||
5 | " 変数 | 4 | ------------------------------------------------------------ | ||
6 | let g:unite_source_history_yank_enable = 1 | 4 | ------------------------------------------------------------ | ||
7 | let g:unite_enable_start_insert = 1 | 4 | ------------------------------------------------------------ | ||
8 | let g:unite_enable_ignore_case = 1 | 4 | ------------------------------------------------------------ | ||
9 | let g:unite_enable_smart_case = 1 | 4 | ------------------------------------------------------------ | ||
10 | let g:neomru#follow_links = 1 | 4 | ------------------------------------------------------------ | ||
11 | 4 | ------------------------------------------------------------ | |||
12 | " キーマッピング | 5 | " キーマッピング | ||
13 | " キーマッピング.プリフィクス | 6 | " キーマッピング.プリフィクス | ||
14 | noremap [Unite] <Nop> | 7 | noremap [Denite] <Nop> | ||
15 | nmap <Leader>f [Unite] | 8 | nmap <Leader>f [Denite] | ||
16 | 9 | ||||
17 | " キーマッピング.mru | 10 | " キーマッピング.mru | ||
18 | noremap [Unite]r :<C-u>Unite file_mru<CR> | 11 | nnoremap [Denite]r :<C-u>Denite file_mru<CR> | ||
19 | " キーマッピング.buffer | 12 | " キーマッピング.buffer | ||
20 | noremap [Unite]b :<C-u>Unite buffer<CR> | 13 | nnoremap [Denite]b :<C-u>Denite buffer<CR> | ||
21 | " キーマッピング.file | 14 | " キーマッピング.file | ||
22 | noremap [Unite]f :<C-u>UniteWithBufferDir | 15 | nnoremap [Denite]f :<C-u>DeniteBufferDir file_rec<CR> | ||
23 | \ -buffer-name=files file<CR> | 16 | " キーマッピング.grep | ||
24 | " キーマッピング.bookmark | 17 | nnoremap [Denite]g :<C-u>DeniteBufferDir grep<CR> | ||
25 | noremap [Unite]m :<C-u>Unite bookmark<CR> | 18 | |||
26 | nnoremap [unite]a :<C-u>UniteBookmarkAdd<CR> | 19 | " キーマッピング.help | ||
27 | " キーマッピング.register | 20 | nnoremap [Denite]h :<C-u>Denite help<CR> | ||
28 | noremap [Unite]g :<C-u>Unite | 21 | " キーマッピング.line | ||
29 | \ -buffer-name=register register<CR> | 22 | nnoremap [Denite]i :<C-u>Denite line<CR> | ||
30 | " キーマッピング.mapping | 23 | |||
31 | nnoremap [Unite]p :<C-u>Unite mapping<CR> | 23 | ------------------------------------------------------------ | ||
32 | " キーマッピング.message | 23 | ------------------------------------------------------------ | ||
33 | nnoremap [Unite]i :<C-u>Unite output:message<CR> | 23 | ------------------------------------------------------------ | ||
34 | " キーマッピング.yank | 23 | ------------------------------------------------------------ | ||
35 | nnoremap [Unite]y :<C-u>Unite history/yank<CR> | 23 | ------------------------------------------------------------ | ||
36 | 24 | ||||
37 | " キーマッピング.開いている間 | 25 | " キーマッピング.開いている間 | ||
38 | " ref. http://www.karakaram.com/unite | 25 | ------------------------------------------------------------ | ||
39 | autocmd FileType unite call s:unite_settings() | 25 | ------------------------------------------------------------ | ||
40 | function! s:unite_settings() | 25 | ------------------------------------------------------------ | ||
41 | " ウィンドウを分割して開く | 26 | " ウィンドウを分割して開く | ||
42 | nnoremap <silent> <buffer> <expr> | 27 | call denite#custom#map('_', "<C-h>", | ||
43 | \ <C-h> unite#do_action('split') | 28 | \ '<denite:do_action:split>') | ||
44 | inoremap <silent> <buffer> <expr> | 29 | call denite#custom#map('insert', "<C-h>", | ||
45 | \ <C-h> unite#do_action('split') | 30 | \ '<denite:do_action:split>') | ||
46 | " ウィンドウを縦に分割して開く | 31 | " ウィンドウを縦に分割して開く | ||
47 | nnoremap <silent> <buffer> <expr> | 32 | call denite#custom#map('_', "<C-v>", | ||
48 | \ <C-v> unite#do_action('vsplit') | 33 | \ '<denite:do_action:vsplit>') | ||
49 | inoremap <silent> <buffer> <expr> | 34 | call denite#custom#map('insert', | ||
50 | \ <C-v> unite#do_action('vsplit') | 35 | \ "<C-v>", '<denite:do_action:vsplit>') | ||
51 | " インサート→ノーマルモード | 36 | " インサート→ノーマルモード | ||
52 | imap <buffer> jj <Plug>(unite_insert_leave) | 37 | call denite#custom#map('insert', | ||
53 | endfunction | 38 | \ "jj", '<denite:enter_mode:normal>') | ||
53 | ------------------------------------------------------------ | 39 | |||
53 | ------------------------------------------------------------ | 40 | " コマンド | ||
53 | ------------------------------------------------------------ | 41 | if executable('rg') | ||
53 | ------------------------------------------------------------ | 42 | " コマンド.file_rec で使うコマンド | ||
53 | ------------------------------------------------------------ | 43 | call denite#custom#var('file_rec', 'command', | ||
53 | ------------------------------------------------------------ | 44 | \ ['rg', '--files', '--glob', '!.git']) | ||
53 | ------------------------------------------------------------ | 45 | " コマンド.grep で使うコマンド | ||
53 | ------------------------------------------------------------ | 46 | call denite#custom#var('grep', 'command', ['rg']) | ||
53 | ------------------------------------------------------------ | 47 | call denite#custom#var('grep', 'recursive_opts', ) | ||
53 | ------------------------------------------------------------ | 48 | call denite#custom#var('grep', 'final_opts', ) | ||
53 | ------------------------------------------------------------ | 49 | call denite#custom#var('grep', 'separator', ['--']) | ||
53 | ------------------------------------------------------------ | 50 | call denite#custom#var('grep', 'default_opts', | ||
53 | ------------------------------------------------------------ | 51 | \ ['--vimgrep', '--no-heading']) | ||
53 | ------------------------------------------------------------ | 52 | else | ||
53 | ------------------------------------------------------------ | 53 | " コマンド.file_rec で使うコマンド | ||
53 | ------------------------------------------------------------ | 54 | call denite#custom#var('file_rec', 'command', | ||
53 | ------------------------------------------------------------ | 55 | \ ['ag', '--follow', '--nocolor', '--nogroup', '-g', '']) | ||
53 | ------------------------------------------------------------ | 56 | endif | ||
54 | 57 | ||||
|
キッカケ: 「denite.nvim でも、今まで (つまり unite.vim で) の感じで、どこまでイケる?」
当環境においても unite.vim を導入させて頂いておりまして、その unite を呼び出すキーマップと言うのは、ほぼ “習慣” と言ってしまって良い程、浸みついたものとなっていたりします。
denite.nvim に行っても、そんな習慣をなるだけ、いや、出来るのなら全く変えることなく振舞えるようなものであって欲しいと願うわけです。
例え慣れるまでアタフタするのが最初だけであろうとも。
と言うことで、denite.vim への移行にあたって、unite.vim での習慣や癖をどこまでそのまま持って行けるか、を確かめておきたいと思いました。
そしてその障壁の程度を、導入の判断基準にしようかなと考えたわけです。
denite.nvim のために他にやったこと
pip3 install neovim
した
:h denite-install
に記載あり。;
You can enable Python3 interface with pip:
sudo pip3 install neovim
移行したばっかりだと mru が出てこないので、neomru.vim 入れ直した
これは自分だけかもしれません。
何度やっても表示されないので、一旦削除してみる。
で期待通りの動作をしてくれるようになりました。
Q: How to remove the disabled plugins?
A: You can remove them like below.
Note: You need Vim 7.4.1107+ or latest version of neovim.call map(dein#check_clean(), “delete(v:val, ‘rf’)”)
実はこれ、後で知りました。あは。
さらにこういうのもあるらしく。;
call dein#reinstall({plugin name})
自分はこんなこと露知らず、rm
担いでディレクトリまで行きましたよ...
ripgrep っての入れた
grep を ag にしたいな、と思って設定してみたのですが、どうしてか上手く動作せず息苦しくなって、denite.nvim のヘルプにある設定例 :h denite-examples
を見ていて思った。
“ Ripgrep command on grep source
Ripgrep
?
速いらしいよ。
インストール。
$ brew install ripgrep
やっぱ homebrew すてき。
他にも色々やったような気もするけど...
結局、よく分かんなくて放ったこと
やはり grep で ag
を充てるのどうしても上手く行かなかったこと。何が悪いのだろう、わかんない。
ag.vim は問題ないんだけどな。
Vim 8 で denite 呼び出すと、落ちてしまうこと。これは自分だけかもしれない。別途時間とって設定を見直そうと思う。
Neovim では勿論、問題ない。
というところで、はい、おしまい。