- 更新日: 2020年12月24日
- 公開日: 2020年12月21日
プログラマーが整えておくべき!myコーディング環境
ソフトウェアエンジニア/プログラマーにとって一番大切な道具といえば『テキストエディタ』です。
もし、コーディングにWindows標準の『メモ帳』を使っている方がいらっしゃったら、すぐにテキストエディタに切り替えてください。テキストエディタにはコーディング作業を効率化する機能が多く搭載されており、メモ帳でコーディングするのとは天と地ほどの差があります。
今回はテキストエディタを使ってコーディングする際に整えておくべき環境についてお話します。
私のおすすめテキストエディタ
環境の話に入る前に、どんなテキストエディタを使えばいいの?ということに触れておかなければなりません。
世の中には有料、無料たくさんのテキストエディタが提供されています。
それぞれの特長については、ネット上にたくさんの情報がありますのでここでは割愛するとして、ズバリ何がオススメですか?と聞かれれば私は『Visual Studio Code』と『Sublime Text 3』の2つを挙げるでしょう。
Visual Studio CodeはMicrosoft社が開発・提供しているテキストエディタで、機能拡張が豊富で日本語での情報も豊富(解説書もあります)なところがおすすめする理由です。
無料で提供されているので、導入のハードルが低いというのも大きなポイントですね。
もうひとつのSublime Text 3は有料ですが、他のテキストエディタに比べると動作が速く快適に動作し、こちらも機能拡張が豊富なところがおすすめポイントとして挙げられます。
ただし、日本語の情報が少ないことが難点ではあります。
筆者は長い間Sublime Text 3を使っていたのですが(もちろん正規のユーザーとして使用料を支払っています)以下の理由から最近Visual Studio Codeに乗り換えました。
1. Visual Studio Codeも機能拡張が多くSublime Text 3から乗り換えても問題ない
2. 無料のテキストエディタの中では比較的動作が速い
3. 周囲に使っている人が多い
1と2の理由だけならばSublime Text 3のままでもよかったのですが、筆者の場合は3が重要でした。
プログラミング関係の質問をいただくことがあり、その中でVisual Studio Codeに関するものも多かったので、質問に答えられるよう普段から使っておこうと考えました。
「周りに使っている人が多いか?」という観点はツールを選択する時の大きなポイントです。
Visual Studio Code https://azure.microsoft.com/ja-jp/products/visual-studio-code/
Sublime Text 3 https://www.sublimetext.com/
コーディングスピードを左右するキーバインディング
コーディング作業を効率化する上で整えておくべきもののひとつに『キーバインディング』があります。
キーバインディングとは複数のキー操作の組み合わせと実行する機能の対応付けのこと。
たとえば『Ctrl』(Macの場合は『command』)キーを押しながら『a』キーを押すとテキストエディタ内のすべてのコードを選択できますが、これもキーバインディングのひとつです。
同じような言葉で『キーボードショートカット』と呼ばれるものもありますが、いずれもキーの組み合わせ操作と実行する機能の対応付けのことを指していて、ほぼ同じ意味と考えていただいて差し支えありません。
PCを使って作業をする時、マウスやトラックパッドなどのポインティングデバイスとキーボードを使いますね。
しかし、キーバインディングをうまく使えばほとんどの作業をキーボードのみでできるようになり、コーディングスピードが上がります。
たとえば、コピー&ペースト(貼り付け)をマウスでおこなうと
- コピーしたい範囲をマウスでドラッグして選択する
- 『編集』メニューから『コピー』を選ぶ
- 貼り付けたい場所をマウスでクリックする
- 『編集』メニューから『ペースト(貼り付け)』を選ぶ
という操作になりますが、これらの操作は以下のようにキーボードだけでも操作できます。
1. SHIFTキーを押しながらカーソルキーを操作してコピーしたい範囲を選択する
2. 『Ctrl』(Macの場合は『command』)キーを押しながらアルファベットの『c』キーを押す
3. カーソルキーで貼り付けたい場所へカーソルを移動する
4. 『Ctrl』(Macの場合は『command』)キーを押しながらアルファベットの『v』キーを押す
マウスだけでも操作できるんだったらどっちでも同じじゃないかと思われるかもしれません。キーボードとマウスの往復なんて時間的には大したロスじゃない、と思う方もいるでしょう。
しかし、コーディングのようにタイピングがメインの作業をしている時は、マウスやトラックパッドに手を移動する動きでも負担になり、集中力を途切れさせてしまうものです。
キーバインディングには『コピー』や『ペースト(貼り付け)』のような多くのアプリで共通の操作以外に、カーソル移動や範囲選択のようなコーディングで多用する操作、各ソフトウェア独自の機能に対応づけた操作もあり、これらを自由に使いこなせるようにすればコーディングスピードが向上します。
また、多くのテキストエディタにはキーバインディングを自由に設定できるようになっており、よく使う機能を自分の使いやすいキーの組み合わせで設定しておくと、さらに作業効率UPが可能です。
テキストエディタのキーバインディングを設定する時、『Emacs風』や『vim風』という設定の組み合わせが予め用意されている場合があります。
これらはUNIX系OSで古くから使われているテキストエディタ『Emacs』や『vi(現在はその改良型のvimが一般的)』の標準的なキーバインディングを模したもの。
これらのテキストエディタはコンピュータの操作がGUIになる前から使われていたことから、標準パターンとして用意されていることが多いのです。
もちろん、あなたが『Emacs』や『vim』を使ったことがなければ気にする必要はありません。あなたの使いやすいキーバインディングを設定して活用しましょう。
コーディングするまえに決めておくべき3つのこと
個人の開発ですべてのコードを自分一人書いているのであれば気にする必要はありませんが、複数のメンバーでコーディングを行うチーム開発の場合、コーディングルールを定めておくことが作業効率の低下を防ぎます。
その中のもっとも基本的なものが『文字コード』『改行コード』『インデント』の3つになります。
文字コード
私たちがコンピュータ上で目にする文字情報は、コンピュータ内部では数値情報として保持されています。
表示される文字に対応した数値情報の組み合わせを『文字コード』といいUTF-8、SHIFT JIS、EUCなど多くの文字コードがあります。
たとえば、ひらがなの『あ』はUTF-8ならE38182、SHIFT JISなら82A0、EUCならA4A2で表されます(すべて16進数表記です)。
このように使用する文字コードによって内部の情報が異なるため、例えばUTF-8で作成されたファイルをEUCとして扱うと正しい文字情報が再現されません。
これがいわゆる『文字化け』という現象です。
開発の中でこのようなことが起こらないようにするために、プロジェクト内でどの文字コードを使うかをあらかじめ決めておく必要があります。
ちなみに最近はソースコードにUTF-8でコーディングすることが多く、特別な事情がない限りUTF-8を使っておくと良いでしょう。
改行コード
目に見えないのでイメージしにくいかもしれませんが、行末にも「ここで改行しますよ」ということを表す数値情報が入っています。これが『改行コード』です。
改行コードには『LF』『CR』という表示されない『制御文字』と呼ばれる情報が使われていて、この2つを組み合わせた『CR+LF』と合わせて3つのパターンが使われています。
『LF』を改行コードとして使っているのはLinuxなどのUNIX系OSや現在のmacOS、『CR』は古いMac OS(バージョン9まで)で使われていました。
『CR+LF』を改行コードとして使っているのはWindowsというように分かれています。
改行コードの違いは、バージョン管理システムの中で変更履歴が適切に管理されないといったトラブルの原因になることもありますので、プロジェクト内で統一しておくことが必要です。
インデント
プログラミングにおいては入れ子構造を視覚的にわかりやすくするために、Pythonではブロックを定義するのに用いられるのが『インデント(字下げ)』です。
インデントをおこなうとき、空白文字を挿入する『ソフトタブ(スペースと呼ぶ場合もあります)』と『tab』の制御文字を挿入する『ハードタブ(単にタブと呼ぶ場合もあります)』の2種類があり、テキストエディタの設定で切り替えられるようになっています。
いずれの場合もキーボードの『tab』キーを押せばインデント処理がおこなわれますが、ソフトタブが設定されていれば字下げに必要な文字数分だけ空白文字(スペース)が挿入され、ハードタブが設定されていれば『tab』の制御文字がひとつ挿入されます。
ソフトタブが好きだという人もいれば、ハードタブが好きという人もいて、字下げの文字数も2文字、4文字、8文字と様々です。
インデントに関しては文字コードや改行コードと違って、文字数の違いで文字化けなどのトラブルになることはありません。しかしそれぞれの好みが反映される部分ですので、開発チーム内で揉めごとのタネになる可能性はあります。必ずプロジェクトの最初に決めておきましょう。
コーディングルールをプロジェクトごとに設定する
文字コード、改行コード、インデントはプロジェクトによって異なることもあります。
あるプロジェクトはUTF-8、LF、8文字ソフトタブ、別のプロジェクトはUTF-8、CR+LF、4文字ハードタブ、また別のプロジェクトでは...。
このようにプロジェクトごとに異なるルールを管理するために『EditorConfig』という仕組みがあります。
EditorConfigを使うとプロジェクトごとのルールを設定ファイルとして記録しておき、それをテキストエディタが参照することでテキストエディタが自動的にルールにそった文字コードや改行コード、インデントにしてくれます。
人間が意識する必要はありません。
メジャーなエディタの多くがEditorConfigに標準で対応しているか、機能拡張を使って対応させられます。
プロジェクト開発を行う場合には、こういったツールも活用してみてください。
EditorConfig https://editorconfig.org
\Webサイト担当者としてのスキルが身に付く/
テキストエディタはプログラマーの刀
プログラマーにとってテキストエンジニアは侍の刀のようなもの。
自分用に設定してしっかり研ぎ込めばより強力な武器になります。
ぜひいろいろなテキストエディタを試して自分好みの一本を見つけ、しっかり設定を作り込んでみてください。
今まで以上にコーディングが好きになると思います。
- この記事を書いた人
- 若林健一