Vimでファイル編集中にスペルミス(typo)を検出するためにvim-codespellを導入してみた
- 1. はじめに
- 2. 検証環境
- 3. shinglyu/vim-codespellを導入する
- 4. shinglyu/vim-codespellのインストール
- 5. shinglyu/vim-codespellを使ってみる
- 6. shinglyu/vim-codespellに自分で辞書登録してみる
- 7. ひとこと
はじめに
Vim でブログのエントリを作成したり、技術ドキュメントを作成したりしています。
技術系の内容をまとめていると、アルファベットの単語の登場頻度が多いわけですが、ちょっとしたスペルミスをすることがちらほらあります。
エントリやドキュメントであれば、スペルミスを舌としてもまだマシなのですが、ソースコードにスペルミスがあると(例えばクラス名やメソッド名)それが使われてしまって後戻りできない、ということも時々あります。
これはイカンということで英語のスペルミスを検出するためのプラグインを探して導入してみました。
検証環境
$ uname -moi
x86_64 MacBookPro16,1 Darwin
$ nvim --version | head -n 2
NVIM v0.4.4
Build type: Release
shinglyu/vim-codespellを導入する
Google 検索して最初に見つかった Github 上の Vim プラグインが以下でした。
したがってこれを導入し使ってみることにしました。
shinglyu/vim-codespellのインストール
Github の Install の説明を見るのが一番確実です。
2021-06-20 時点だと、以下の工程を踏むと書かれています。
- [aspell][http://aspell.net/] というツールの導入
- Mac なら
brew install aspell
を実行
- Vim プラグインとして、
shinglyu/vim-codespell
を導入
プラグインのインストール方法についてはここでは省略します。
Vim のプラグインは Vundle
/ vim-pathogen
/ vim-plug
/ NeoBundle
/ dein.vim
など色々ありますので導入していない場合には検討ください。
shinglyu/vim-codespellを使ってみる
早速使ってみました。
前回のブログエントリのもととなる Markdown を NeoVim で開きます。
その後、 :Codespell
コマンドを実行します。
幸いタイポがないためあまり良くわかりませんが、一部の単語が赤色で表示されるようになりました。
辞書登録されていないものはハイライト表示される模様です。
shinglyu/vim-codespellに自分で辞書登録してみる
Ansible や Kubernetes といった技術単語が不正な文字扱いとなってしまっているので、こちらを辞書登録します。
まずはプラグインが配置されているディレクトリに移動します。
ちなみに僕の場合ですが、 SpaceVim を導入しているためプラグインの配置場所がちょっと変わっています。
$ cd ~/.cache/vimfiles/repos/github.com/shinglyu/vim-codespell
$ ls -la
drwxr-xr-x - genzouw 20 6 09:26 .git/
drwxr-xr-x - genzouw 20 6 09:21 dict/
drwxr-xr-x - genzouw 20 6 08:37 doc/
drwxr-xr-x - genzouw 20 6 08:37 plugin/
.rw-r--r-- 2.1k genzouw 20 6 08:37 README.md
次に dict
ディレクトリに移動します。
$ cd dict
*.list
という拡張子のファイルがいくつかありますが、これが辞書ファイルになります。登録されているものはスペルミス扱いにしない、という仕様のようです。
既存のファイルと同じように自分用の辞書を追加します。my.list
というファイルを作成し、 ansible
と kubernetes
という単語を追加します。
$ echo ansible >> my.list
$ echo kubernetes >> my.list
作成後は build.sh
を実行すれば、*.list
ファイルを纏めて cs.dict
というファイルに変換してくれます。
$ ./build.sh
これでエラーとならないはず、、、と思っていたら、僕の環境ではこれだけでは正しく動作しませんでした。
SpaceVimを使っている環境だからでしょうか?以下の一手間を加えて初めて正しく反映されるようになりました。
cp \
~/.cache/vimfiles/repos/github.com/shinglyu/vim-codespell/dict/cs.dict \
~/.cache/vimfiles/.cache/init.vim/.dein/dict/cs.dict
SpaceVim のキャッシュファイルなのでしょうか?あまり仕組みがわかっておらず。
ひとこと
導入して気づいたのですが、以下のプラグインのほうがスター数が圧倒的に多く、早速乗り換えしようと思い始めています。^^;
ディスカッション
コメント一覧
まだ、コメントがありません