テキストエディタでの編集操作

基本的な編集の流れ(復習)

テキストエディタでのテキストファイルの作成・編集の流れは次のようになる:

  1. テキストエディタを起動する
  2. 新規作成あるいは修正するファイルを開く
  3. 内容を編集する
  4. ファイルを保存する
  5. テキストエディタを終了する

編集中によく使うキー操作

テキストファイル(特にプログラム)を編集する際には、カーソル移動と行の削除・複製を頻繁に行う。これらの操作はカーソルキー(上下左右の矢印のキー)やマウスで操作できるが、手をキーボードのホームポジションから外さずに操作できるショートカットキーがどのエディタでも設定されている。最初からすべてを覚えるのは大変だが、できるだけ使うように心がけて指で覚えていって欲しい。

以下、EmacsとVS Codeに共通する基本的な操作のみ記載する。テキストエディタの源流の一つであるEmacsのキー設定は、他の多くのテキストエディタでも踏襲されている、あるいはカスタマイズ機能で設定可能なので覚えておいて損はないだろう。

カーソル移動

行の削除と複写

Mac標準のショートカットキー

Macのアプリなので、Mac標準の編集用ショートカットキー操作も同様に使うことができる。

Emacsには、これらのショートカットキーとは別にEmacs独自の設定もある。

英文テキスト編集の練習

前回作成したaboutEmacs.txtを編集して次のように変更しよう(完全にこの通りでなくてもよい)。

Emacs and its derivatives are a family of text editors that are characterized by their extensibility.
Development of the first Emacs began in the mid-1970s and continues actively as of 2015.
Development of the first Emacs began in the mid-1970s and continues actively as of 2015.
Emacs has over 2,000 built-in commands and allows the user to combine these commands into macros to automate work.
Development of the first Emacs began in the mid-1970s and continues actively as of 2015.
Emacs has over 2,000 built-in commands and allows the user to combine these commands into macros to automate work.

日本語テキストの編集

日本語を入力するには、他のアプリケーションと同様、日本語入力モードに切り替えてそのまま入力すればよい。

次の和文を入力してaboutVim.txtという名前のファイルを作成しよう(http://ja.wikipedia.org/wiki/Vimより引用)。

VimはGUIを必要とせずCUIでも動くため、Unix系OSに標準のエディタとして搭載されていることが多い。コンピュータの大容量化と高速化にともない、2000年以降のOSでは viに代わってより高機能な Vim、あるいはその機能劣化版が標準装備されるようになってきている。このため、コマンドライン上でviを実行すると代わりにVimが起動するディストリビューションが一般的となった。

日本語文字に関する注意

以下は、プログラムをテキストエディタで作成する際に陥りやすい代表的なトラブルである。注意しよう。

全角と半角

漢字を含めた日本語文字はマルチバイト文字という、2バイト以上のデータで表現されている。また、文字の形も複雑なので、昔はアルファベット2文字分の大きさでを漢字1文字分を表示していた。このため、漢字などの2文字分の大きさの文字は全角文字、アルファベットなどの1文字分の大きさの文字は半角文字と俗に呼ばれている。

※ 現在でも等幅フォントと呼ばれる文字はそのようになっており、プログラミングでは揃って見えることが望ましいので等幅フォントを使うことが多い。

ところが、全角文字の中にもアルファベット、数字、記号といった半角文字に含まれている文字と同じ文字が含まれている。例えば以下の例はそれぞれ左が半角文字、右が全角文字である。

.. ,, :: ;; << >> -ー ++ ** // == ||

適切なフォントで、適度に大きく表示すれば見間違うことを減らせるが、慣れないうちは区別しにくいので注意。

コンピュータ内部では文字は、それぞれの文字に対応する数字として扱われており、これら全角文字と半角文字は見かけは同じでもまったく異なる値となっている。さらに、コマンドやプログラムのように歴史的に古い用途ではいわゆる半角文字(1バイト文字)を使ってきており、マルチバイト文字は認識しないことが多い。例えばプログラム中で;を書くべきところを;としてしまうとコンピュータは解釈できずエラーを報告する。

特に厄介なのがスペース(空白文字)で、半角スペース" "と全角スペース" "は見かけ上区別できないが、コンピュータは全角スペース" "を空白とは見なさないことが多い。

なお、Emacs for CSE(学部配布のEmacs)では、プログラム中の文字列やコメントなど、全角文字が使えない箇所に入っている全角文字を赤色の背景で表示するように設定されている。完全に正しく検出できるとは限らないが、赤色の背景の文字がある場合は間違っていないか確認するように。VS Codeの場合は全角スペースと全角英数字をハイライト表示する拡張機能はある(初期設定の項で説明済み)。

\と¥

コンピュータで扱う文字の標準としてASCII(アスキーと読む)がアメリカで定められた。ASCIIには\ (バックスラッシュ)という記号が含まれていたが、アメリカ以外の国に適用する際に、日本では¥(通貨単位の円を表す記号)が必要と考え、\の代わりに¥を入れることになった。このため、\と¥は見かけが異なるがコンピュータ内部では同じ数値で表現されている。使うフォントや書籍などによっては\だったり¥だったりするが、同じものと考えれば良い。なお、全角の\と¥は別の値の文字となっている。

なお、上記の\はWindows環境などでは¥として表示されているかもしれない。

macOSでは、\または¥をどちらで入力するかをシステムで設定できる。「システム環境」の「キーボード」の入力ソースタブで日本語を選択し、右側の設定項目の中の「"¥"キーで入力する文字」を\(バックスラッシュ)に設定しておくこと。この設定項目は下の方に隠れている。下にスクロールすると出てくる。

(画像は古いバージョンのmacOSのものであるが最新版でも同様である)

なお、この設定は日本語入力モードのみに適用され、英語入力モード(ABC)とは別となっているようである。そのため、日本語入力モードで英語も入力し、英語入力モード(ABC)を削除しておく必要がある。設定手順は「Macでバックスラッシュを入力するための設定」のとおり。

さらに、世界中の文字を統一的に扱うUnicodeでは\と¥を別物として扱うことができ、現在ではUnicodeが標準の文字コードとなっているので話が余計に複雑になってきている。

より高度なエディタの操作

今回説明した操作はカーソルの移動やカット、コピー、ペーストといった、テキストデータを作成・編集するためのごく基本的なものである。実際にプログラミング等の作業を行う際には、ある文字列を検索する機能、特定の文字列を別の文字列に置き換える機能、何行目かを指定してカーソルを移動させる機能、といった操作が必要になってくる。

慣れてくると「こんなことできないか」と思うことが出てくるはずで、調べてみればだいたい操作方法が用意されている。自分で調べて試してみて欲しい。

Emacsを使うならば、少なくとも「Emacs超クイックリファレンス」に挙げてある操作は身につけよう。更に進んだ解説として「Emacs超入門」という記事があるので目を通してみると良いだろう。他にも検索してみればたくさんあるだろうし、解説本も多数売られている。