[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

11. 打ちまちがい訂正用コマンド

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=emacs&node=Fixit"
"emacs/打ちまちがい訂正用コマンド"へのコメント(無し)

本章では、入力直後にテキストのまちがいに気づいたとき、 あるいは、テキストを作成中に気が変わったときに 特に便利なコマンドを説明します。

まちがった編集を訂正するもっとも基本的なコマンドは、アンドゥコマンド、 C-x uC-_です。 このコマンドは、(通常)1つのコマンド、 コマンドの一部分(query-replaceの場合)、 いくつかの連続した自己挿入文字をアンドゥします。 C-_C-x uを連続して繰り返すと、 アンドゥ情報がある限り、次々と以前の変更をアンドゥします。 より詳しくは、See 節 3.4 変更をアンドゥする(もとに戻す)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

11.1 誤りの訂正

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=emacs&node=Kill%20Errors"
"emacs/誤りの訂正"へのコメント(無し)

DEL
ポイントの直前の文字を削除する(delete-backward-char)。
M-DEL
ポイントの直前の単語をキルする(backward-kill-word)。
C-x DEL
ポイントから文の先頭までをキルする(backward-kill-sentence)。

DEL文字(delete-backward-char)は もっとも重要な訂正コマンドです。 ポイントの直前にある文字を削除します。 自己挿入文字のコマンドに続けてDELを打つと、 そのコマンドを取り消すと考えることができます。 しかし、コマンドを取り消す一般的な方法はDELであるなどと 誤解しないでください。

まちがいが数文字よりも長いときには、 M-DELやC-x DELを使うほうが便利でしょう。 M-DELは直前の単語の先頭までをキルし、 C-x DELは直前の文の先頭までをキルします。 文を書いている途中で気が変わったときには、 C-x DELが特に便利です。 M-DELとC-x DELは、 キルしたテキストをC-yM-yで戻せるように保存します。 See 節 7.8 ヤンク

何を打とうとしているのか混乱したりわからなくなったりしたときには、 打ちまちがいがたとえ数文字であってもM-DELはとても便利です。 このような場合、画面を見ながらでないとDELでは訂正できません。 M-DELならば、ほとんど何も考えずに単語全体をキルして、 入力を再開できます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

11.2 テキストの入れ替え

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=emacs&node=Transpose"
"emacs/テキストの入れ替え"へのコメント(無し)

C-t
2つの文字を入れ替える(transpose-chars)。
M-t
2つの単語を入れ替える(transpose-words)。
C-M-t
釣り合っている2つの式を入れ替える(transpose-sexps)。
C-x C-t
2つの行を入れ替える(transpose-lines)。

2つの文字を入れ替えてしまうというよくあるまちがいは、 それらが隣接しているならば、 C-tコマンド(transpose-chars)で直せます。 通常、C-tは、ポイントの両側にある文字を入れ替えます。 行末では、行末の文字と改行文字を入れ替えるという役に立たない ことではなくて、C-tはその行の最後の2文字を入れ替えます。 よって、入れ替えまちがいにすぐに気づいたなら、 C-tだけで訂正できます。 まちがいにすぐに気づかなかったときには、 2つの入れ替わっている文字のあいだにカーソルを移動する必要があります。 空白とそのまえの単語の最後の文字とを入れ替えてしまったときには、 単語移動コマンドでその場所へ戻るのがよいでしょう。 それ以外の場合には、後向き探索(C-r)が最良であることがままあります。 See 節 10. 探索と置換

M-ttranspose-words)は、 ポイントの直前の単語とポイントの直後の単語を入れ替えます。 ポイントは単語を1つ前向きに横断し、 ポイントの直前の単語かポイントを含む単語を前向きに引きずっていきます。 単語のあいだにある句読点文字は動きません。 たとえば、`FOO, BAR'は`BAR FOO,'ではなくて、 `BAR, FOO'と入れ替わります。

C-M-ttranspose-sexps)は、2つの式(see 節 20.2 リストとS式)を 入れ替えるコマンドです。 また、C-x C-ttranspose-lines)は、行を入れ替えます。 これらのコマンドはM-tに似た動作をしますが、 テキストを構文単位に分ける点が異なります。

入れ替えコマンドに数引数を指定すると、反復回数になります。 ポイントの直前やポイントを含む文字(単語、S式、行)を いくつ先の文字(単語、S式、行)へ移動するか指定します。 たとえば、C-u 3 C-tは、ポイントの直前の文字を3文字先の文字へ移動します。 つまり、`f-!-oobar'を`oobf-!-ar'にします。 これは C-tを3回繰り返したのと同じことです。 C-u - 4 M-tは、ポイントの直前の単語を4つまえの単語へ移動します。 C-u - C-M-tは、引数を指定しないC-M-tの効果を打ち消します。

数引数0には特別な意味があります (さもないと、コマンドを0回繰り返しても何もしない)。 ポイントの直後の文字(単語、S式、行)と マークの直後の文字(単語、S式、行)を入れ替えます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

11.3 大文字小文字変換

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=emacs&node=Fixing%20Case"
"emacs/大文字小文字変換"へのコメント(無し)

M-- M-l
ポイントの直前の単語を小文字に変換する。 Meta--はメタ・マイナス。
M-- M-u
ポイントの直前の単語をすべて大文字に変換する。
M-- M-c
ポイントの直前の単語を最初の文字だけ大文字にして残りを小文字にする。

とてもよくあるまちがいは、単語を打つときに大文字小文字をまちがうことです。 このため、単語の大文字小文字を変換するコマンド、 M-lM-uM-cに負の引数を指定すると、 カーソル(ポイント)を移動しないという特別な機能があります。 単語を打ちまちがえたとすぐに気づいたときには、 単に大文字小文字を変換して、入力を続けられます。 See 節 19.6 大文字小文字変換コマンド



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

11.4 綴りの検査と訂正

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=emacs&node=Spelling"
"emacs/綴りの検査と訂正"へのコメント(無し)

本節では、1つの単語やバッファのある部分の綴りを検査するコマンドを説明します。 これらのコマンドは、Emacsの一部ではない綴り検査プログラム (スペルチェッカ)ispellを 使って動作します。 See 節 `Overview ispell' in

The Ispell Manual

M-x flyspell-mode
フライスペル(flyspell)モードをオンにする。 綴り誤りのあるすべての単語を強調表示する。
M-$
ポイント位置にある単語の綴りを検査し訂正する (ispell-word)。
M-TAB
綴り辞書に基づいてポイントの直前の単語を補完する (ispell-complete-word)。
M-x ispell-buffer
バッファ内の各単語の綴りを検査し訂正する。
M-x ispell-region
リージョン内の各単語の綴りを検査し訂正する。
M-x ispell-message
引用部分を除いて、メイルメッセージの草稿の各単語の綴りを検査し訂正する。
M-x ispell-change-dictionary RET dict RET
辞書としてdictを使ってispellプロセスを再起動する。
M-x ispell-kill-ispell
ispellプロセスを終了させる。

フライスペル(flyspell)モードは、 Emacsで編集しているときに全自動で綴り検査をする方法です。 単語を変更したり挿入したりするたびにその単語を検査します。 認識できない単語をみつけると、その単語を強調表示します。 これはユーザーの編集には干渉しませんが、 ある単語が強調表示されたら、その単語へ移動して訂正できます。 カレントバッファでこのモードをオン/オフするには、 M-x flyspell-modeと打ちます。

フライスペル(flyspell)モードが ある単語を綴りまちがいであると強調表示したときには、 その単語をMouse-2でクリックできます。 すると、訂正候補やどんな操作を行えるか表示されます。 単語を手動で編集して好きなように訂正してもかまいません。

Emacsの他の綴り検査機能は、明示的にコマンドを実行したときに 単語の検査を行います。 バッファ全体やその一部分の綴りを検査する機能は、 Emacsセッション以外で作成した綴り誤りを含むかもしれないテキストには有益です。

ポイントの周りかポイントのつぎにある単語の綴りを検査し、 場合によっては訂正するには、 M-$ispell-word)コマンドを使います。 単語が正しくないときには、 その単語についてどうするかのさまざまな選択肢を提示します。

カレントバッファ全体を検査するには、M-x ispell-bufferを使います。 カレントリージョンだけを検査するには、M-x ispell-regionを使います。 書きかけの電子メイルメッセージの綴りを検査するには、 M-x ispell-messageを使います。 これは、バッファ全体を検査しますが、 字下げしてある部分や他のメッセージからの引用と思われる部分は検査しません。

これらのコマンドは、正しくない単語に出会うたびに、どうするか聞いてきます。 通常、検査した単語に似ている『近い』単語をいくつか含めた 選択肢一覧を表示します。 そうしたら、文字を打たなくてはなりません。 以下に有効な返答をあげます。

SPC
この単語をスキップする。 この単語は正しくないとしておくが、ここでは変更しない。

r new RET
(今回だけは)newで置き換える。

R new RET
単語をnewで置き換える。 さらに、バッファの他の箇所でも置き換えられるように query-replaceを実行する。

digit
(今回だけは)この単語を『近い』単語の1つで置き換える。 『近い』単語にはそれぞれ数字が付いているので、その数字を打つ。

a
正しくない単語を容認する。 この編集セッションに限って、正しいかのように扱う。

A
正しくない単語を容認する。 この編集セッションのこのバッファに限って、正しいかのように扱う。

i
この単語を個人辞書ファイルに入れ、 ispellは今後のセッションを含めてこれ以降この単語を正しいものとして扱う。

u
この単語を小文字に変換して個人辞書ファイルに入れる。

m
iと同様だが、辞書の補完情報も記録できる。

l word RET
wordに一致する単語を辞書から探す。 みつかった単語は、新たな『近い』単語一覧となり、 数字を打って置き換える単語を選べる。 wordには、ワイルドカード`*'を使うこともできる。

C-g
対話的な綴り検査を終了する。 C-u M-$で、あとで再開できる。

X
C-gと同じ。

x
対話的な綴り検査を終了し、綴り検査を始めた箇所へポイントを戻す。

q
対話的な綴り検査を終了し、ispellプロセスを終了させる。

C-l
画面を再描画する。

C-z
このキーは普通のコマンドの意味 (Emacsを休止する、あるいは、このフレームをアイコン化する)。

テキスト(text)モードやその関連したモードでは M-TABキーにバインドしてあるコマンド ispell-complete-wordは、 綴り訂正に基づいた補完一覧を提示します。 単語の始めの部分を挿入してからM-TABと打つと、 補完一覧ウィンドウを表示します。 補完一覧から1つを選ぶには、 候補のうえでMouse-2をクリックするか、 カーソルを補完ウィンドウの単語の箇所に移動してから RETと打ちます。 See 節 19.7 テキストモード(textモード)

一度綴り検査を行うと、ispellプロセスは(何かすることを待って) 動き続けます。 ですから、つぎに綴り検査コマンドを使うと、 より早く実行を完了します。 ispellプロセスを取り除きたいときには、 M-x ispell-kill-ispellを使います。 ispellプロセスは綴り訂正をしているとき以外には何もしないので、 通常はこのコマンドを使う必要はありません。

ispellは2つの辞書を使います。 標準辞書と個人辞書です。 変数ispell-dictionaryは、使用すべき標準辞書のファイル名を指定します。 この値がnilならば、デフォルトの辞書を使います。 M-x ispell-change-dictionaryコマンドはこの変数を設定して、 設定した辞書を使うようにispellサブプロセスを再起動します。


[ << ] [ >> ]           [表紙] [目次] [索引] [検索] [上端 / 下端] [?]