1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Vimにシソーラス(類義語)辞典を追加して補完させる

Posted at

はじめに

プログラミングをする上で、変数や関数の名前付けは非常に重要な作業です。適切な名前を付けることで、コードの可読性が高まり、保守性も向上します。しかしながら、多くの変数や関数を扱う際、名前が重複してしまうことがあります。そのようなときには、言い換えを検討したり、類義語や同義語を調べたりする必要があります。

最強のテキストエディタVim1を使っている場合、プラグインをインストールすることなく、簡単な設定変更だけで類義語の補完機能を追加することができます。特に、母語ではない英語の類義語を補完できると、名前を考える時間を削減できて捗ります。本記事では、そのような簡単な類義語補完機能の設定方法をご紹介します。

Vimに類義語(シソーラス2)辞典を追加する方法

:help compl-thesaurus またはvimdoc-ja/insert.html#compl-thesaurusに書いてあります3

英単語リストはこのGitHub Issueに追加されている:
https://github.com/vim/vim/issues/629#issuecomment-443293282
thesaurus_pkg.zip を展開し、thesaurus.txt をどこかに配置する、例えば~/.vim/thesaurus/english.txt、そして 'thesaurus' オプションをこのファイル名{訳注: ファイルパス}にする。

上に書いてあることを実行するコマンドを書き下します。

# ~/.vim/thesaurusディレクトリを作成して移動
$ mkdir -p ~/.vim/thesaurus; cd $_
# 英語シソーラス辞典zipをダウンロード
$ curl -fsSLO https://github.com/vim/vim/files/2634525/thesaurus_pkg.zip
# 解凍してzipは削除
$ unzip thesaurus_pkg.zip && rm -f $_
# 名前を変更
$ mv thesaurus_pkg/thesaurus.txt english.txt

最後にVimでシソーラス辞典のパスをsetします。
毎回実行するのは大変なので、.vimrcに書いて起動時にシソーラス辞典を追加します。

.vimrc
set thesaurus=~/.vim/thesaurus/english.txt

補完

インサートモード中に C-X,C-T です34

例えば、'thesaurus' ファイルにこのような行があるとして: >
angry furious mad enraged
カーソルが "ang" の後にあり、CTRL-X CTRL-Tを押すと "angry" が補完される。続けて補完すると "furious"、"mad"、...、と置き換えられる

  1. ネタです。サーセン。テキストエディタは8年前に使っていたSublimeTextとVimとメモ帳しか1年以上の使用歴がありません。

  2. シソーラス (英: thesaurus) は単語の上位 / 下位関係、部分 / 全体関係、同義関係、類義関係などによって単語を分類し、体系づけた類語辞典・辞書。Wikipedia - シソーラス

  3. vimdoc-ja/insert.html#compl-thesaurus 2

  4. Amazon - 実践Vim Vimmerの方は当然読んでおられると思いますが、まだ読んでいない方は必ず読みましょう。シソーラス辞典についての話は触れられませんが、Vimの様々な補完の話は「第19章 ダイヤルXを廻せ! 自動補完だ」に出てきます。
    image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?