パスコンポーネントを削除するためのbashとzshへのショートカットはありますか?たとえば、入力したがカーソルが行のls ~/local/color/
末尾にある場合、color/
最後の行を削除できるショートカットがありますか?理想的には、viモードとemacsモードの両方で解決策が欲しいです。
答え1
基本bashで最も一般的に使用されるコマンドEmacsモード、最も一般的に使用されるキーボードの場合:
移動する
- Ctrl- p、またはUp: 前のコマンド
- Ctrl-nまたはDown: 次のコマンド
- Ctrl- b、またはLeft: 前の文字
- Ctrl-fまたはRight: 次の文字
- Alt- b: 前の単語
- Alt- f:次の単語
- Ctrl-aまたはHome: コマンドの開始
- Ctrl-eまたはEnd: コマンド終了
編集する
- BkSpc: 前の文字を削除
- Ctrl-dまたはDel: 現在の文字を削除
- Alt- BkSpc: 左の単語を削除
- Alt- d: 右の単語を削除
- Ctrl- u: コマンドの先頭まで削除
- Ctrl- k: 命令の最後まで削除
- Ctrl- y:最後に切り取った内容を貼り付けます。
いくつかの雑多な
- Cltr- /: 元に戻す
- Cltr- r: 増分リバース履歴の検索
答え2
そして!unix-filename-rubout
Readline
# in ~/.inputrc
# press ctrl-b to delete unix filename parts
# see: man bash | less -p 'unix-filename-rubout' and
# http://www.calmar.ws/vim/vi-bash.html
set editing-mode vi
set keymap vi
"\C-b": unix-filename-rubout
答え3
デフォルトでは、bash(そしてzshも同様)はemacsモードです。次のように試すことができます。
Esc + bカーソルを1ワード後ろに移動します。 Ctrl + k行末まで削除されます。
ほとんどの最新のシェル(bashなど)は、高度なコマンドライン編集機能を実装しています。このコマンドはemacsの編集に似ています(行の先頭はCtrl + A、行の終わりはCtrl + E、...)。
viなどのエディタに慣れている場合は、viモードを許可してみてください。
set -o vi
シェルにviと同様のモード(コマンドモード/挿入モード)を提供し、標準コマンド(削除用d、交換用r、...)にアクセスできます。
Vi モードでは、次のような操作を行います。
Esc (command mode); d; b.