[[📒Productivityを上げるために大切な100のこと]] No30. 🥈 ---- [[Vim]]というエディタをご存知だろうか? 一般的には以下のように言われている。 - 高度にカスタマイズ可能 - 使いこなせば非常に効率的なエディタ - 使いこなすまでが大変 私は[[Vim]]を非常に気に入っているが、==すべてのことに[[Vim]]を使うべき==とは思っていない。むしろ、[[Vim]]を使うのはターミナルで1つのファイルを素早く確認したり、数行修正するときくらいだ。 ## もともと懐疑的だった[[Vim]] もともと私はアンチ[[Vim]]だった。なぜなら、[[AutoHotkey]]を使ってOSレベルで効率的なキーバインドを実現していたからだ。その全容は[[🦉Spinal reflex bindings template]]というリポジトリで管理している。 [[🦉Spinal reflex bindings template]]の設計思想は[[Vim]]のモードに近しいものがある。だからこそ、それに満足しており、苦労してまで[[Vim]]を覚える気にはなれなかったのだ。 ところが、このときの私は大きな誤解をしていた。**私が分かったつもりでいた[[Vim]]の思想は氷山の一角に過ぎなかったのである**。 それに気付かせてくれた名著こそが[[📚実践Vim]]だ。[[📚実践Vim]]を読んで、私ははじめて[[Vim]]の思想が何たるかを理解することができた。 ![](https://m.media-amazon.com/images/I/51c5qMHV5VL.jpg) ## [[Vim]]の思想を取り入れる [[Vim]]には明確な設計思想がある。最も特徴的なのは、デフォルトの状態が文字の入力ではなく、ファイルの閲覧/編集に特化した[[ノーマルモード]]であることだ。具体例を紹介しよう。 以下のようなテキストがあったとする。=="sasisuseso"と"tatituteto"の中身を大文字にしたい==とき、どのように操作するだろうか。 ```vim "aiueo" "kakikukeko" "sasisuseso" "tatituteto" 12345 ``` 操作の仕方は人それぞれだろう。ただ、[[Vim]]を使うとこうだ。 ![[2021-08-02_vim.gif]] 入力したキーは `fsgUi"ft.` と10キーにも満たない。この一見して意味をもたないコマンドにもちゃんと意味がある。 | コマンド | 意味 | | -------- | ---------------------------- | | `fs` | 次に出現する`s`へ移動する | | `gUi"` | `"`の内側を大文字に変換する | | `ft` | 次に出現する`t`へ移動する | | `.` | 直前の操作(`gUi"`)を繰り返す | この操作に魅力を感じたのであれば、是非[[📒1時間でVimに惚れるチュートリアル]][^1]を読んでほしい。モードの説明など基本的な知識は省略しているが、[[Vim]]の魅力を必要最低限の分量で伝えているつもりだ。 ## それぞれのツールにインストールする 先ほど紹介した[[Vim]]の思想は[[Vim]]以外のツールにもインストールできる。デフォルト設定で対応しているものもあれば、プラグインで対応しているものもある。エディタ[[Vim]]に比べて機能は劣るが、[[Vim]]の思想に必要な機能はほとんど揃っている。 私が使う主な[[IDE]]/エディタは3つある。それらについて取り入れ方をまとめてみた。 | 名前 | 取り入れ方 | | ----------------- | ---------------------------------------- | | [[IntelliJ IDEA]] | [[IdeaVim]]を使う | | [[VSCode]] | [[VSCodeVim]]を使う | | [[Obsidian]] | オプションで`Vim key bindings`をONにする | 他にもブラウザで使いたい場合、[[Google Chrome]]なら[[Vimium]]という[[Chrome Extension]]がある。[[IDE]]やエディタと比べて癖はあるが、一部の機能だけ使う分にはとても便利だ。 ## 最低1ヶ月は使い続けてみよう はじめて[[Vim]]を使う人は、最初の数日で挫折してしまうことが多い。**テキスト入力という欠かせない作業で日頃のスピード感が出ないため、大きなストレスや障壁になる**からだ。 だが、そこで諦めず[[📗最低1ヶ月は試す]]ようにしてほしい。私の場合も慣れるまでに1ヶ月はかかり、[[Vim]]の思想から抜け出せなくなるには半年~1年の時間がかかった。一朝一夕で習得できるものではない。 もし、1ヶ月挫折せずに続けることができ、その後に[[Vim]]の思想から離れたくないと感じたら勝ちだ。文字に関するすべての編集作業に対して、ステージが変わったと思えるだろう。 [^1]: 2021-08-02時点では[[📗4章 テキストオブジェクト]]まで執筆完了