【转】从bash转向zsh的坑

坑1: 上下方向键,Home和End键可能不生效

经测试tmux和gnome-terminal测试zsh没有这些问题,多发于使用xshell,putty连接ssh时会出现。
首先在zsh下面Home等效快捷键是ctrl+a,End的等效快捷键是ctrl+e。
当然也可以通过修配置文件解决。在 ~/.zshrc 添加以下行:
bindkey "\e[1~" beginning-of-line  # Home键
bindkey "\e[4~" end-of-line  # End键
bindkey "^[[A" forward-word  # 方向上键
bindkey "^[[B" backward-word  # 方向下键

最坑最坑的并不是这个,而且以上配置文件并不适用于所有情况。如果你把以上配置添加到配置文件中并source后仍然不生效,此时你需要神奇的cat命令。单纯执行cat命令,并分别按Home后会输出等效的键码,复制并替换上面的bindkey命令即可,其他原理一样的。

坑2:tmux与zsh配合使用时需要注意修改tmux的默认shell

准确说这个不算坑,只是注意点。我上面使用chsh修改用户默认shell之后再进入tmux时居然还是bash,所以此时需要在tmux的配置文件里面额外添加一句 set -g default-shell /bin/zsh ,或者使用 set -g default-shell $SHELL 用以自适应用户修改的shell类型。退出所有tmux并重启tmux生效。
关于tmux参考: https://www.jianshu.com/p/42bf70c64952

坑3:~/.bashrc文件不会自动执行

这个就更坑了,我之前把当连接ssh时自动开启tmux的命令写在了 ~/.bashrc 文件中,但是当我把默认shell修改为zsh后我发现连接ssh后并没有自动进入tmux界面。所以很有可能实用zsh进入后之前手动设置的环境变量全都不见了,转而代替的文件列表如下:
/etc/profile  --> /etc/zsh/zshenv
~/.profile    -->  ~/.zprofile 
~/.bashrc   -->  ~/.zshrc
bash和zsh的环境变量加载顺序参加文章: https://medium.com/@rajsek/zsh-bash-startup-files-loading-order-bashrc-zshrc-etc-e30045652f2e
一句总结:zsh环境变量加载顺序是: zshenv, zprofile, zshrc, zlogin

作者:cracker_zhou
链接:https://www.jianshu.com/p/4a8f04155e90
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2020-12-16 21:19  箐茗  阅读(639)  评论(0编辑  收藏  举报