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を押してるんで。)
しかも、
行の真ん中とか行きたい時に行く方法が無い!!!
ってわけで
コマンドラインで
するととりあえずviモードになるのは知ってたんだけど
set -o vi
Ctrl+Pでコマンド履歴戻れない上に、
(超個人的に)最重要であるCtrl+JでESC(インサートモードから移動モードへ)バインドが
文実行に化けてしまう点にあった!!!!!!
これをどげんかせんと(ry
なカンジで、めちゃめちゃ調べてみると解決キター!
名前だけは聞いたことがあった.inputrc
.inputrcというファイルは聞いたことがあったが
どういうものなのかは知らなかった。
しかし、ここに設定を書くとどうやらうまくいくらしい!
これで、Ctrl+Jで移動モードに早がわり!
set editing-mode vi
"\C-p": history-search-backward
"\C-n": history-search-forward
"\C-j": vi-movement-mode
移動モードの時に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の方はぜひぜひお試しを。
参考文献
最終的にたどりつくまではいろいろ探したんだけど、
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していろいろ探して自分バインドしよう!