LoginSignup
18
16

More than 5 years have passed since last update.

bashのキーバインドを変えて快適ターミナルライフ

Last updated at Posted at 2015-12-14

はじめに

Hamee Advent Calendar 15日目の記事です。
bashのキーバインドを変えてターミナル操作を快適にするのが目的です。

環境

  • 自分のMacでの動作を確認
    • Mac OS X ver 10.9.5
  • Windows未検証

やりたいこと

ターミナル上で例えば

php test.php hoge moge foo bar sample

のように、あるプログラムファイルに引数を大量に渡す場合、または

ssh 0.0.0.0 -i ~/.ssh/sample.pem

のように、あるコマンドに対して引数とオプションを大量に渡す場合

例えば上の例で言うと引数mogeの部分が間違っていて修正したい時に
ctrl + eで末尾から左キーで該当箇所に行く or ctrl + aで先頭から右キーで該当箇所に行く
という選択があるかと思うんですが、これだと右キー左キーをしばらく押さなければならず遅いですし手間です。
該当箇所にさくっと移動したいのがやりたいことです。

やること

デフォルトのbashで単語間移動ができます。
esc + fで次の単語へ移動
esc + bで前の単語へ移動
しかしこれでescを押しながらbを連打すると、一個単語が移動したところでbという文字を打ってしまいます。
jz4RuAXzp9.gif

更に次の単語へ行くにはescを押し直す必要があり非常に手間なのと、そもそもescというのが使いづらい。
そこでescではなくctrlに変えてしまいます。

~/.bashrc
# ctrl+fで次の単語に移動
bind '"\C-f": forward-word'
# ctrl+bで前の単語に移動
bind '"\C-b": backward-word'

これでsource ~/.bashrcをすればctrl + bでの単語間移動が可能になります。
以下はctrl + bmoge手前まで移動しctrl + wmogeを消す様子
MKVarCTIXY.gif

弊害として元々のctrl + bの「1つ左へ移動」という挙動ができなくなりますがそれは左右キーで良いかと思います。

おわりに

別にctrl + bでなければならない理由はないので、そこは自分の打ちやすい(覚えやすい)キーに変えてしまえば良いかと思います。
キーバインドを変えて快適なターミナルライフを!:thumbsup:

おまけ

ctrl + kでカーソル位置から行末まで消すことができるのは割と有名だと思ってるんですが、その逆で行頭まで消すのはどうすればいいんだっけとなったので一応ここに記しておきます。
ctrl + uでカーソル位置から行頭までを消せます。
覚えておくと何かと便利そうですね:smile:

参考

以前ctrl + wでスラッシュまでを消すようにするという記事も書いているので合わせてどうぞ
Ctrl+wを押した時にスラッシュまでを削除するようにするbash設定

18
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
16