キーボードショートカット

提供: ArchWiki
2020年12月21日 (月) 18:00時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎参照: 英語版に差し替え)
ナビゲーションに移動 検索に移動

この記事では (あまり有名でない) デフォルトのキーボードショートカットのリストとユーザーカスタマイズの情報を提供します。

標準のショートカット

カーネル

カーネルにはローレベルなショートカットが複数実装されており、システムが反応しなくなったときに復旧させたりデバッグするのに用いることができます。いつでも使うことができますが、特に、電源ボタンを長押しして無理やりシステムの電源を切るよりかはショートカットを使うほうが推奨されます。

カーネルショートカットを使うには、最初に sysctl kernel.sysrq=1 または echo "1" > /proc/sys/kernel/sysrq でショートカットを有効にしておく必要があります。起動時に有効化されるようにするには、/etc/sysctl.d/99-sysctl.conf を編集して kernel.sysrq = 1 と設定してください。パーティションがマウントされて initrd に入る前に有効にしたい場合、カーネルパラメータsysrq_always_enabled=1 を追加してください。

覚え方は "Reboot Even If System Utterly Broken" です ("REISUB" とも呼ばれます)。もしくは "BUSIER" の反対として覚えましょう。

キーボードショートカット 説明
Alt+SysRq+r Unraw キーボードの制御を X から取り戻す。
Alt+SysRq+e Terminate 全てのプロセスに SIGTERM を送り、丁寧にプロセスを終了させる。
Alt+SysRq+i Kill 全てのプロセスに SIGKILL を送り、即座にプロセスを強制終了させる。
Alt+SysRq+s Sync データをディスクに書き込む。
Alt+SysRq+u Unmount 全てのファイルシステムをアンマウントして読み取り専用で再マウント。
Alt+SysRq+b Reboot 再起動
ヒント:
  • ディスプレイマネージャを使っていて Alt+SysRq+e でログイン画面が表示される場合 (もしくは自動ログインが有効になっていてデスクトップが表示される場合)、サービスファイルRestart=always ディレクティブが原因です。必要ならば、ユニットを編集してください。ただし "REISUB" シーケンスを止めることはできません。
  • 上記の組み合わせで Alt+SysRq+b だけ動作しない場合、反対側の Alt キーを使ってみて下さい。
  • Fn キーを使って SysRqPrtScrn を区別するノートパソコンでは、Fn キーを使う必要はありません (Alt+PrtSc+letter で動作します)。
  • Lenovo のノートパソコンでは大抵の場合 SysRqFn+S に設定されています。Alt を押しながら Fn+s を押してから、Alt は押し続けながら Fns から指を離して上記のキーを押してください。
  • CtrlAlt を押す必要があることもあります。その場合、完全なキーショートカットは Ctrl+Alt+SysRq+b となります。

詳しくは Wikipedia のマジック SysRq キーを見て下さい。

ターミナル

仮想端末

キーボードショートカット 説明
Ctrl+Alt+Del コンピュータを再起動 (/usr/lib/systemd/system/ctrl-alt-del.target シンボリックリンクで定義)
Alt+F1, F2, F3, ... n 番目の仮想端末にスイッチ
Alt+ ← 前の仮想端末にスイッチ
Alt+ → 次の仮想端末にスイッチ
Scroll Lock Scroll Lock が有効になっているとき、入出力がロックされます
Shift+PgUp/PgDown コンソールバッファを上下にスクロール
Ctrl+c 現在のタスクを終了
Ctrl+d EOF を挿入
Ctrl+z 現在のタスクを停止

Readline

GNU readline は行編集によく使われているライブラリです。Bash や FTP など様々なプログラムによって使われています (詳しくは readline パッケージの "Required By" を見て下さい)。readline はカスタマイズすることができます (詳しくは man ページを参照)。

キーボードショートカット 説明
Ctrl+l 画面をクリア
カーソルの移動
Ctrl+b 一文字分カーソルを左に移動
Ctrl+f 一文字分カーソルを右に移動
Alt+b 一単語分カーソルを左に移動
Alt+f 一単語分カーソルを右に移動
Ctrl+a カーソルを行頭に移動
Ctrl+e カーソルを行末に移動
コピー & ペースト
Ctrl+u 行頭からカーソル位置まで切り取り
Ctrl+k カーソル位置から行末まで切り取り
Alt+d カーソルの後の単語を切り取り
Ctrl+w カーソルの前の単語を切り取り
Ctrl+y 切り取ったテキストを貼り付け
Alt+y 前に切り取ったテキストを貼り付け
Alt+Ctrl+y 前のコマンドの第1引数を貼り付け
Alt+./_ 前のコマンドの最後の引数を貼り付け
履歴
Ctrl+p 前の行に移動
Ctrl+n 次の行に移動
Ctrl+s 検索
Ctrl+r 逆検索
Ctrl+j 検索を終了
Ctrl+g 検索を中止 (元の行に戻る)
Alt+r 変更を全て戻す
補完
Tab 名前の自動補完
Alt+? 利用可能な補完候補を表示
Alt+* 利用可能な補完候補を全て挿入

X11 & Wayland

キーボードショートカット 説明 ノート
Ctrl+Alt+F1, F2, F3, ... n 番目の仮想端末にスイッチ 機能しない場合 Ctrl+Fn+Alt+F… を試してみてください。
Shift+Insert
Mouse Button 2
PRIMARY バッファからテキストを貼り付ける デフォルトでは QtShift+Insert で PRIMARY バッファではなく CLIPBOARD を使います [1]。そして PRIMARY バッファは Ctrl+Shift+Insert を使用します。

ユーザーカスタマイズ

Readline

以下の例では行の先頭から文字列の履歴を後方検索するキーを追加します (vi モード)。インクリメンタル検索ではありません。

.inputrc
set editing-mode vi
set keymap vi-insert
"\C-r": history-search-backward
"\C-e": history-search-forward

Zsh

ZshZLE を使用して、ショートカットをウィジット、スクリプトおよびコマンドにリンクします。

X11

一般的なショートカットや、デフォルトで無効になっているショートカットは Xorg でのキーボード設定#よく使われる XKB オプションを見て下さい。

X-selection-paste のキーバインディング

マウスよりもキーボードを好んで使用する場合、マウスの中ボタンでペーストを行うキーバインドが役に立つかもしれません。特にキーボードを集中的に使う環境では有用です。ワークフローは以下のようになります:

  1. Firefox で、検索したい文字列を (マウスで) 選択してください。
  2. Ctrl+k を押して "Google search" フィールドにカーソルを移動。
  3. マウスポインタを移動して中ボタンを押す代わりに F12 でバッファを貼り付け。
ノート: Shift+Insert で同じような機能が実行できます。#X11 を見てください: Shift+Insert は x-selection-paste バッファではなくクリップボードバッファを挿入します。アプリケーションによっては、両方のバッファには同じ中身が入ります。

ここでは公式リポジトリにある3つのパッケージを使います:

  • xsel で x-selection-buffer の中身にアクセス。
  • Xbindkeys でキーストロークに操作をバインド。
  • xvkbdAUR でキーボードの入力をエミュレートしてバッファ文字列をアプリケーションに渡す。

以下の例では x-selection-paste の操作を F12 キーにバインドします:

.xbindkeysrc
"xvkbd -no-jump-pointer -xsendevent -text "\D1`xsel`" 2>/dev/null"
    F12

"\D1" コードはセレクションバッファの挿入の前に 100 ms のポーズを追加します (xvkbd のホームページ を参照)。

ノート: X の設定によっては、xvkbd の -xsendevent 引数を外す必要があります。

F12 以外のキーのキーコードは xbindkeys -k で確認できます。

参照:

XMonad ウィンドウマネージャ

xmonad ウィンドウマネージャには x-selection-buffer の中身を貼り付ける機能が内蔵されています。特定のキーストローク (例: Insert キー) にバインドするには以下の設定を使用:

xmonad.hs
import XMonad.Util.Paste
...
  -- X-selection-paste buffer
  , ((0,                     xK_Insert), pasteSelection) ]

xdotool を使用 - コマンドライン X11 自動化ツール

xdotool を使用することで中ボタンボタンによって X のセレクションバッファの中身を貼り付ける操作のショートカットを作成できます。ショートカットのコマンドは以下のようになります:

xdotool getwindowfocus key --window %1 click 2

上記のコマンドは X サーバーからフォーカスのあたっているウィンドウを取得してボタン2 (中マウスボタン) のクリックイベントを発動します。

ヒントとテクニック

参照