皆さんはなんのエディタを使っていますか?VisualStudioでしょうか、それともSublime Textでしょうか、はたまた秀丸でしょうか。笑
全く関係ないのですが秀丸って年賀状作成ソフトのような響きですよね。
エンジニアの方はVimやEmacsを使う方が多いと思います。しばしばEmacserとVimmerの間でエディタ戦争が見られるほど、こだわりのある方が多いです。
僕はEmacsを使っています。競技プログラミングを始めた頃、Emacsと言うエディタの存在を知り、なんとなく使い始めました。
しかし、その出会いは偶然で、もしかしたらVimだったかもしれませんし、秀丸だったかもしれません。
(CUIエディタを探していたのでその可能性はほぼゼロですが笑)
その後人工知能の研究者に出会い、いろいろ指南を受け、Emacsにどっぷり浸かりました。
人工知能研究者界隈ではEmacsが主流らしいです。(元々MITのAI研究室で誕生したのがEmacsの始まりでもあります)
それからはCtrlキーから離れられず、いろんな機能やライブラリを追加し、現在に至っています。
今回は、そんな僕のEmacsを使う上での環境をご紹介します。
CONTENTS
前提
今回はの前提として、以下のつを挙げさせてください。サポートしていなかったり、僕が触れない話もあるからです。
- Emacs Version 26.1
- Emacsの基本的な使い方は知っている
- Homebrewが入っている
24.0以上でないと入っていないもの(package list)があるのでもしそれより前のものを使っている方は更新してください。
package listのみでインストールもできたはず。。。
ファイルを開く、編集する、セーブ、閉じる、キーバインドなど。
おまけ。すぐに入れられますよ(最初から入ってましたっけ、、、忘れた。汗
僕がMacユーザですよーってことです。
MELPAでいろいろインストール
パッケージのインストールからです。
インストールするパッケージは以下の3つ。
- company-irony
- flycheck
- yasnippet
MELPAでインストールする手順は以下です。
ここでのpackage nameは全一致です。部分一致では[No Match]と言われました。
リストを表示してインストールもできます。
iキーで選択し、xキーでインストールです。
init.el/.emacsで設定
インストールできたら、それらが使えるように設定します。
設定するファイル(Emacs Lispがかけるファイル)は2つあり、.emacsもしくは.emacs.d/init.elです。
調べるとinit.elが安牌らしいです。
設定、128行もあったので割愛です。大したことはしていないので、参考にした記事を載せておきます。
- C++11時代のEmacs C++コーディング環境
- company-ironyを使ってemacsでC/C++の補完
- emacsのコード補完ツールcompany-modeの設定備忘
- emacsの補完用パッケージcompany-mode
- Flycheckでモダンなシンタックスチェック
全部Qiitaです。笑
yasnippetだけ、参考文献を載っけていないのは、ほぼ何もしていないからです。
以下の1行で終わりです。
エラーとの戦い
設定が終わり、ironyを動かすためにサーバをたてます。
すると、以下のようなエラーが出ました。
そこで
とすると、
めっちゃエラー吐かれる、、、
macOSでemacs irony-serverがコンパイルできない時の対処法を参考にして、以下のようにコマンドを打ってみました。(あまり理解はせずに、、笑)
するとまたエラーが出たのですが、PCのメモリ不足だったことが判明。確かにこのとき僕のMacの容量は残り10GB程度。
これらのメモリを解放して再起動した後、上のように対処したらしっかり動くようになりました。
言語ごとに補完用のLispを書かなきゃいけないの?
元々C++用にパッケージを入れたのですが、入れた直後にPythonファイルをいじりました。結果、C++だけでなくPythonでもしっかり補完とエラーチェックどちらも動いていました。
なので、Lispは書かなくて平気です。
.mdファイルはもしかしたら入れなきゃかも、、、(まだ試したことないです。)
おわりに
いかがでしたでしょうか。
去年の秋に整備したので、若干忘れているところがあったのですが、なんとか説明できたでしょうか、、、
ソースコードの埋め込みにGistを使いつつ、見た目をカスタマイズして使っています。
少し見やすくなったのではないでしょうか。
今の所週2チャレンジ続いています。Instagramは全くですが。泣
それではまた来週。ありがとうございました。