zsh终端bug
bash环境下的Programmable Completion功能在zsh终端不适用,尝试添加zsh的自动补全,使用Ipcr-0.2.zsh
ipcr安装
ipcr可以在终端中实现快速的补全提示,如下图官网demo所示:
安装命令如下
wget http://mimosa-pudica.net/src/incr-0.2.zsh
mkdir ~/.oh-my-zsh/plugins/incr
mv incr-0.2.zsh ~/.oh-my-zsh/plugins/incr
echo 'source ~/.oh-my-zsh/plugins/incr/incr*.zsh' >> ~/.zshrc
source ~/.zshrc
zsh-autosuggestions、zsh-syntax-highlighting安装
安装autosuggestions:git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
安装highlighting:``````
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
打开zsh的配置:vim ~/.zshrc
找到以下行,添加plugins配置
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
)
刷新配置source ~/.zshrc
添加ros2的自动补全
打开sudo vim /opt/ros/humble/setup.zsh
末尾添加自动补全指令
方案一:(笔者方案)
complete -o nospace -o default -F _python_argcomplete “ros2”
方案二:(可能需安装其他配置,笔者未生效)
argcomplete for ros2 & colcon
eval “ ( r e g i s t e r − p y t h o n − a r g c o m p l e t e 3 r o s 2 ) " e v a l " (register-python-argcomplete3 ros2)" eval " (register−python−argcomplete3ros2)"eval"(register-python-argcomplete3 colcon)”
重要
记得要更新你的source ~/.zshrc
新的bug
自建包在source install/setup.zsh
之后,zsh的自动补全会丢掉,修改~/.zshrc
文件无用.
临时解决方案:
在source install/setup.zsh
之后,使用source /opt/ros/humble/setup.zsh
临时添加自动补全功能.
暂时没找到较好的解决方案.
参考资料
https://zhuanlan.zhihu.com/p/62501175
https://www.cnblogs.com/USTHzhanglu/p/16544776.html
https://github.com/ros2/ros2cli/issues/534