为什么新写的launch文件不能用tab补全?

摘要:博客地址:https:www.cnblogs.comzylyehuo 系统环境:ros1 noetic 问题描述 launch文件不能用tab补全 全部手敲是能运行的(执行完 source .develsetup.bash) 解
博客地址:https://www.cnblogs.com/zylyehuo/ 系统环境:ros1 noetic 问题描述 launch文件不能用tab补全 全部手敲是能运行的(执行完 source ./devel/setup.bash) 解决方法 Tab 补全失败的原因通常是 ROS 的包索引缓存(rospack cache)没有更新。 在终端执行以下命令,强制刷新 ROS 的包索引 rospack profile 原因分析 Tab 补全的机制: ROS 的 Tab 补全(bash completion)并不像 roslaunch 运行命令那样直接实时去扫描所有文件夹。为了速度,它依赖一个缓存列表。 缓存滞后: 当你创建一个新的功能包(package)或者在一个包里新加了文件时,这个缓存列表并不总是立刻自动更新。虽然 source ./devel/setup.bash 告诉了系统“我的新包在哪里”,但 Tab 补全工具查的还是旧的“户口本”。 rospack profile 的作用: 这个命令相当于让 ROS 重新扫描一遍 ROS_PACKAGE_PATH 下的所有目录,并修复缓存。通常新建了包之后,最好都手动敲一下这个命令。