関数、変数にジャンプするdumb-jumpをemacsで使わないのはかなり損している関数、変数にジャンプするdumb-jumpをemacsで使わないのはかなり損している#emacs2023年4月16日dumb-jumpはプログラムの変数や関数、クラスの定義へジャンプするパッケージであり、50以上のプログラミング言語をサポートしています。dumb-jumpの利用シーンをイメージするとこのようになります。ReactもPythonもあらゆるプログラムは多くの自作モジュール、グローバル変数が至る所で使われています。コードリーディングをしていて、使われている関数の中身がどのようなものかを把握しようとするのは骨が折れます。参照先のファイルを開き、関数名で検索この手間を考えると、関数はブラックボックスでも良いかと思ってしまいます。一方で、dumb-jumpを使えば、その問題は一発で解決します。関数にカーソルを当てて、関数の定義場所へジャンプするコマンドを入力すれば、別のファイルにあろうが、同一ファイル上にあろうが、即座にジャンプできます。元いたところに戻る時も一瞬ですこれが完成済みのコードです。)定義されたものへジャンプとバックサンプルコードはこちらを利用してみましょう。add_numbers()get_integer関数は2箇所で利用されています。many...")にカーソルを合わせて、定義された場所にジャンプしてみます。dumb-jump-go)を実行します。同じファイルの近いところにジャンプしているので、ありがたみは無いのですが、dumb-jumpは別のファイルに書かれていたとしても同様にジャンプできます。dumb-jump-back)でバックできます。dumb-jumpの使い方はこれだけです。検索コマンドについてdumb-jumpのリポジトリのREADMEを読むと、関数、変数のジャンプ先を探すコマンドはlispで書かれているのではなく、linuxコマンドを利用しています。Macの場合はわざわざコマンドをインストールしなくてもgrepが入っているので、それが使われているのだと思います。公式がお薦めしているのはagとrgコマンドです。2つのコマンドはデフォルトでMacに入っているわけでは無いので、dumb-jumpの検索コマンドとして使いたい場合はインストールが必要です。READMEのここに書かれているように、最適なパフォーマンスはagかrgを使った方が良いとあります。https://github.com/jacktasia/dumb-jump/blob/542e72d3feba986a12119f6def515ef1347cb4ca/README.md#installing-ag-or-rg私は試しにrgコマンドを入れてみました。ripgrepパフォーマンスはgrepと比べて変わったのかというと、正直わかりませんが、良さそうです。ちなみに、ag、rgコマンドをインストールしても、dumb-jump側で何か設定を変更する必要はありません。自動的に最適なコマンドを参照して使うようになっているっぽいです。t)はdumb-jump-goがレガシーコマンドになるから使うなという警告を非表示にする設定です。関数にジャンプするコマンドであるdumb-jump-goはどうやら2020年くらいからレガシーになるとあるのですが、なぜか代わりに提案されているコマンドxref-find-definitionsは全く別の挙動をするので謎です。dumb-jump-goを使うのですが、使うたびにメッセージに警告が表示されるのが邪魔なので、その警告を非表示にしています。何かこの辺りのことが分かる方教えてください。まとめ短いサンプルコードだとありがたみがさほど感じられませんが、これが膨大なアプリケーションになると、途端にスーパヒーローになります。dumb-jumpがないと、もはやコーディングなど無理なのでは、と思うくらいには素晴らしいパッケージなのでぜひ利用してみてください。Ted大学でコンセンサスアルゴリズムを研究。卒業後ベンチャー企業に入社してフルスタックでWebサービスを開発。現在は大手IT企業に転職し、プログラミングを行っている。AIにプログラマーの仕事を奪って欲しいと願っている。