目次
はじめに
ROS用のソフトウェアを
効率的にVimで開発する用の便利設定とツールを紹介します。
ROS開発用プラグインvim-rosのインストール
vim-rosという素晴らしい
ROS開発用のvimプラグインが公開されています。
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という新しいビルドシステムになりました。
これにより、以前の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できるようになります。