几天来,我一直在寻找解决此OhMyZSH!
问题的方法,但找不到解决方案。诚然,我不明白zle
真正的工作原理,对于bindkey
. 终端仿真器发送“控制序列”的方式以及“终端类型”的含义(xterm
、 vsxterm-256-color
等)也是如此。与“应用程序模式”相同
设置
我有 2 台机器安装了最新版本的 OhMyZSH,提交c3b072
:
- 机器 A:SLES 11 SP4,正在运行
zsh 4.3.6 (x86_64-suse-linux-gnu)
- 机器 B:Ubuntu 16.04,正在运行
zsh 5.1.1 (x86_64-ubuntu-linux-gnu)
我使用在 Windows 上运行的 Putty 连接到任何一台机器,终端类型xterm
为 UTF-8 翻译模式。
我的zshrc
文件几乎是香草OhMyZSH
模板,我刚刚将提示更改为dieter
机器 A 上的提示,以及机器 B 上的powerlevel-9k
[ https://github.com/bhilburn/powerlevel9k] 。
我在机器 A 上观察到的(又名“坏”机器)
当我编辑命令行时,光标键Left和Right光标键移动一个完整的单词(而不是 1 个单个字符)。
Home和End键,将光标移动到行的开头和结尾,正如预期的那样。
此描述的行为适用于emacs
模式 ( bindkey -e
)。
当我进入vim
模式 ( bindkey -v
) 时,LeftandRight箭头移动 1 个字符,但HomeandEnd键不会将光标移动到行首和行尾。相反,它们会切换光标下字符的大小写。
我在机器 B 上观察到的(又名“好”机器)
Left和Right键将光标移动一个字符。Home 和 end 键将光标分别移动到行首和行尾。Ctrl+A和Ctrl+E组合将我的光标分别带到开头和结尾。
这是我希望所有 shell 的行为。
到目前为止我发现了什么
我认为这是一个bindkey
问题。但我对此几乎一无所知,而且我很难找到关于这个zsh
内置的任何文档。
zsh -v
尽管文件相似,但在登录时在两台机器上运行会产生非常不同的结果.zshrc
。
有人可以向我解释是什么导致这 2 台机器的行为如此不同,以及如何更改我的配置以恢复一致性,并且我所有的 shell 的行为都像机器 B 上的一样(又名“好”的那个)?
如果您需要更多我不知道需要的信息,我相信您会告诉我。
非常感谢