10 - お前を消す 88 の方法

「前回助けてくれてありがとね」「元気になってくれて私も嬉しいよ」「うん。あのね,わかんなくなっちゃったのはこれが原因なんだ。まず説明だけ出してみる」「うむ」


これで、Emacs で文章を入力し、また間違いを修正するもっとも基本的な方法
を学んだことになります。文字と同じ様に、単語や行も削除することができま
す。削除操作について要約すると次のようになります。

<Delback>    カーソルの直前の文字を削除
C-d	     カーソルのある文字を削除

M-<Delback>  カーソルの直前の単語を消去
M-d	     カーソル位置の後ろにある単語を消去

C-k	     カーソル位置から行末までを消去
M-k	     カーソル位置から文末までを消去

「…」「わかる?」「…」「じゃあ英語のを載せてみるね」


<DEL>        Delete the character just before the cursor
C-d   	     Delete the next character after the cursor

M-<DEL>      Kill the word immediately before the cursor
M-d	     Kill the next word after the cursor

C-k	     Kill from the cursor position to end of line
M-k	     Kill to the end of the current sentence

「…ふむ。これは機能が明確に違うというのが冒頭の単語でわかるな」「でしょ?」「だがここでいう <DEL> は Delete キーではないんだな?」「そうそう。Backspace。じゃあ元の文章載せるね」


<Delback>    カーソルの直前の文字を削除(delete)
C-d	     カーソルのある文字を削除(delete)

M-<Delback>  カーソルの直前の単語を消去(kill)
M-d	     カーソル位置の後ろにある単語を消去(kill)

C-k	     カーソル位置から行末までを消去(kill)
M-k	     カーソル位置から文末までを消去(kill)

<Delback> と C-d に対する M-<Delback> と M-d は、C-f と M-f で始まった類
似性をまた拡張します。ここで <Delback> はコントロール文字ではありません
が、まあ、それは気にしないで下さい。C-k と M-k の関係は C-e と M-e の
関係(行と文の対比)と同じです。

「英語版にしろ,これを一度に理解するのは難しいものがあるな」「うん。だから私,C-h (表の<Delback>)と C-d,あと C-k しか使えてない」「単語を消すというのも英語なら便利なのだろうが」

「うーん。あ,ただね,このあとの機能はすごく便利だよ。便利というか必須」「ほう」


バッファのどの部分でも消去(kill)できる単一の方法があります。消去した
い部分の始めか終りに移動し、C-@ もしくは C-SPC をタイプします (SPC は
スペースバーのことこです)。それから消去したい部分の反対の端に移動し、
C-w をタイプします。これでその部分が消去されます。

>> カーソルを前のパラグラフの最初の文字「バ」に移動させましょう。
>> それから C-SPC をタイプします。"Mark set" というメッセージが画面の
   下端に出るはずです。
>> さらにカーソルを次の行の「終」に移動させます。
>> C-w をタイプしましょう。「バ」から「終」の直前までが消去されます。

「これ他のエディタでいう『選択範囲を削除』。マウス使ったり Shift 使ったり」「それが Emacs だと C-SPC になるわけだな?」「C-SPC と C-w でワンセット。もう必須だよ」「イチ押しの機能か」「あとね,中国語だとちょっと日本語で役立つ説明がついてる」


    【注意,C-<SPC> 往
    往被中文用户设定成输入法热键,如果这样,C-<SPC> 就被系统拦截而无法传递
    给 Emacs 了,在这种情况下可以使用 C-@。】

「日本語の全角/半角キーにあたるのが中国だと C-SPC らしいんだけど,そのときは C-@を使おうねって書いてある」

「日本語でも役立つのか?」「うん。たとえば全角/半角キーもカナキーもついてない英字キーボードを使うとき」「そうか。たしかにな」

「他には,Ubuntu とかで日本語使うときも,C-SPC が初期設定のことが多いの。他のキーに設定することもできるけど,それをしなくても C-@を知っていれば大丈夫」「なるほどな」「でも英字キーボードだと C-Shift-2 を同時押ししないと C-@は入力できないからかなり不便」「うーむ」「緊急のときなら役立つけど,ふだんは日本語切り替えを別のキーにして C-SPC を使ったほうがいいと思う」


「消去(kill)」と「削除(delete)」の違いに気をつけて下さい。消去した
文章は再度(どこにでも)挿入できますが、削除したものは再度挿入すること
はできません(ただ下の章に書いてあるように undo はできます)。一旦消去
したものを再度挿入することを再入(yanking)と呼びます。一般に、大量の
文章を消すコマンドは、その文章を消去しますが(だから後で再入できます)、
一文字とか空白行や空白文字のみを消すコマンドは、それらを削除します(だ
からそれらは再入できません)。

>> 空行でない行の先頭にカーソルを移動させて下さい。
   それから C-k でその行の文章を消去して下さい。
>> もう一度 C-k をタイプしてください。その行に続く改行文字が消されるの
   が分りましたか。

一回目の C-k はその行の文章を消し、2回目の C-k はその行自身を消してそ
の先の行を上げてきます。C-k の数値引数の扱いは特殊です。引数分の行(行
の内容と行自身)を消します。これは単なる繰り返しではありません。C-u 2
C-k は2つの行とそれぞれに続く改行文字を消しますが、C-k を2度タイプし
てもそうはなりません。

「yank は後で説明してくれるからここは C-k の機能を覚えよう」「うむ」「今まで意識してなかったけどはじめは改行文字だけ残すみたい」「ほう」「とりあえず行消すときに C-k って感じで使ってました」


消去した文章を復活させる操作を再入(yanking)と呼びます。消した文章は、
元と同じ場所にでも元とは違う場所にでも、さらには別のファイルにも再入で
きます。また、何度も再入することで文章のコピーを複数作ることもできます。

再入のためのコマンドは C-y です。これは、最後に消去した文章を現在カー
ソルがある位置に再入します。

>> 試して下さい。C-y をタイプして最後に消去した文章を再入しましょう。

「yank の説明。ペーストと意味は大体同じだと思ってます」「ふむ」「C-k で切り取った行を C-y で貼り付けなんてまさにカット&ペースト」


C-k を続けて実行すると、消去した各行は全部まとめて保存されるので、一回
の C-y でそれらの行が全部再入されます。

>> C-k を何度か続けてタイプしてみて下さい。

さあ、消去した文章を再入しましょう。

>> C-y をタイプして下さい。次にカーソルを数行下に移動させ、また C-y を
   タイプして下さい。どうやって文章をコピーするか分りましたね。

「恥ずかしながら C-k した分をまとめて C-y するというのを知りませんでした」「今まで広い範囲をどうやって削除してたんだ」「さっき出てた C-SPC と C-w」「なるほど」「C-k してペーストできるのは一行だけだと思ってたんだよね」「ふむ」


過去に消去した文章を再入したいのに、別の文章をその後消去した時はどうす
ればよいでしょう?C-y は最後に消去したものを再入します。でもそれでよ
り以前に消去した文章がなくなるわけではありません。そういう文章は M-y
で再入できます。C-y で最後に消去した文章を再入した直後に M-y をタイプす
ると、その再入された文章はそれ以前に消去したものに変更されます。何度も
続けて M-y をタイプすると、さらに前に消去した文章を呼び戻せます。望み
の文章に行き当ったら、それはそのままにして編集作業を続ければよいのです。

ある回数だけ M-y を繰り返したら、また最初(つまり最後に消去した文章)
に戻ります。

>> 一行消去し、別の行に行ってその行を消去して下さい。
   それから C-y で2番目(最後)に消去した行を再入して下さい。
   続いて M-y でその行を最初に消去した行に変えて下さい。
   M-y を続けどうなるか見てみましょう。2番目に消去した行が戻って来る
   まで M-y を繰り返し、さらにもう何度か M-y をしましょう。
   もし望みなら M-y に正もしくは負の数値引数を与えても良いでしょう。

「出ましたキルリング」「不要な専門用語の羅列は理解を妨げる」「ごめんなさい」「それで,キルリングとは」「コピーした内容は Emacs に複数保管されてます。C-y のあと M-y を押すと一個前に保管されたデータが貼り付けされます。さらに M-y 押すと二個前,さらに押すと三個前,…というふうに」

「ふむ,聞く限りでは便利そうだな。Windows などで標準機能として持っていてもよさそうなものだが」「私みたいに記憶力の悪い人が混乱しないようにするためだと思う。二個前に何コピーしてたかなんて覚えてないもん」「一覧機能を持たせればいいと思うが」「じゃーん browse-kill-ring」「あるじゃないか。ならそれを使えばいいだろう」「うーん,プログラミングだと活躍すると思うんだけど,文章で再利用する機会ってあまりないんだよねぇ…」「ではチュートリアルを終えたらMastering Emacsで英語とプログラミングを両方鍛えよう」「勘弁してよ…」



(c) 2018 jamcha (jamcha.aa@gmail.com). (c) 1985, 1996, 1998, 2001-2018 Free Software Foundation, Inc.

GPL3