すごい行動
bash
今から移行しましたzsh
。にはbash
次の行があります~/.inputrc
。
"\e\C-?": unix-filename-rubout
したがって、Alt+はBackspace古いスラッシュを再度削除するため、パスを編集するのに役立ちます。
個別に、bash
デフォルトはCtrl+w 前の削除です。スペース、これはパラメータ全体を削除するのに役立ちます(スペースがないと仮定)。したがって、少し2つあります。その他各キーの組み合わせで実行される操作です。
Zshアクション
はzsh
+と+の両方で同じことを行いますAlt。どちらも古い単語を削除しますが、ハイフン接続をあまりにも疎に定義して古いまたは削除します。と同様の動作を作成する方法はありますか?BackspaceCtrlw-
_
zsh
bash
2つの独立した行動?重要な場合はすでにoh-my-zsh
インストールしています。
答え1
同様の質問がここに要求されました。zsh:ディレクトリ区切り文字で単語を逆さまに殺すのをやめます。
そして動作する解決策が提供されたら、次の設定をzshrcに追加します。
autoload -U select-word-style
select-word-style bash
答え2
編集:質問後の次のGoogleの結果は、同じソリューションを使用した結果です。zsh:英数字以外の文字でALT + BACKSPACEを停止します。
この回答は/nick FoH
freenodeの#zshで提供されました。
backward-kill-dir () {
local WORDCHARS=${WORDCHARS/\/}
zle backward-kill-word
zle -f kill
}
zle -N backward-kill-dir
bindkey '^[^?' backward-kill-dir
ctrl+w
このようにして、vim lingoから単語を削除してalt+bkspc
単語を削除することができます。
答え3
拡張ジャンクメカニックの答え、私は欲しい
- 既存のzshショートカット(CtrlW、、Ctrl←およびCtrl→)はzshデフォルトと同じように機能します。
- Altショートカットベース(AltW、、Alt←およびAlt→)も同様に機能しますが、「より詳細」です。
/
これが私が今使っているものです:
# Alt+Backspace
backward-kill-dir () {
local WORDCHARS=${WORDCHARS/\/}
zle backward-kill-word
zle -f kill # Ensures that after repeated backward-kill-dir, Ctrl+Y will restore all of them.
}
zle -N backward-kill-dir
bindkey '^[^?' backward-kill-dir
# Alt+Left
backward-word-dir () {
local WORDCHARS=${WORDCHARS/\/}
zle backward-word
}
zle -N backward-word-dir
bindkey "^[[1;3D" backward-word-dir
# Alt+Right
forward-word-dir () {
local WORDCHARS=${WORDCHARS/\/}
zle forward-word
}
zle -N forward-word-dir
bindkey "^[[1;3C" forward-word-dir
詳細については、zle -f kill
次を参照してください。Zsh - カスタムウィジェットにテキストを貼り付けると、最後の単語でのみ機能します。この問題を修正できますか?
答え4
bindkey '^[^?' vi-backward-kill-word
私が知る限り、それはMeta-BackSpace
同じように動作します@thomas-dickeyが提案した回答、そして2行の代わりに1行に;-)。しかし、ただMeta-BSに影響を与えます。メタ(左/右)ナビゲーションの完全なbash様動作を探している場合、これはselect-word-style
正しいアプローチです。
(脚注:select-word-style
- もの文書化されていますが、man zshcontrib
ほとんど理解できません。vi-backward-kill-word
に録音されましたman zshzle
。 )