Help us understand the problem. What is going on with this article?

Clang-rename Emacs Integration を使ってみた

More than 1 year has passed since last update.

Clang-rename とは

https://clang.llvm.org/extra/clang-rename.html
Clang の extra-tools の一つで、変数やクラスなどの名前を変更してくれるツール。Visual Studio の Ctrl-R Ctrl-R と同じもの。

自分が試したのは Ubuntu 16.04 でバージョンは以下の通り。少し前にリポジトリからチェックアウトしてビルドしたもの。

$ clang --version
clang version 5.0.0 (trunk 292891)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/user/.local/bin
$ clang-rename --version
LLVM (http://llvm.org/):
  LLVM version 5.0.0svn
  Optimized build.
  Default target: x86_64-unknown-linux-gnu
  Host CPU: haswell

意識してインストールした覚えのない /usr/bin/clang-rename-3.8 というバイナリもあったが、apt-get で clang を入れると一緒に入るのかな?こっちは触っておらず、未確認。

Clang-rename の emacs 拡張

https://reviews.llvm.org/diffusion/L/browse/clang-tools-extra/trunk/clang-rename/tool/clang-rename.el
Emacs 拡張も用意されているので使ってみた。Vim のもある。

そのままでは C++03 でコンパイルされるので以下のように修正した。EmacsLisp は全く書けないが、call-process というそれらしき関数に引数を増やしただけ。

$ diff clang-rename.el my-clang-rename.el
47a48
>                       "-extra-arg=-std=c++1y"

後は ~/.emacs.d/ にロードする設定を加えるだけで動くようになった。

使い心地

公式は不具合が出る可能性が高いと言っているが、競技プログラミングで C++ の単ファイルを編集する分にはまともに動いた。
コンパイルが通るコードじゃないと使えないのが少し不便だけど、概ねとても便利なのでこのまま使いたい思う。
今後の発展に期待ですね〜

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away