Shell Zsh移位+;控制+;箭
我正在拼命寻找一种在zsh shell中实现经典导航和选择的方法。。 意思是,我希望能够: -使用shift+left/right在zsh中逐个选择字符 -使用control+左/右在zsh中逐字移动 -使用ctrl+shift+left/right在zsh中逐字选择 我已经能够,使用我在不同相关主题上找到的一些愚蠢的黑客和解决方案,完成我列表中的前两点,但我无法找到一个简单的解决方案来让我的第三点正常工作。。。 有人知道怎么做吗?我正在使用gnome终端,但如果需要做我想做的事情,我不介意切换到其他终端,只要新的终端允许我使用鼠标复制/粘贴/滚动Shell Zsh移位+;控制+;箭,shell,zsh,archlinux,Shell,Zsh,Archlinux,我正在拼命寻找一种在zsh shell中实现经典导航和选择的方法。。 意思是,我希望能够: -使用shift+left/right在zsh中逐个选择字符 -使用control+左/右在zsh中逐字移动 -使用ctrl+shift+left/right在zsh中逐字选择 我已经能够,使用我在不同相关主题上找到的一些愚蠢的黑客和解决方案,完成我列表中的前两点,但我无法找到一个简单的解决方案来让我的第三点正常工作。。。 有人知道怎么做吗?我正在使用gnome终端,但如果需要做我想做的事情,我不介意切换
我希望您能解决我的问题=)好的,这就是我目前在.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
有了这个,我可以:
- 使用控件逐字移动
- 用shift键选择要删除的区域(唯一的问题是,我看不到标记的区域)
- 一个有效的删除键
有什么想法吗 你能分享一下你已经拥有的吗?在第三种情况下,究竟什么不起作用?此外,您是否希望模拟鼠标选择(这将是终端的一项功能)或为zsh区域创建更方便的绑定(
set mark command
)?