shell – Zsh zle shift选择

前端之家收集整理的这篇文章主要介绍了shell – Zsh zle shift选择前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何使用shift来选择命令行的一部分(就像许多文本编辑器一样)?
  1. shift-arrow() {
  2. ((REGION_ACTIVE)) || zle set-mark-command
  3. zle $1
  4. }
  5. shift-left() shift-arrow backward-char
  6. shift-right() shift-arrow forward-char
  7. shift-up() shift-arrow up-line-or-history
  8. shift-down() shift-arrow down-line-or-history
  9. zle -N shift-left
  10. zle -N shift-right
  11. zle -N shift-up
  12. zle -N shift-down
  13.  
  14. bindkey $terminfo[kLFT] shift-left
  15. bindkey $terminfo[kRIT] shift-right
  16. bindkey $terminfo[kri] shift-up
  17. bindkey $terminfo[kind] shift-down

这假设您的终端在Shift-Arrows上发送一个不同的转义序列来自Arrow发送的转发箭头,并且您的terminfo数据库已正确填充相应的kLFT和kRIT功能,并且您正在使用emacs样式键绑定.

或者,稍微分解代码

  1. shift-arrow() {
  2. ((REGION_ACTIVE)) || zle set-mark-command
  3. zle $1
  4. }
  5. for key kcap seq widget (
  6. left LFT $'\e[1;2D' backward-char
  7. right RIT $'\e[1;2C' forward-char
  8. up ri $'\e[1;2A' up-line-or-history
  9. down ind $'\e[1;2B' down-line-or-history
  10. ) {
  11. functions[shift-$key]="shift-arrow $widget"
  12. zle -N shift-$key
  13. bindkey ${terminfo[k$kcap]-$seq} shift-$key
  14. }

上面是terminfo数据库没有信息的情况下的硬编码序列(使用xterm序列).

猜你在找的Bash相关文章