解决ROS2在zsh终端中的自动补全问题

本文讲述了在bash环境下,如何在zsh终端中安装并配置ipcr实现快速补全,以及后续遇到的bug,包括zsh-autosuggestions和zsh-syntax-highlighting的安装,以及针对ros2的自动补全解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zsh终端bug

bash环境下的Programmable Completion功能在zsh终端不适用,尝试添加zsh的自动补全,使用Ipcr-0.2.zsh

ipcr安装

ipcr可以在终端中实现快速的补全提示,如下图官网demo所示:
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 " (registerpythonargcomplete3ros2)"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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值