Skip to content

説明書 §5 Emacs

Koichi Murase edited this page Mar 8, 2023 · 13 revisions

[ 日本語 | English ] ≫ 説明書 [§1 基本 | §2 描画 | §3 束縛 | §4 編集 | §5 Emacs | §6 Vim | §7 補完 | §8 他]

5. Emacs 編集モード

Emacs 編集モードは基本的に「4. コマンドライン編集」で説明したものと同じです。 以下に Emacs 編集モード特有の操作について説明します。

5.1 編集操作

文字挿入・削除

操作 widget 説明
C-q, C-v emacs/quoted-insert 次のキー入力の文字をそのまま挿入
paste_begin emacs/bracketed-paste 貼り付け開始
C-d delete-region-or delete-forward-char-or-exit 範囲削除または一文字削除またはログアウト

元に戻す・やり直す

操作 widget 説明
C-_, C-DEL, C-BS, C-/, C-x u, C-x C-u emacs/undo 元に戻す
C-x U, C-x C-S-u emacs/redo やり直す
M-r emacs/revert 編集開始前の状態に戻す

内部用途

操作 widget
__attach__ safe/__attach__
__before_widget__ emacs/__before_widget__
__after_widget__ emacs/__after_widget__
C-</kbd>, C-^ bell

5.2 シェルとしての機能

展開

操作 widget 説明
M-^ history-expand-line 履歴展開を実行
SP magic-space 各種展開を実行の後に空白挿入
/ magic-slash 名前付きディレクトリ展開 (~ で始まる静的略語展開) を実行の後にスラッシュ挿入
M-C-e shell-expand-line シェル展開を実行
M-& tilde-expand チルダ展開を実行

コマンド実行・キャンセル

操作 widget 説明
C-c discard-line 現在行を破棄
C-j, C-RET accept-line 現在の行を実行
C-m, RET accept-single-line-or-newline 改行挿入 (複数行モード・コマンドが不完全の時) または現在行を実行
C-o accept-and-next 現在行を実行し次の履歴項目に移動
C-x C-e edit-and-execute-command 現在行をエディタで編集し実行
M-# insert-comment コメント挿入
C-g, C-x C-g, C-M-g bell キャンセル

その他

操作 widget 説明
C-l clear-screen 画面をクリア
C-M-l redraw-line 現在編集行を再描画
f1 command-help 現在のコマンドのヘルプを表示
C-x C-v display-shell-version 現在のシェルバージョンを表示
C-z, M-z (command) fg 一時停止中のジョブを再開

5.3 Emacs 編集モード特有の設定

Emacs 編集モード特有の設定は hook keymap_emacs_load 経由で実行することができます。

# blerc (例)

function my/emacs-load-hook {
  # Emacs 編集モード特有の設定
  ...
}

blehook/eval-after-load keymap_emacs my/emacs-load-hook
# ble-0.3以前
# ble/array#push _ble_keymap_emacs_load_hook my/emacs-load-hook

5.3.1 設定変数 prompt_emacs_mode_indicator (プロンプト文字列) (v0.4)

Info行に配置されるモード表示の内容をプロンプト文字列で指定します。

[ 注意: 以下の設定は keymap_emacs_load フックを通して設定する必要があります。 この節の初めのコード例 を御覧ください。 ]

# hook:keymap_emacs_load

# 既定値
bleopt prompt_emacs_mode_indicator='\q{keymap:emacs/mode-indicator}'

5.3.2 プロンプトシーケンス \q{keymap:emacs/mode-indicator} (v0.4)

複数行モードにおいてモード名およびヒントに展開されます。 複数行モードの外では空文字列に展開されます。

\q{keymap:emacs/mode-indicator}  # 展開例: -- MULTILINE -- (RET or C-m: insert a newline, C-j: run)

5.3.3 設定変数 keymap_emacs_mode_string_multiline (ANSI制御シーケンス) (v0.4)

複数行編集モードにおいて \q{keymap:emacs/mode-indicator} で使用するモード名を指定します。

[ 注意: 以下の設定は keymap_emacs_load フックを通して設定する必要があります。 この節の初めのコード例 を御覧ください。 ]

# hook:keymap_emacs_load

# 既定値
bleopt keymap_emacs_mode_string_multiline=$'\e[1m-- MULTILINE --\e[m'

# 複数行編集モードでも モード名を表示しない
bleopt keymap_emacs_mode_string_multiline=

[ 日本語 | English ] ≫ 説明書 [§1 基本 | §2 描画 | §3 束縛 | §4 編集 | §5 Emacs | §6 Vim | §7 補完 | §8 他]