それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ターミナルでctrl+delete(Backspace)で一単語消しを実現する戦い。

ctrl + backspace がイチ単語消せますよね。

  • Windowsだと、 ctrl+Backspace
  • OSX だと、 ctrl+Delete

で、単語ひとつ削除できて便利なんです。

ターミナルで単語1つ消したい。

単語1つけすだけだから、readline/bashにinputrc で設定渡せばいいじゃん?

バックスペースは ^ H に割り当てられるので、それを解除して。^? に相当の機能を割り当ててみる。

stty erace "^H"
bind '^?' unix-word-rubout

これでできそうなんですが・・・バックスペース単体が出来ない。。。

bind で現在の設定を確認する。

bind -p | grep '\?'

どうやら、^ H 自体を書き換えるしかないっぽい。詳しく調べるには時間がない。

iTerm でキーマップを無理やり変更することに。

iTermの機能で、キーマップ無理やり変更することにしました。

元のキー マッピング
ctrl+delete 0x17
ctrl+Left \eb

などとして、Windows的なキーバインドを使うことにしました。

f:id:takuya_1st:20151027230048j:plain:w600

もしくは諦める。

Opt+Delete が terminal 上で 単語ひとつ削除に割り当てているので、ソレを使う。

納得出来ない

納得出来ないので、 inputrc と bind について追調査が必要。

参考資料

Bash: can I set Ctrl-Backspace to delete the word backward? - Super User