首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zsh shift+control+arrows

Zsh shift+control+arrows
EN

Stack Overflow用户
提问于 2014-07-23 13:33:17
回答 1查看 2.1K关注 0票数 3

我拼命寻找一种在zsh shell中启用经典导航和选择的方法。意思是,我希望能够:-在zsh中选择char by char使用shift+左/右-在zsh中使用control+左/右逐字移动-在zsh中使用ctrl+shift+左/右逐字选择

我已经能够,使用一些愚蠢的黑客和解决方案,我发现在不同的相关主题,做我的清单的前两个要点,但我不能得到一个简单的解决方案,使我的第三点工作正常。有人知道怎么做吗?我正在使用gnome终端,但是如果需要它来做我想做的事情,我不介意切换到另一个终端,只要新的终端允许我使用鼠标复制/粘贴/滚动。

我希望你能解决我的问题

EN

回答 1

Stack Overflow用户

发布于 2014-07-24 16:35:01

好的,这就是我目前在.zshrc中控制键绑定的内容:

代码语言:javascript
复制
function zle-line-init {
    marking=0
}
zle -N zle-line-init

function select-char-right {
    if (( $marking != 1 ))
    then
        marking=1
        zle set-mark-command
    fi
    zle .forward-char
}
zle -N select-char-right

function select-char-left {
    if (( $marking != 1 ))
    then
        marking=1
        zle set-mark-command
    fi
    zle .backward-char
}
zle -N select-char-left

function forward-char {
    if (( $marking == 1 ))
    then
        marking=0
        NUMERIC=-1 zle set-mark-command
    fi
    zle .forward-char
}
zle -N forward-char

function backward-char {
    if (( $marking == 1 ))
    then
        marking=0
        NUMERIC=-1 zle set-mark-command
    fi
    zle .backward-char
}
zle -N backward-char

function delete-char {
    if (( $marking == 1 ))
    then
        zle kill-region
        marking=0
    else
        zle .delete-char
    fi
}
zle -N delete-char

bindkey ';6D' select-word-left ## not working yet                                                                                                                                                                                                                               
bindkey ';6C' select-word-right ## not working yet                                                                                                                                                                                                                              
bindkey ';2D' select-char-left   # assuming xterm                                                                                                                                                                                                                               
bindkey ';2C' select-char-right  # assuming xterm                                                                                                                                                                                                                               
bindkey ';5D' backward-word
bindkey ';5C' forward-word
bindkey '^[[3~' delete-char

有了这个,我可以:

  • 逐字逐句地控制
  • 选择要删除的带移位的区域(唯一的问题,我在标记的区域上没有视觉)
  • 一个可以工作的删除键

抱歉,我现在使用的是xterm终端(刚刚将桌面环境更改为xfce4)。

我仍然想用ctrl+shift+arrows标记一个区域来杀死它,因为我不知道如何用前/后向字移动多少个字符。在一个更美好的世界,我也希望有一个突出标记的区域.有什么想法吗?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24911898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档