cBlog

Tips for you.

bashの日本語ファイル名補完に関する一対策

f:id:cruller:20170907124227p:plain

GUIアプリケーションを使っていると日本語ファイル名を使うことはよくあると思います。

でも、Macのターミナルを使っていて思うんですが、そういうファイルはファイル名の入力に困ります。ファイル名の補完は通常、(macOSだけでなくWindows 10にも搭載された)bash(のreadline?)が担っていると思いますが、bashにはこの問題を解決する適当なオプションがありません。

今回は、この日本語ファイル名補完問題に対して私がとった妥協的解決案です。

 

menu-complete

menu-completeというコマンドがあります。これは、すべての対象を順繰りに補完してくれるやつです。これを使って日本語入力を回避しようというわけです。

ホームにある.inputrcに以下を記述するとcontrol + Fで順に補完します。

"\C-f": menu-complete

bash 4.0.0以降だと逆順のmenu-complete-backwardというものもありますが、現状のmacOSではバージョンが古いので使えません。ただ、menu-completeに負の引数を与えることで可能になります。

以下を記述するとcontrol + Bで逆順に補完します。

"\C-b": "\e--\C-f"

(カーソル移動を潰しているので)キーバインドはお好みで調整してください。

 

参考

stackoverflow.com