bash vi 最強ですね、わかります。

タイトルはホッテントリメーカーより。
今回のはマジでキターーーので。

やっぱbash vi 最強ですね、わかります。

一口で結論を言うと、bashの操作をvi互換にした!これはマジで使えるレベル!!!

やったこと一覧

・.inputrcを作成


set editing-mode vi
"\C-p": history-search-backward
"\C-n": history-search-forward
"\C-j": vi-movement-mode

やっぱviが最強

bashで、カーソル移動の時にCtrl+AとかCtrl+Eで先頭とか行末とか行ったりできる。

だけど、正直Ctrl+AとかCtrl+Eとか押しにくすぎる。
(実はCtrlはCapsLockにバインドはしてあるんだけど、どうしても押せず、
小指で左下のCtrlを押してるんで。)

しかも、
行の真ん中とか行きたい時に行く方法が無い!!!

ってわけで
コマンドライン


set -o vi
するととりあえずviモードになるのは知ってたんだけど
Ctrl+Pでコマンド履歴戻れない上に、

(超個人的に)最重要であるCtrl+JでESC(インサートモードから移動モードへ)バインドが
文実行に化けてしまう点にあった!!!!!!

これをどげんかせんと(ry
なカンジで、めちゃめちゃ調べてみると解決キター!

名前だけは聞いたことがあった.inputrc

.inputrcというファイルは聞いたことがあったが
どういうものなのかは知らなかった。

しかし、ここに設定を書くとどうやらうまくいくらしい!


set editing-mode vi
"\C-p": history-search-backward
"\C-n": history-search-forward
"\C-j": vi-movement-mode
これで、Ctrl+Jで移動モードに早がわり!
移動モードの時にCtrl+Pをすると^Pとかそのまんま表示されていたのが
いつもの履歴を前へに!!!!
Ctrl+Nも同じ、いつものやつに!

これはpsql時でも、同じようなことがされているので
(どうやら.inputrcはreadlineというプログラムの設定変更らしい)
select * from hoge where なんちゃらかんちゃら
とか長く書いていたときに、変なとこで間違ってたとかあっても

0で行頭戻ったり!
$で行末行ったり!
dwで単語消したり!
f文字でジャンプしたり!
uでアンドゥしたり!
dt文字で文字まで消したり!
ddしたり!
pしたり!
Pしたり!
yしたり!
さらにはyypしたり!!!!
(以下果てしなく続く

ああああああもうイヤッホオオオオオオオオオオオオオオオウ!!!!!!!!
なわけです。

でもdi(とかでカッコの中身消したりできないみたい。
ほかにもできないのはあるかも。

だけどこれははっきり言って最強にlifehack!!!!!!!!!

vimerの方はぜひぜひお試しを。

参考文献

最終的にたどりつくまではいろいろ探したんだけど、

bash入門


bind -vで現在の設定を確認できる。

で現在の設定みたり、


~/.inputrcで set -o vi時に^P/^Nとついやっちゃってイライラするのを防止する-探神


$ set -o emacs
$ bind -p | grep -i C-p
$ bind -p | grep -i C-n
が参考になりました。
ありがとうございます。

set -o emacsしてからC-X C-Rで.inputrcの設定を読み直してくれるので、
それで何度もやりなおしました。
set -o viの状態でやってもサーチに化けてしまうっぽいんで注意が必要。

bind -pしていろいろ探して自分バインドしよう!