読者です 読者をやめる 読者になる 読者になる

出てこいっ 「.vimrc も mru としてリストに現れるように」

tech vim settings

またやった...

「まさかこれはないだろう」が実はソレ,って言う.故,壮大に何一つ意味の無い無駄な廻り道.

今回のお話は Unite.vimneomru.vim

未来の自分の為に,何でこんな設定をしたのか,のメモ.

.vimrc も mru ファイルのアイテムとしてリストに揚がるようにしたい

こうなりますか ?

g:neomru#follow_links = 1

あまり自信無かったりもしますが,一応願った通りの振る舞いをしてくれています,ということで :-P

キッカケ

.vimrc を色々触っている時のこと.

:Unite file_mru した時に*1,この .vimrc ファイルも mru ファイルとしてリストアップされるようになってほしいと考えました.

勘違い「隠しファイル Hidden Files だからじゃない」

考えるキッカケが .vimrc ファイルだっだ,と言うことあって,その要因を "隠しファイル hidden files*2" に求め,それらに関するスイッチなりが有る筈,等と必死になって探し廻るわけですが,その思い込みがそもそもの間違いだと言う orz.

ばか.

問題はそこじゃない.

あ.「その .vimrc はシンボリックファイルだよな」

ここでもご多分に漏れず,.vimrc などの rc ファイルは,Github を使って管理運用していたりします.

開くのに叩いているそのファイルは,シンボリック symlink ファイルだったりします.

隠しファイルだから" ではなく,"symlink ファイルだから" ?

軌道修正.

ということで「symlink ファイルも mru としてリストに現れるように設定する」

そのスイッチは,g:neomru#follow_links

これを 1 (true) にしてやるみたいです.リストに挙がってくるようになりました.

ちなみのこの値のデフォルトは 0 です.

そういうことでして,正しくは...

"symlink ファイルを mru ファイルとしてリストに表示されるようにするには g:neomru#follow_links を 1 にする."

となるかと思います.

でも実は,これが本当の解なのかは正直戸惑いもあったりします(笑).

ヘルプを見るとそれは,リスト上に表示するパスをどちらにするかのスイッチで,今回のような symlink ファイルを捕える/捕えない自体を切り替えるようなものでは,どうも,無いようにも読み取れてならなかったりするのです.

この辺りどうなのでしょ.

そういった意味で,本当のところは違うところが効いていたりするのかもしれません.今の自分には...ここが精一杯.

勘違いで試したこと

ここにて更に恥を晒しておきたいと思います.

先にも触れてます勘違いあって,途中本当に何の役にも立たないアタックもやっておりまして,それら含め備忘録として,果敢にもメモ.

unite#custom#source() ? → ちがいます

ひとつは,コチラ.;

vim " matcher をデフォルトにする call unite#custom#source('file', 'matchers', "matcher_default")

これで unite-file でドットファイルが表示されるようになります.

今回の場合ですと unite#custom#source('file_mru', 'matchers', "matcher_default") とかなるのかな? と.

言うまでもなく,これは見当違い.見つけた時は「まぁ早速のビンゴじゃん?」と胸躍ったのですがね,問題はそこ,ドットファイルという属性,じゃない.

と言いますか,それ以前に.

この設定,やろうとしている事は何となく分かるのですが,ヘルプ見ても具体的にイメージ出来なくて...matchersmatcher_default をどう捉えたら良いのか分かってないんだと思う.matchers は何にするかを決めるラベルみたいなもので,matcher_default に対象となるキャラクタの内容をもっている? んがぁっ.

ちなみに,一応,call unite#custom#source('file', 'matchers', "matcher_default") とすると :Unite file できちんとドットファイルは現れるようになります.

参照先は,;

» unite-file でドットファイルを表示する - C++でゲームプログラミング
» Display dotfiles in search results · Issue #894 · Shougo_unite.vim · GitHub

g:unite_source_rec_async_command=['find', '.', '-L', '-type', 'f'] → ちがいます

ドットファイルじゃなく symlink だから?」とやっと気づき,程なくして目に留まったのがこちらでのやり取り.

» file_rec_async needs to follow symbolic links · Issue #581 · Shougo_unite.vim · GitHub

はたと思い,rec/async のがあるのなら mru の,例えば g:unite_source_mru_command な感じであったりするのだろうか,なんぞ思い探してみるも,やはり見当違いのようで.

一応,g:unite_source_find_command とか g:unite_source_find_default_opts とか辺り含め試してはみたのですが,やはり変わらず...疲れちゃって(笑).

その他知ったこと

色んな事を曖昧にしながらここまで来たのが良く分かる.

この度,改めてキチンと向き合ってみて,今更に知ったことメモ.

  • それは "source" と言う.

    よく目にする unite-buffer や unite-file みたいな unite-○○○は unite.vim で buffer や file,○○○を操作する,というイメージを持ってもらうとわかりやすいかと思います.

    Unite というコマンドの目的語にあたるソレは source と言われるもので,これを操作する.(:h unite-sources)

  • file_rec とか file_rec/async とかの "_rec" ってのは "recursive" ってことで良い.
    内含するディレクトリ内もすべて,と言うアレ.

...あれ? これだけ? だっだっけ? 何か他にも色々とあったような(笑)

この作業,実は数か月前の話だったりするのです.あぁ相も変わらず &> /dev/null ...

と言う事で,ひとまず,はいおしまい.

*1:実際はマップをしてますが

*2:不可視ファイル,ドットファイル などとも言うかと.