WSLで始めるUbuntu
[IT研修]注目キーワード
Python
UiPath(RPA)
最新技術動向
Microsoft Azure
Docker
Kubernetes
第15回 キーバインドできる機能について知ろう(1)
(宮崎悟)
2020年1月
前回はbashで使用されるReadlineの機能と、キーバインドについて説明しました。今回は、キーバインドに使用できる機能(以下コマンド)の使い方を説明しようと思います。
Readlineコマンド
bashで使用されるReadlineライブラリには大量のコマンドが存在します。デフォルトのキーバインドには含まれていないコマンドも存在します。bindを使用すると、任意のキーに任意のコマンドを割り当てることが出来ます。
bind keyseq:function-name
keyseq には、割り当てるキーを指定します。keyseq、"\e\C-x"
のようにEmacs形式のキー表記を使用します。function-nameには、コマンド名を指定します。
以下、コマンドの機能について説明します。説明時には以下のルールに則ります。
- コマンド名(デフォルトのキーバインド) の形式で説明します
- コマンド名のみのときは、デフォルトでキーバインドされていません
- ポイント
現在のカーソル位置
- マーク
set-markコマンドで保存された位置
- リージョン
ポイントとマーク間のテキスト
移動コマンド
カーソル位置を移動させるコマンドを移動コマンドと呼びます。カーソル位置を1文字・行頭・行末・単語単位で移動することが出来ます。
- beginning-of-line (C-a)
現在の行の先頭に移動します。
- end-of-line (C-e)
行の末尾に移動します。
- forward-char (C-f)
1 文字進みます。
- backward-char (C-b)
1 文字戻ります。
- forward-word (M-f)
次の単語(連続した英数字)の最後に進みます。
- backward-word (M-b)
現在あるいは直前の単語(連続した英数字)の先頭に戻ります。
- shell-forward-word
次の単語(クォートされていないシェルのメタ文字で区切られた文字列)の最後に進みます。
- shell-backward-word
現在の単語次クォートされていないシェルのメタ文字で区切られた文字列)あるいは前の単語の先頭に戻ります。
- clear-screen (C-l)
現在の行を画面の一番上の行に残したまま、画面をクリアします。
- redraw-current-line
現在の行を再描画します。
数値の引数
コマンドに数字の引数を渡すことが出来ます。
- digit-argument (M-0, M-1, ..., M--)
すでに入力された引数にこの数字を追加するか、またはこの数字によって新しい引数を始めます。
M-- を使うと、負の値を指定できます。
- universal-argument
引数を指定する別の方法です。このコマンドに続けて 1 つ以上の数字(マイナス記号を含む)が入力された場合)、これらの数字で引数が定義されます。このコマンドの後に数字が続いた場合、universal-argument を再び実行すると数値の引数を終了しますが。このコマンドの後に数字た続かない場合は無視されます。このコマンドの直後に数字・マイナス記号でない文字がある場合には、 次のコマンドに対する引数カウントが 4 倍になります。引数カウントは1から始まるため、この機能を一度実行すると引数カウントは 4・16・32と増えていきます。
テキスト編集コマンド
現在の行を編集するコマンドです。
- delete-char (C-d)
ポイントの文字を削除します。以下の要素が含まれれば、 EOF が返されます。
- ポイントが行の先頭
- 文字がない
- 打ち込んだ最後の文字が delete-char に割り当てられていない
- backward-delete-char (Backspace)
カーソルの前の文字を削除します。数値の引き数を与えると、 削除したテキストをキルリングに保存します。
- forward-backward-delete-char
カーソルが行末になければカーソルがある位置の文字を削除します。カーソルが行末にある場合には、カーソルの前の文字を削除します。
- quoted-insert (C-q, C-v)
次に打ち込んだ文字をそのまま行に追加します。これは C-q 等のコントロール文字を挿入するために使います。
- tab-insert (C-v TAB)
タブ文字を挿入します。
- self-insert (a, b, A, 1, !, ...)
打ち込んだ文字をそのまま挿入します。
- transpose-chars (C-t)
ポイントの前にある文字を現在ポイントがある文字の後ろへ移動し、ポイントを前に移します。ポイントが行の最後にある場合は、 ポイントの前の2 文字が交換されます。負の引き数を指定すると、何も起こりません。
- transpose-words (M-t)
ポイント前にある単語を、現在ポイントがある単語の後ろへ移動します。 ポイントは移動した単語の後ろへ移動します。 ポイントが行の最後にある場合は、行の最後の 2 単語が交換されます。
- upcase-word (M-u)
現在または後ろの単語を大文字にし、ポインタの位置を単語末尾に移します。負の引き数を指定すると前の単語を大文字にしますが、ポイントは動きません
- downcase-word (M-l)
現在のまたは後ろの単語を小文字にし、ポイントの位置を単語末尾に移します。負の引き数を指定すると、前の単語を小文字にしますが、 ポイントは動きません。
- capitalize-word (M-c)
現在または後ろの単語をキャピタライズ(単語の先頭の文字を大文字に)し、ポインタの位置を単語末尾に移します。負の引き数を指定すると前の単語をキャピタライズしますが、 ポイントは動きません。
- overwrite-mode
上書きモードをトグルさせます。正の引き数を指定すると上書きモードに、負の引き数を指定すると挿入モードに切り替えます。このコマンドは emacs モードでのみ有効です。
以下次回
今回はキーバインド出来るReadlineのコマンドについて説明しました。まだまだコマンドは多数あるので、次回はその続きを行おうと思います。次回をお楽しみに。
CTC教育サービス 関連コース
[IT研修]注目キーワード
Python
UiPath(RPA)
最新技術動向
Microsoft Azure
Docker
Kubernetes
「WSLで始めるUbuntu」コラム一覧へ
コラム一覧へ