我正在拼命寻找在zsh shell中启用经典导航和选择的方法。 意思是,我希望能够: - 使用shift + left / right在zsh中选择char by char - 使用control + left / right在zsh中逐字移动 - 使用ctrl + shift + left / right
在zsh中逐字逐句选择我能够使用我在不同相关主题上找到的一些愚蠢的黑客和解决方案来完成我列表中的第2点,但我无法得到一个简单的解决方案来让我的第3点正常工作...... 有没有人知道如何做到这一点?我正在使用gnome-terminal,但如果需要做我想做的事情,我不介意切换到另一个,只要新的允许我使用鼠标复制/粘贴/滚动。
我希望你能解决我的问题=)
答案 0 :(得分:1)
好的,这是我目前在.zshrc中控制键绑定的原因:
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 +箭头来标记要杀死的区域,还没有能够做到这一点,因为我不知道如何通过前进移动字符数/反向词.. 在一个更美好的世界里,我还希望有一个突出显示的标记区域... =) 任何的想法?