tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

Bashで大文字/小文字を無視して補完 - .inputrcとreadline

はじめに

macを新しくしたので.bashrcやら.vimrcも断舎離しつつ新しくしています。

terminalを開いてコマンドラインで入力する時、
tabで補完してくれるわけですが
デフォルトでは大文字小文字を正確に打たないと補完してくれません。

$ ls -1

Fuga.txt
Hoge.txt
piyo.txt

# この状態でtabを打っても補完されない
$ cat ho

この補完に大文字/小文字を無視して補完してくれる設定です

アジェンダ

  1. 設定
  2. .inputrcって?
  3. readlineって?

1. 設定

設定は簡単で、${HOME}/.inputrcというファイルに以下の設定を書いて読み込むだけです。
ちなみになければ作成してください

# 設定
$ vim ~/.inputrc
-- vim追記 --
$if Bash
set completion-ignore-case on
$endif
------------

# 読み込み
$ source ~/.inputrc

2. .inputrcって?

ところで.bashrcはよく見かけますが.inputrcはなんでしょうか?

これはreadlineが読み込む設定ファイルです。

3. readlineって?

では、readlineってなんでしょうか?

参考サイトからの引用になりますがライブラリです。

readlineは、CUI アプリケーションにおいてユーザが行を入力する際に便利な
「行頭・行末移動」「ヒストリ機能」などを提供するライブラリである。
readline というコマンドがあるわけではない。
 
参考: コマンド readline 行入力支援ライブラリ

こちらも参考サイトからの引用ですが、
readlineが提供する機能は以下でして補完・または候補一覧を表示 (TAB)もこれに含まれます。

  • 1文字戻る (Ctrl-b)
  • 1文字進む (Ctrl-f)
  • 行頭に移動 (Ctrl-a)
  • 行末に移動 (Ctrl-e)
  • カーソル位置から行末までを削除 (Ctrl-k)
  • 1行上 (直前に入力した内容) に移動 (Ctrl-p)
  • 1行下に移動 (Ctrl-n)
  • 逆方向インクリメンタルサーチ (Ctrl-r)
  • 補完・または候補一覧を表示 (TAB)
  • エスケープシーケンスを入力 (Ctrl-q・Ctrl-v)  
    参考: コマンド readline 行入力支援ライブラリ

参考

おわり

vimの設定からでも調べると知らない事が増えるのは良いですよね\(^o^)/