UNIX/Linuxの部屋 設定ファイル:~/.inputrc

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




設定ファイル ~/.inputrc readline 設定ファイル このエントリーをはてなブックマークに追加

行入力支援ライブラリ readline の設定を行う。bash・gdb・bc・ftp など、行入力機能に readline を利用しているコマンドの CUI インタフェースについて、このファイルで設定を行うことができる。

設定を行うには、主に
set 変数名 値
という変数の設定を羅列する。例えば
set editing-mode emacs
とすれば emacs に似たキーバインドが設定される。一方、
set editing-mode vi
とすることで vi に似たキーバインドが設定される。

主な変数
editing-mode
編集モード設定。emacs か vi を設定する。デフォルトは emacs。
emacs とすると emacs に似たキーバインドになり、vi にすると vi に似たキーバインドになる。
completion-query-items
TAB を押下した際、補完候補が少ない場合は補完候補一覧を表示するが、補完候補が多すぎる場合は
% ls /usr/bin/ (TAB を押下)
Display all 417 possibilities? (y or n)
などと全ての選択候補を表示するかどうかをユーザに問い合わせる。completion-query-items は、「補完候補が何個以上ある場合に問い合わせを行うか」を設定する。デフォルトは 100。
expand-tilde
単語の先頭にあるチルダ「~」をホームディレクトリに展開するかどうかを設定する。展開するなら on、展開しないなら off を設定する。デフォルトは off。on の場合は
% ls ~/ (ここで TAB を押下すると)
% ls /home/68user/ (と展開される)
という挙動になる。

コマンドごとの設定
~/.inputrc の内容は、readline を利用するコマンド全てに影響する。もしコマンドごとに異なる設定を行いたい場合は、$if〜$endif を使うとよい。
$if Bash
# パス(PATH)の編集
"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
# 引用符で囲まれた単語を入力するための準備 -- 先頭と末尾の二重引用符
# を挿入して、先頭の引用符の直後に移動
"\C-x\"": "\"\"\C-b"
# バックスラッシュを挿入
# (シーケンスやマクロにおいて、バックスラッシュ・エスケープをテストする)
"\C-x\\": "\\"
# カレントな単語、または、1つ前の単語を引用符で囲む
"\C-xq": "\eb\"\ef\""
# バインドされていない行再表示コマンドにバインディングを追加
"\C-xr": redraw-current-line
# カレント行において変数を編集
"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
$endif

# FTP 用
$if Ftp
"\C-xg": "get \M-?"
"\C-xt": "put \M-?"
"\M-.": yank-last-arg
$endif