Open8

「奥が深い症候群」を避けて「10年後でも戦える vimrc 」を作る

eihigheihigh
  • そんなものはない
  • だが現在の自分に最適化しすぎない設定を目指すのは可能
  • まずは何にFFを使って何に使わないか考える
eihigheihigh
  • 定義ジャンプ (gd) あたりは明確にキーストロークにマップしたい。いちいちメニューを開くような真似はしたくない
    • ブラウザでリンクを開く感覚と同じか
  • grep はFFが適している代表的な対象
  • ファイルツリーはFFでナビゲートすべきか、それとも通常バッファに開くべきか
    • 再帰的なのが他と違うところ
    • ツリーというデータ構造を扱うという思想なら fern が適している
    • 「現在開いているファイルが、暗黙に同じディレクトリのエントリへのリンクを持っているので、それを一覧できるのがファイラである」というひねくれた考えをすれば、FFが適しているようにも見えなくもない
    • ぶっちゃけどっちでもいい
  • こう考えるのはどうだろう、「一つにリンクしているならキーストロークを割り当てる、複数にリンクしているならFFを使う」
eihigheihigh

参考

https://daisuzu.hatenablog.com/entry/2012/05/06/204019
https://zenn.dev/yutakatay/articles/neovim-plugins-2022

  • 雑にやると複数の候補を出すことになるが、真面目に処理すれば一意に定められるみたいなケースもある、たとえば Go の test は code lens で候補を出すこともできるが、カーソル位置からテスト関数名を求めて一意に定めることもできる、むろん後者のほうがベター
  • ファイルツリーはこの議論からは少し逸れてる気がしていて、たぶん「ファイルをツリーの形で視認したいか」に依るし、そうであっても :r!tree . で十分
  • git 関係は一旦忘れる
  • それはそれとして、特定のテキスト編集(truefalse にするだとか)って何に割り当てるといいんだろうか
  • qfreplace 使いたい
  • %"" を対応させたい
  • session とか startup ほしい
  • 履歴の扱いはいじりがいがある https://github.com/osyo-manga/vim-milfeulle
  • ヤンク履歴 (yankring)
  • sandwich textobj
  • 特定の filetype のウィンドウを固定する stickybuf.nvim これは nvim なので vim でできないか
  • diff なあ https://github.com/AndrewRadev/linediff.vim
  • セッション系
  • 入れる https://github.com/tyru/capture.vim
eihigheihigh

Easyalign 復活させる、textobj between使う

eihigheihigh
  • 結局のところ、標準のキーマップの延長線上にある機能はいくらあってもいい、textobj とかまさにそう
  • 標準のキーマップとなんら関係ない場所に割り当てるやつをいかに減らせるか
  • <Space> -> command palette -> ... というアグレッシブな案
eihigheihigh
  • 標準と関係のない機能は、見たまま出来ることがたぶん重要で、そのためのFF
  • ファイラは…「ディレクトリをバッファに開く」ことがしたいため、必須ではある
  • しかし未知のファイル(ディレクトリ)を開く方法として最善かというとそうではなさそう、FFでエントリを検索して飛んだほうが早い、あと親ディレクトリも候補として出してやれば最高
eihigheihigh

「暗闇の中の手探り感」を改善するにはどうすれば…

eihigheihigh
  • 素vimにこだわる理由を挙げる: 現在の自分に最適化しすぎない
  • 素vimから離れてしまった部分もあるが、一旦素を経由しているので、もろもろの判断について話すことはできる、そこから読者には選んでもらう