colconで補完を出す
colcon build
するときとかにcolcon
と打ってからTABキーで補完をだそうとしてうまくいかない経験はありませんか?
colconで補完が出ない!
colcon
と打ってからTABキーを押すと以下のようにディレクトリが表示されます.
今欲しい補完はそれじゃない...
$ colcon <TAB> build/ install/ log/ src/
colcon b
くらいまで打って補完を出すとcolcon build/
になってしまい,エラーを吐かれます.
colcon build/ usage: colcon [-h] [--log-base LOG_BASE] [--log-level LOG_LEVEL] {build,extension-points,extensions,graph,info,list,metadata,test,test-result,version-check} ... colcon: error: argument verb_name: invalid choice: 'build/' (choose from 'build', 'extension-points', 'extensions', 'graph', 'info', 'list', 'metadata', 'test', 'test-result', 'version-check')
catkin
ならちゃんと補完出てたのに!!
補完を出す
colconの補完はpython3-colcon-argcomplete
というパッケージで提供されています.
ROS2のインストール時に一緒に入ってくるはずなので追加でインストールする必要はありません.
ただ,補完を有効にするためにスクリプトを読み込む必要があります.
スクリプトは/usr/share/colcon_argcomplete/hook/
というディレクトリにあり,colcon-argcomplete.bash
を読み込めばOKです.*1
$ colcon <TAB> build extension-points extensions graph info list --log-base --log-level metadata test test-result version-check
しっかり出ましたね.
よく使う人は.bashrc
に
source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash
と書いておくと良いでしょう