Windows の Sublime text の CTags プラグインで Auto Complete を使用する

CTagsの.tagファイルで自動補完リスト

このプラグインには、実は.tagファイルを関数の補完リストとして使用する機能が実装されている。
だがしかし!みんな大好きWindowsでは、この機能がなぜか動かない。

というわけで、CTagasのプラグインにCTagsAutoCompleteというClassがあるのでメンバ関数を確認…
f = os.popen(
"awk \"{ print " + prefix + "$1 }\" \"" + tags_path + "\"")

awk…

というわけで、理由はawkと呼ばれるテキスト処理ソフトウェアが必要ということが判明。
なのだが、Windowsには標準で入っていない。

ならばawkとやらをインストールだ。

Auto Completeを使えるようにする

なんとたったの3ステップ!

  1. Gawk for Windows から Binaries のzipをダウンロード
  2. zipを解凍
  3. PATHの通ったフォルダにawk.exeを設置

これで単語補完が働いたときに.tagsファイルに含まれる関数群がリストアップされてより仕事がはかどるという寸法です。

ただ、.tagsファイルが大きいと単語補完にも時間がかかる。
今はまだ、不要な関数群(composerで入れたライブラリとか)はtagファイルのビルド時に無視リストに入れておいた方がよさげ。

好きなものを見つけてそれを馴染ませる

好きなものをみつけよう

開発するなら自分の手に馴染んだもの、お気に入りのものを使おう。
開発者が使用するアプリは多岐にわたる。

OS、ブラウザ、エディタ、ターミナル、IDE、開発言語……

それこそ分野によってもいろいろあるだろう。
何を選ぶにしても試すことを躊躇ってはいけない。

試して試して試す

例えば、エディタ。

自分は専門学校の頃にエディタというものを知ってからというもの、常に自分に馴染むものを探し求めていた。
そこから10年くらいメインでEmEditorを使用していた。

しかし、ある日出会ってしまった、Sublime Textに。
Sublime Textのデザインといい動作といい、それは本当に一目で恋に落ちたと言ってもいい程の速度で10年使ったEmEditorを過去のものへと変えた。

実は10年間ただEmEditorを使い続けていたわけじゃない。
その間も暇を見つけて、そして新しいアプリが公開されればそのエディタを使っていた。もちろん有名どころな秀丸、Notepad++、さくらエディタ、最近だとAtom、VS Codeあたりも試したけど自分にフィットするものは他に無かった。

何がフィットする?

これは個人によって何が自分の優先度にくるのかでいい。
UIデザイン?
使い勝手?
軽さ?
自分が気に入ったものを使えばいいんだ。

自分がPythonを使いたい理由なんて”The Zen of Python”の思考が自分の性に合ってる。名前の響きがいい。
そんなもんだ。
だいたい他の開発者にこう言うと呆れられる。「ああ、この人ロジカルじゃない。メリットとか考えないんだ」って。

でも、メリットがあるなら自分が扱いづらい言語を使いたいか?
やだやだ。
使いたくない。
仕事ならそこは譲るしかない。けど、そこに縛られる必要がないなら別に好きなものを好きなように使えばいいじゃん。

そして気に入ったらとことん使う

とことんカスタマイズする。キーボードショートカット、テーマ、フォント……。
片っ端から自分が好きなように変えていこう。

膨大な時間がかかる?
いいじゃない。
一生使っていくかもしれないものを自分に馴染ませないでどうする?
そこを惜しんでどうするんだ?

気に入ったものを使えば、何もかもが楽しくなってくる。
手に馴染ませれば、思考が何にも邪魔されずに画面上で動き始める。

気に入ったものを使うってのは最高だ

そこにかけた労力も時間も全てが自分にそれ以上のものを返してくれる。
その瞬間はいつだって最高に楽しく開発してるはずだ。

でも、馴染みすぎてて”邪魔されてない”なんてことには気づかないと思うけどね。

EditorConfigを使い始めたらプログラマー世界の繋がりを感じた。

開発界隈では自分のエディター設定をプロジェクトのコーディング規約に合わせる作業ってのがあります(コーディング規約が無い場合も多々ある)。

そこでこのEditorConfig (http://editorconfig.org/) をお勧め。
これを使ってみたんだけど、プログラマーの世界って繋がってるなぁ、って思っちゃったり。そんな大層なことじゃないかも知れないけれど。

editorconfig.org

root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 80

[.py]
max_line_length = 79

[*.{rb,js}]
indent_size = 2