文字の挿入以上のことを行うには、ポイントを移動する方法について知る必要があります(ポイントを参照してください)。キーボードのコマンドC-f、C-b、C-n、C-pは、それぞれ右・左・下・上にポイントを移動します。ほとんどのキーボードにある矢印キー — RIGHT、LEFT、DOWN、UPでもポイントを移動できます。しかし多くのEmacsユーザーは矢印キーより、コントロールキーのほうが速いと考えています。なぜなら矢印キーを押すためにそれらが配置されている領域に手を動かす必要があるからです。
ポイントを移動したい場所でマウスの左ボタンをクリックしてもポイントを移動できます。Emacsは、さらに洗練された方法でポイントを移動する、さまざまなキーボードコマンドを提供します。
1文字前方(forward)に移動します (forward-char
)。
このコマンド(right-char
)はC-fと同様に振る舞います。例外はポイントのあるパラグラフがright-to-leftの場合です。双方向の編集を参照してください。
1文字後方(backward)に移動します (backward-char
)。
このコマンド(left-char
)はC-bと同様に振る舞います。例外は現在のパラグラフがright-to-leftの場合です。双方向の編集を参照してください。
スクリーンに表示された行で1行下に移動します(next-line
)。このコマンドは横方向の位置を変更しないよう試みます。そのため行の途中でコマンドを開始すると、次の行の途中に移動することになります。
スクリーンに表示された行で1行上に移動します(previous-line
)。このコマンドはC-nと同様、行内の位置を保ちます。
行の先頭に移動します(move-beginning-of-line
)。
行の最後に移動します(move-end-of-line
)。
1単語前方に移動します(forward-word
)。単語を最終してください。
このコマンド(right-word
)はM-fと同様に振る舞います。例外は現在のパラグラフがright-to-leftの場合、1語後方に移動することになります。双方向の編集を参照してください。
1単語後方に移動します(backward-word
)。単語を参照してください。
このコマンド(left-word
)はM-bと同様に振る舞います。例外は現在のパラグラフがright-to-leftの場合、1語前方に移動することになります。双方向の編集を参照してください。
スクリーン上のテキストを移動させることなく、ポイントの位置をウィンドウ上で中央にもっとも近いテキスト行の左端に移動します。連続して呼び出すと、最上行の左端、最下行の左端へと循環的にポイントを移動します(move-to-window-line-top-bottom
)。
数引数はスクリーンの行の何行目にポイントを移動するか指定します。数値はウィンドウの最上行から数えた行数です(0は最上行を意味します)。負の引数は最下行から数えた行数です(−1は最下行を意味します。数引数については詳細は、数引数を参照してください。
バッファーの先頭に移動します(beginning-of-buffer
)。数引数nが与えられた場合、最上行からn/10に移動します。グラフィカルなディスプレイでは、C-HOMEで同じことを行うことができます。
バッファーの最後に移動します(end-of-buffer
)。グラフィカルなディスプレイでは、C-ENDで同じことを行うことができます。
画面を1画面前方にスクロールします。もし必要ならポイントをスクリーン上の位置に移動します(scroll-up-command
)。スクロールを参照してください。
画面を1画面後方にスクロールします。もし必要ならポイントをスクリーン上の位置に移動します(scroll-down-command
)。スクロールを参照してください。
数値nを読み、ポイントをバッファー位置nに移動します。位置に1を指定するとバッファーの先頭に移動します。もしポイントがバッファーの数字の上または直後にある場合には、その数がnのデフォルトになります。そこで単にミニバッファーでRETを押すと、その数が使われます。数プレフィックス引数をM-g cに与えてnを指定することもできます。
数値nを読み、ポイントをバッファーの先頭からn行目に移動します。行に1を指定するとバッファーの先頭に移動します。もしポイントがバッファーの数字の上または直後にある場合、その数がnのデフォルトになります。ミニバッファーで単にRETを押すと、その数が使われます。数値のプレフィクス引数でnを指定してM-g
M-gに与えることもできます。単にプレフィクス引数を与えた場合のM-g M-gの動作については、バッファーの作成と選択を参照してください。ナローされたバッファーのアクセス可能範囲にたいして相対的な行にポイントを移動するためには、かわりにコマンドgoto-line-relative
を使用できます。
goto-line
は独自のヒストリーリストをもちます(ミニバッファーヒストリーを参照)。ユーザーオプションgoto-line-history-local
をカスタマイズすれば、すべてのバッファー間で共有される単一リスト(デフォルト)、あるいはバッファーそれぞれにたいして個別にリストをもつことができます。
数値nを読み取り、現在行のn列目に移動します。列0は最左列です。プレフィクス引数とともに呼び出された場合、引数で指定された数の列に移動します。
カレントバッファー内の現在ポイントがある列を、半恒久的な目標列(semipermanent goal column)として使用します。目標列が有効な場合にコマンドC-n、C-p、<prior>や<next>で垂直に移動すると、その列もしくはできる限り近い列に移動しようと試みます。目標列はキャンセルされるまで有効です。
目標列をキャンセルします。それ以降のC-nやC-pは通常どおり水平位置を保とうと試みます。
バッファーのテキストがウィンドウの幅より長い場合、通常Emacsは2行以上のスクリーン行(screen
lines)で表示します(visual lines:
ビジュアル行とも呼ぶ)。便宜上、C-nとC-pそしてdownとupも、同様にスクリーン行にしたがってポイントを移動します。これらのコマンドを論理行(logical
lines)(たとえばバッファーのテキスト行)にしたがって移動させるには、line-move-visual
にnil
をセットします。そうすると論理行が複数のスクリーン行となるような場合、カーソルは追加されたスクリーン行をスキップします。詳細は継続行を参照してください。line-move-visual
などの変数をセットする方法については、変数を参照してください。
C-nやC-pと異なり、ほとんどのEmacsコマンドは論理的な行に作用します。たとえばC-a
(move-beginning-of-line
)やC-e
(move-end-of-line
)は、論理行の先頭もしくは最後に移動します。C-nやC-pのようにスクリーン行に作用するコマンドの場合、わたしたちはそれを示すようにします。
line-move-visual
がnil
の場合、変数track-eol
にも非nil
値をセットできます。そうすると論理行の行末でC-nやC-pを開始すると、次の論理行の行末に移動します。通常track-eol
はnil
です。
通常C-nをバッファーの最後の行で使用した場合、バッファーの最後でストップします。しかし変数next-line-add-newlines
に非nil
値をセットした場合、バッファーの最後の行でC-nを押すと、行を追加してその行に移動します。