非エンジニアの 42Tokyo 滞在記(1)
(※ note のエディタで何が出来るかをよく把握していないので奇妙な書式があってもスルーということで)
~ エディタ ~
写真でよくアピールされていますが 42Tokyo のメイン機材は Mac です。だから MacOS はある程度習得必須です。見通しのいいフロアに iMac が300台位並んでる画像がよく使われていますが良くも悪くもあのままです。
でコーディングですがエディタに何を使えとかの指示は 42Tokyo からは特にありませんでした (そもそもあまり指示されることが無いです)。なので MacOS のテキストエディットとかでもいいのですが、C で書いたソースをコマンドラインからコンパイルしたりするのは分かっていたのでターミナルを立ち上げ一思案。
自分の乏しい経験でもすぐに使えたのは nano。自宅で Raspberry Pi の設定ファイルをいじるときなどはこれを使ってました。実際 Piscine の初めの頃は nano で色々書いていました。
しかし Linux界には2大巨頭が、vim (vi は置いておきます) と Emacs。
加えて 42 ではソースコードに定型のヘッダを入れるきまりで、プラグインとかで公式サポートがあるのもこの2つのエディタのみ。
なので2択です、待ったなし。
~ Pros & Cons ~
取り敢えずはお試しで使ってみた超主観的印象。
Emacs --> Pro キーの組み合わせでキーボードから手を放さず何でも可
Con そんなに絶対覚えられない!
vim --> Pro コマンドの感じは Emacs より敷居が低め(?)
Cons モードの遷移が面倒
(↑ 最低レベルのエディタ比較)
Lispでカスタマイズ出来たりやたらややこしい感じがした Emacs に比べ vim は最低限3つ操作を覚えれば使えそうでした (ホントかいな)。
コマンドラインモードの w で保存 (wq で保存後即終了)
コマンドラインモードの q で終了 (q! で保存せずに強制終了)
入力モードで普通に文字入力
という訳で即席 vimmer が爆誕しました。この判断が正しかったかどうかは 42Tokyo 本科に進んだ今でもはっきりしませんが、自分の知る限り生徒のEmacs 遣いには Piscine の期間中も含めまだ出会っていません。
~ VS Code って使ってる? ~
Piscine の時も各自でインストールして使っている人達が散見されました。42Tokyo のポリシー的にいいのか悪いのかイマイチ判然とせず当初はパスしていたのですが、最近見た導入が認められたツール一覧にこれがあったため一応自分の環境にも導入しました。デバッガもIDEの中から使えたりするとのことで、特に複数ファイルを同時に扱う際には圧倒的に便利... なのですがあまり活用していません。というのは 42 には Exam というイベント (?) がカリキュラムの一環として節目毎に設定されていて、その際に VS Code は使えないのです。
Exam とはインターネットから隔離された全受験者均一の環境の下、限られた時間内に複数のプログラミング課題をこなすというものです。VS Code は入っていないのでコーディングは vim か Emacs (nano も使えるとは思いますがわざわざ試そうという気は起きないです) を使う必要があり、デバッガも CUI な lldb (gdb は標準のMacOSに入ってない) の一択。であれば Exam 対策の意味も含め vim/Emacs (+lldb) に慣れた方がいいかなと。
でも世間的には人気だし一応自宅の環境にも導入してそれなりに使えるようにはなっています VS Code。でも 42Tokyo では vim メインということにしています。
~ 蛇足 ~
というような経緯で私は未だ低空飛行 vimmer な日々を送っています。取り敢えず使えているのでどんどんコマンドを覚えて... という向上心が今一つ盛り上がらず。
とはいえあまりに効率が悪かったので以下のコマンドを追加で覚えました。
ノーマルモードで yy はカーソル位置行コピー (数字を打って行数指定可)
ノーマルモードで dd はカーソル位置行カット (行数指定は yy に同じ)
ノーマルモードで p はカーソル位置の次行へペースト
これでコピペも無問題。
あと行番号表示 (set nu) とシンタックスハイライト (syntax on) だけは設定ファイルに入れてます。
バイナリデータを含むファイルを16進数表記で vim から直接編集する方法も覚えたのですが、それを説明するにはこの記事は既に長くなり過ぎたのでここいらで止めておきます。
この記事が気に入ったらサポートをしてみませんか?