プログラミングをする上で最も重要なのがテキストエディタでしょう。
統合開発環境ではなくエディタをまともに使えない人にまともなプログラマはいない!!!と言い切ってしまいましょう。
テキストエディタは単に文字を打つだけではありません。
命令をキーパンチしていけばプログラミングができると思うのは大間違いです。
いかに効率良くプログラミングを進めるか&ラクするかが重要なんです。
使用するエディタソフトによって違いはありますが、基本的な機能は大体似たようなものだと思います。
今回は秀丸エディタを使って説明していますが、特定のエディタソフトの話ではなく、どのエディタソフトでも共通して使える内容をお伝えします。
※今回アニメーションGIFを使っていますので、画像が動いてないならばクリックしてみてください。
そもそもエディタってなんなの?
エディタとは、効率よく文字を入力することに特化したソフトウェアです。
Wordのようなワープロソフトとは違います。
ワープロソフトは『書類』を作る事を目的としています。
ヘッダやフッタの作成
見出し文字や装飾とか可能
ページという概念があります
ページ番号入れられます
・・・・・・
と数え上げればキリがありませんが、上記のような機能があります。
しかし、エディタにはこれらのような機能はありません。
文字に色を付けるような機能はありますが、書類を作る事を目的にしていませんので、装飾するような機能はありません。
文字を入力することだけが目的であり、そのため動作も軽い事が多いです。(中には重たいエディタソフトもありますが・・・・)
超大雑把ですが、エディタってそういうものです。
エディタってどんなのがあるの?
最近の流行りで言えば、Sublime Text(有料70$)やAtom(無料)。
昔からの流行り(?)で言えば、Emacs(無料)、vi/vim(無料)。
Windowsならサクラエディタ(無料)や秀丸エディタ(有料\4,000+税)、MIFES(有料)やTeraPad(無料)が有名でしょうか。
Macなら、Jedit X(有料\2,940-)やCotEditor(無料)とか、mi(無料)とか。
私がメインで使っているのはWindowsなら秀丸エディタ、MacならEmacsです。
エディタってどんなのがいいの?
エディタって、パソコンを使い込めば込むほど使い易くなってきて、愛着が出るし思い入れが強くなります。
そのため、昔から
『エディタはどれがいいの?』
なんて質問が出ようものなら、宗教論争的になりがちです。
いや・・・、がちじゃないな・・・・
なります!!!
『○○はクソ!』とか『いつまで○○を使ってんの?時代に取り残されるよ』とか、『いつまで経っても○○を超えるエディタは無いじゃん』とかとか・・・・、
自分が使っていないエディタをけなす人は結構多いです。
自分が好きじゃないからってけなす必要は無いのにね。
なので、ネットでそんな質問しても解決しません(笑)
自分で実際に使って試すのが一番です。
人の好みはそれぞれだし、使い易いと感じるポイントも人によって違うし、自分で試さないと分かりません。
人からのオススメエディタなんて信用してはいけません。
この記事も、特定のエディタをオススメするつもりは一切ありません。
秀丸エディタは僕が使っているので一例として出しているだけで、オススメするつもりなんて全くありません。
エディタって基本的には1つあればそれだけで充分なものですからね、常に複数のエディタを使い込むような人はあまりいません。
僕は複数のエディタを使っていますが、使い込んでると言えるのは1つだけです。
なので、
人からのオススメエディタなんて信用してはいけません。
自分で色々なエディタを試して、気にいるものを探しましょう!
僕は秀丸エディタが好きでもう15年くらい使ってます。
マクロも自動起動マクロも設定もキーバインドもカスタマイズしまくって、指が操作を記憶してしまっています。
なので他のエディタを使うと、指の動きがおかしくなってしまいます(笑)
秀丸エディタであれば結構使いこなしている方だと思っていますが、だからと言って秀丸エディタを人に勧める事はしません。
聞かれれば説明しますけど、聞かれなければ何も言いません。
まぁ、聞かれても『好きなのを使えばいんじゃない』と言いますし。
それにエディタによって特徴があるので、場面に応じて複数のエディタを使い分ければいいと思います。
実際僕は場面によっては秀丸エディタ以外のエディタも使います。
今でこそカスタマイズしまくって秀丸エディタだけで対応できるようになりつつありますが、以前は秀丸エディタとMIFESとOEditを併用していました。
今でもWindowsの場合は 秀丸エディタ + Emacs + Atom を使います。
そもそもMacだと秀丸エディタ使えないので、Macでは Emacs + Atom を使っています。
ちなみに、僕がエディタを選ぶポイントはこの3つです。
・キーボードマクロ機能
・マクロ機能
・文字コードと改行コードの判別と表示
文字/改行コードは仕事柄必要なのです。
プログラミングするにしても、ShiftJIS + CrLf の場合があれば UTF-8 + LFの場合もあります。
どの案件でも対応できなければいけません。
でもこのポイントって僕以外の人にあてはるかと言えばそんな事ありません。
色々なエディタを試すと、自分が重要視したいポイントが出てくるでしょう。
そのポイントを満たすようなエディタを探すといいと思います。
プログラミング初心者が使うにはどれがいいの?
ま、どれでもいいです。
前項でも書いていますが、自分が気に入るのを探してください。
最近はAtomが流行っているのでAtomがいいんじゃないでしょうか。
評判もいいですし。
私も使っています。
個人的には機能的に物足りないのでメインとしては使いませんが、プラグイン入れたりしてなかなか気に入っています。
Atomに関する記事に興味があればこちらもどうぞ。
ただ、ネットではAtom絶賛に近い評価なんですけど・・・・・、起動遅いし、エディタとしての基本的な機能は物足りないし、絶賛されてる現状は個人的にはよく分からないです。
日本人が開発したものならここまでの評価にはならなかったんではないだろうか・・・? と個人的には思っています。
基本機能はあまりなくてプラグインで機能を補うスタイルというのはいいんだけど、プラグインがなくても起動が遅いってどういうこと????
とか言いながら、僕も使ってますけどね(笑)
エディタを使う理由
プログラミングをすると、VisualStudioやEclipse等の統合開発環境と呼ばれる便利なものがあります。
統合開発環境を使わずにエディタを使う人も多いでしょう。
統合開発環境という便利なものあるのに、なんで(統合開発環境より機能が劣る)エディタを使うの????
・・・てな事を会社の新人さんから聞かれる事があります。
エディタを使うには理由があります。
理由その1:楽するため
プログラミングは大量の文字を打ちますので、エディタの機能を使ってキーボードを打つ回数を減らしてラクをしたいのです。
同じ文字数を打つならラクな方がいいですよね。
理由その2:思考速度についていくため
殆どの人は、キーボードを打つ速さよりも思考回路の速度の方が速いはずです。
キーパンチの回数を減らすのはラクするためと書きましたが、実は思考速度についていける速さで文字入力する理由の方が大きいのです。
理由その3:統合開発環境のエディタ自体は機能が貧弱
統合開発環境にもエディタは付属していますが、エディタ専門ソフトと比較すると貧弱ですし、使いづらいです。
統合開発環境ではビルドだけ行って、ソースコードを書くのはエディタソフトを使うという場合もあります。
その辺のやり方は人それぞれではありますけど、そういうやり方もあるということで参考にしてもらえればと思います。
統合開発環境のエディタの良い所も書いておきましょう。
統合開発環境のエディタにはインテリセンスというものがあります。
インテリセンスとは、
1-2文字を打ち始めると、命令一覧が表示されて選択できるようになる。
ドットを打つとメソッド一覧が表示される
というようなものです。
こういう機能は統合開発環境ならではで、とても便利です。
命令を覚えていなくてもいいですし、打ち間違いが減りますし、便利ですよね。
命令を打ってインテリセンスが出てこないということは書き間違っているとすぐに分かりますしね。
しかし、エディタも進化していて、インテリセンスに似たような機能を実装しているエディタもあります。(統合開発環境ほど強力ではありませんが)
僕の場合、ビルドとデバッグは統合開発環境・コーディングはエディタソフトを使うような事を昔はやっていましたが、現在は統合開発環境を使う案件であれば統合開発環境のエディタを使います。
わざわざウィンドウを切り替えるのは面倒だし、デバッグしやすいし、やっぱインテリセンス便利だし(笑)
ウィンドウを切り替えるとリズムが中断してしまうような感じになってしまって、統合開発環境だけで完結するように作業します。
とは言えエディタソフトを使いたい場面があるので、ショートカットキー一発で統合開発環境で見ているファイルをエディタソフトですぐに開けるように設定しています。で、エディタソフトで修正して保存して統合開発環境に戻ってビルドするというような事をします。
もちろん、統合開発環境が無い環境ではエディタソフトでコーディングして、ターミナルでビルドという事をやります。
プログラミングを効率的に進めるために使うべきエディタの機能
ぜひ使って欲しいエディタの機能を書きます。
やっとですが、ここからがこの記事の本題です。
僕が使っている秀丸エディタを例にしていますが、どれもエディタとして基本的な機能ですので、ほとんどのエディタは対応しているだろうと思います。
1.キーボードマクロ機能
これは僕にとっては必須です。
あくまでも個人的に偏った考えですが、
『キーボードマクロ機能が無いなら、エディタである必要あるの?』
『キーボードマクロ機能が無いなら、メモ帳でも使えば?』
と思うぐらいです。
すみません、これは僕の偏った考え方です。ゴメンナサイ。
まぁ、そのぐらいキーボードマクロを僕は使うんですね。
キーボードマクロって何?
簡単に言うと、キーボードの操作を記録して再生してくれる機能です。
例えばですが、以下の様なコードがあって、aaaaaには大文字描かれてあるのに、bbbbbからは大文字が書かれていないとします。
『aaaaa → AAAAA』は規則性があるのだから、bbbbb以降をわざわざ手作業で入力するのは面倒ですよね。
規則性のあるものはコンピュータに任せてしまえばいいのです。
printf("aaaaa AAAAA"); printf("bbbbb"); printf("ccccc"); printf("ddddd"); printf("eeeee"); printf("fffff"); printf("ggggg"); printf("hhhhh");
で、こんな操作をします。
※操作のやり方は色々あるのでコレは一例。
1.カーソルをbbbbbのどこかに置いておきます
2.キー記録開始(秀丸ではShift + F1)
3.Homeキー
4.→キー x 8回
5.F5キー(秀丸では単語コピー)
6.Endキー
7.←キー x 3回
8.半角スペース入力
9.F9(秀丸では貼り付け)
10.Ctrl+Shift+←
11.右クリックキー
12.[変換]-[UPPER CASE]
13.↓キー
14.キー記録終了(秀丸ではShift + F1)
15.キー再生(秀丸ではShift + F2) x 6
ccccc以降はキー再生(秀丸ではShift + F2)だけなのでラクチンですよね。
キーボードの操作は1回だけちゃんとやればいいです。
それ以降はキーボードマクロ再生のキーを押しっぱなしにすればいいです。
1回正しく記録できれば次の行から操作に間違いは発生しないので、非常にラクです。
間違えないということは修正する手間がかからないということ。
ラクをすればするほど間違いも手戻りもなくなりますので、ラクをしましょう。
保存すれば何度でも使えますよ。
キーボードマクロを覚えれば文字入力や修正が劇的にラクになります。
まぁ、覚えるっていうほどのもんじゃないですけどね。
何回か使えば便利さに気付くと思います。
ぜひぜひ使ってみてください。
2.矩形選択(くけいせんたく)
普通の選択はこんな感じ
矩形選択はこんな感じ
矩形選択は四角形に選択する機能です。
『四角形に選択? ンなモン何に使うの?』
と思うかも知れませんね。
これが結構便利なんですよぉ〜。
もちろん選択できるだけでは意味ないんですけど、コピー・貼り付け・切り取り・挿入貼り付けとかができるんですよ。
・矩形選択した上で文字入力
一回の入力で全部の行に文字が入ってラクチンですよね。
・矩形選択で切り取り
必要な部分だけを切り取れて便利ですよね。
・矩形選択でコピって、別の場所に挿入みたいに貼り付け
秀丸エディタの場合はCtrlもしくはAltを押しながらマウスでドラッグすれば矩形選択できます。
エディタによって操作方法とかできる事は変わりますが、基本的にはこんな感じで使えます。
案外使う場面あるので、ぜひ覚えてください。
3.マクロ
マクロは自分で作れるのが一番いいですけど、誰かが作ったものを使ってもいいです。
僕は実現したい事(*1)があると、誰かが作ったマクロを探します。
秀丸エディタの場合は公式サイト(有限会社サイトー企画)にマクロ集があるのでそこから探して試してみます。
微妙に動きを変えたい場合は少しだけ自分で書き換えて使います。
*1:めんどくさそうな作業があって「ンなモンやってられるかー!」と思ってラクしたいというのが発端になります
もしくは、キーボードマクロで自動生成されたマクロコードを改造したりします。
自分でイチからマクロを作ることはしないです。面倒なので(笑)
て言うか、そもそもマクロで使っている言語を僕はあまり知らないので・・・・
Emacsの場合だとLISP言語を使っているのかな?
LISPなんて全く分からないですけど、自分でなんとかできるものはなんとかしています。
でも、ラクしたいので、『マクロコードを読んで少しだけいじる』という面倒な事をほんのちょっとだけやります。
マクロに使っている言語を知らなくても、ヘルプ読んだり、他の記述を真似したり、自動生成を参考にしたりと、ほんのちょっとした改造ならなんとかなるものです。(*2)
*2:ポイント
プログラミング言語って、英単語の寄せ集めみたいなモンなんですよ。
プログラミングを知らない人でも読めば命令の意味はなんとなく想像できるはずです。
要は『想像する』のです。
配列とか、イテレータとか、ハッシュとかだと知っていないと想像もできないかも知れませんが、『データを入れてるんかな?』と無理矢理想像するのです。
そうしたら、知らないプログラミング言語もなんとか読み書きできると思います。
僕は知らないプログラミング言語を読むときは想像します。
全くプログラミングを知らない人が読むのはちょっとしんどいかも知れませんが、少しでもプログラミング経験がある人なら、頑張って読めばなんとなく雰囲気は掴めると思いますよ。
以下の記事も参考にどうぞ。
4.Excel
おっと、、、
Excel?
エクセル?
えくせる?
e・ku・se・ru?
エディタ関係ないじゃん!!
でもね、Excelは連番を作るのに便利なんですよ。
プログラミングをしていると連番を書くことがちょいちょいあります。
連番を作るマクロもあるんですけど、Excelで作るとラクな時もあります。
例えばですが、1ずつアップする連番を作るのはエディタでもそんな苦にならないでしょうけど、3ずつアップするとか、2.8ずつアップするとか、-3.2倍つつアップするとか、そういった感じの変な計算が入るような連番を作るのはエディタでマクロを準備していても対応しきれない事が有り得ます。
そういうややこしい連番はExcelで作ると早いです。
Excelの連番の作り方は分かりますよね?
- Excelで作った連番をエディタに貼り付けます。
- それを矩形選択して切り取る
- 希望の場所へ貼り付ける
これだけで連番を使ったコードを書くことができます。
↓こんな感じです。
↓0パディング有りでやってますけど、0パディングの有無は別にどうでもいいです。
0パディングとは、空いてる桁を0で埋めることです。
・0パディングなし
※1〜9は10とか11とかと見比べると十の位に数字を入れてない
1
2
3
4
5
6
7
8
9
10
11
12
・0パディングあり
※1〜9は10とか11とかと見比べると十の位に0を埋めている
01
02
03
04
05
06
07
08
09
10
11
12
ちなみに、私は連番を入れる場合Excelを使うこともありますが、マクロも使っています。
プログラミングでは連番を書きたい事がちょくちょくあるので、Excelもしくはマクロを使ってサクッと簡単に作れるようになっておきましょう。
5.grep(ぐれっぷ)
grepは検索の一種です。
grepは確実に使います。
元々、grepっていうのはUnixのコマンドというかツールです。
今ではエディタに普通に搭載されている機能です。
grepではなくグローバル検索と表記しているエディタもあります。
通常、エディタで検索と言うと、『今開いているファイルの中かから任意の単語を探す』機能の事です。
grepはそれとはちょっと違います。
grepというのは簡単に言うと、こんな感じ。
大量にあるファイルの中から任意の単語を検索します
grep検索結果として、検索語が発見されたファイル名とその行番号の一覧が表示される
grep検索結果の行をダブルクリックするか任意のキーを押すと、
そのファイルの発見場所へジャンプする(当然ファイルは自動的に開く)
プログラミング初心者のうちはファイルは1本でしょうけど、慣れていくにしたがってプログラミング量は増えますしファイル数も増えます。
仕事でやる場合は何十本・何百本となりますし、一つ一つのファイルも何万行もあったりします。
ですので、grepは使えるようになりましょう。
また、grep結果からから次々とファイルを開いて内容を見ていくキー操作も重要です。
僕はF10キーを押す度に次の発見場所にジャンプするようにしています。
Ctrl+F10キーで前の発見場所に戻るようにしています。
grepってどういう時に使うかと言うと、、、、
仕事での場合、ある関数の処理を直したとき、その関数を使っている箇所をgrepで探します。
処理が変わるのでその影響有無を調査するためにgrepします。
grep結果って100件とか200件とか、時には1000件とかフツーにあるんですよ。
それを1つずつ見て確認するので、サクサクと次のファイル次のファイルと移動して欲しいんですよ。
 
 
 
他にも紹介したい機能はたくさんありますが、挙げていくとキリがないのでこれぐらいにしておきます。
まとめ:エディタを使いまくろう
エディタはどれでもいいので自分の気に入ったものを探しましょう。
他人が使っているエディタをけなすのはやめましょう。マジで。
気に入らなければ他のものを使えばいいですよ。
それか、自分でエディタを作ればいいんじゃないでしょうか?
僕はエディタを作るなんて恐ろしいことはできませんが・・・・
他人が作ってくれたふんどし(エディタ)を持ち上げて、他人が作ったふんどしをけなされてもね。
まず自分でふんどし作ってから言えよって話ですよ。
そういえば昔HUNDOSHI-EDITってあったな。
YooEditとHUNDOSHI-EDITとJedit、この3つのアイコンが並ぶところを見たら懐かしすぎて涙出るかも(笑)
思い出しついでにエディタ関係ないけど(笑)、宇宙デスクトップ探偵団少年ウフーンが大好きだった。今でも大好き。
ウフーンを超えるかっこいいセンスに出会っていない。
ウフーンを真似て、Cyberdogの犬アイコンをいじってバカシバというキャラのアイコンを作って遊んでたのは懐かしい思い出。
慣れればどのエディタでもいいと思います。
僕がエディタというものを知った時、Vectorや窓の杜で片っ端からエディタを試しまくりました。
会社ではMIFESが使えましたが、どうもしっくり来なかったので色々と探しては試し探しては試しを何度も繰り返しました。
最初はTeraPadで落ち着きましたが、キーボードマクロを使いたくなってまた色々と探しました。
その頃はエディタマニアになってましたね。
結局、現在まで15年ほどメインで使っている秀丸エディタは最後に試しました。
周囲では使っている人多かったのでその存在は知っていたのですが、名前とアイコンがダサいので敬遠してました(笑)
誰かに勧められたわけじゃなく、試しに使ってみたらなんかしっくりきたのでそれからずっと使っています。
今でもエディタは好きで、たまにですが、色々なエディタを試しに使ってみたりします。
僕はWindowsとMacの両方を使いますのでMacでも秀丸エディタが使えればいいんですが、Mac版秀丸エディタは出ないようなので、MacではEmacsとAtomを使っています。
『○○のエディタは使えねーーー!』とか『いまどきクロスプラットフォームじゃないエディタ使うなんて頭おかしんじゃねぇの?』みたいな事言う人いますけど、、、まぁ、好きなの使えばいいんじゃないですかね。
クロスプラットフォーム云々って言う人はMacしか使わない人だったりしますし(笑)
でも、確かに、今後はクロスプラットフォームなソフトがますます望まれるだろうとは僕も思います。
エディタは使い込めば使い込むほど手に馴染んできます。
カスタマイズすればするほどキーを指が覚えますので、文字入力が劇的にラクになります。
エディタは単に文字を手入力するだけのツールではありません。
効率的にラクをした上で正確に文字入力するためのツールです。
エディタの機能をフルに使い倒しましょう!!!!
参考書籍
コメントを残す