MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

ROS用のおすすめVim設定&プラグイン

はじめに

ROS用のソフトウェアを

効率的にVimで開発する用の便利設定とツールを紹介します。


ROS開発用プラグインvim-rosのインストール

vim-rosという素晴らしい

ROS開発用のvimプラグインが公開されています。

github.com

vimを使ってROS開発する人は必ず入れた方がいいと思うほど、

素晴らしい機能が搭載されています。

ROSのwikiでもこのプラグインは紹介されています。

[IDEs - ROS Wiki](http://wiki.ros.org/IDEs "IDEs - ROS Wiki")

 

インストール方法はNeoBundleが入っていれば、

NeoBundle "taketwo/vim-ros"

をvimrcに追加して

:NeoBundleInstallすればOKです。

 

下記で、詳しい使い方の紹介をしたいと思います。

 

vimから編集しているファイルのパッケージをビルドする

indigoバージョンから、

ROSはcatkinという新しいビルドシステムになりました。

myenigma.hatenablog.com


これにより、以前のrosbuildでは可能だった、

vimから:makeコマンドで編集中のファイルのコンパイルができなくなりました。

また、catkin_makeコマンドを使うと、

すべてのパッケージをコンパイルしてしまうので、

編集中のパッケージのみをコンパイルしたい場合は面倒です。


しかし、このvim-rosをインストールすることで、

再び:makeで編集中のファイルのパッケージをコンパイルできます。

また:makeコマンドを使うのでエラーが発生した時に、

そのエラー箇所にジャンプしてくれます。


:makeが使えなくなったので,

catkinが個人的に嫌いでしたが、

このプラグインを入れるだけで好きになりました(笑)


ちなみにvimからcatkin_makeをする方法は

記事の後半を参照下さい。


C++の対応するソースコードとヘッダファイルを切り替える

vim-rosをインストールした状態で、

:Aとコマンドすると、

現在編集してるC++のコードに対応する

ソースコードorヘッダファイル を自動検索し、

対応したファイルを表示してくれます。


C++のソースコードを編集している時に、

ヘッダファイルも編集したくなった場合、

:Aコマンドを利用することで、

一瞬でヘッダファイルに移動することができます。

 

vimのディレクトリをroscdで移動する

:roscd package_name

で指定したパッケージに移動することができます。

もちろんTabでの補完も可能です。

 

rosedで指定したファイルを開く

:rosed package_name hoge.cpp

とすることで、

パッケージ名を指定してその中のファイルも簡単に開くことができます。

Tabでの補完も可能ですし、

任意のファイル(cppなどだけでなく、yamlやlaunchファイルも)

開くことができるので非常に便利です。

 

vim上でROSのtopicのリストを表示する。

vimでROSのソフトを書いていると、

今流れているトピックの名前を確認したくなります。


これまでは、毎回、別のターミナルを立ち上げて、

rostopic listして、その結果をコピペしていましたが、

いちいちマウスを触るのが面倒でした。


なのでvim上でトピック名を確認する

vimスクリプトを作成しました。


上記のgithubの設定ファイルを利用している場合、

vim上で、

:RosTopicList

とコマンドを入力すると、

vimの画面を分割して、

rostopic listの結果が表示されます。


あとは、その値をコピペするなり、

補完で入力するなりすればOKです。


この機能を実現するvim scriptは下記のファイルです。

(この機能をros.vimにプルリしたいな。)

ROSのメッセージの構成を確認

トピック名と同様に、プログラムを書いている時に、

トピックのメッセージの構成が知りたくなる時があります。


これまでは別のターミナルでrosmsg show 確認していたのですが、

これをvim上で確認できるようなscriptも作りました。


下記のvimscriptをvimrcでsorceすれば、

RosmsgShow hogehoge

(etc. RosmsgShow nav_msgs/Odometry)

で目的のメッセージの構成を確認することができます。

myvim/.vim/script/RosmsgShow.vim at master AtsushiSakai/myvim

vimの中からcatkin_makeするスクリプト

catkinを使っているとワークスペースの直下で

catkin_makeしないといけないで面倒ですが、

このvimスクリプトを読み込んで、

:RosCatkinMake

とすると、どのディレクトリにいてもcatkin_makeできるようになります。

myvim/RosCatkinMake.vim at master · AtsushiSakai/myvim

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com