しばらく苦労した後、VimでRubyデバッガーを作成するというアイデアが生まれました。 彼はコードrails.vim、NERDTree.vimを開き、VimScriptを学び始めました。 レッスンをしてくれたtpopeとMarty Grenfellに感謝します(おそらく彼らは決してそれを読んだり、学ぶことはないでしょう)。 プラグインはgithubで見ることができます。
プラグインでできること
1. ruby-debug-ide gemを使用して、Rubyスクリプトをデバッグします。
2.ブレークポイントの設定/削除、変数の監視、コードの移動。
3.コマンドを手動で入力します。 例:RdbCommand p Post.allは、Postモデルのすべてのエントリを表示します。
必要なもの
正しく動作するために、プラグインには以下が必要です。
- Vimバージョン> = 7.0、 +記号と+ clientserverオプションを使用してコンパイル。 これは次の方法で確認できます。
:echo has("signs") && has("clientserver") && v:version >= 700
結果は= 1でなければなりません - インストールされたgem ruby-debug-ide
- Linuxを使用している場合は、 lsofをインストールする必要があります
設置
- リポジトリのクローンを作成します。
git clone git://github.com/astashov/vim-ruby-debugger.git
- 結果から、必要なのはvimフォルダーのみで、残りは開発専用です。 vimの内容を〜/ .vim /(またはWindowsの場合はvimfiles)にコピーします。
その結果、3つのファイルを取得する必要があります。
- plugin / ruby_debugger.vim-プラグイン自体
- doc / ruby_debugger-ドキュメント
- bin / ruby_debugger.rbは、Vimとruby-debug-ide gemの間の中間Rubyスクリプトです。 それらの間のすべてのコミュニケーションは彼を通して行われます。
- 次に、Vimを実行して実行します
:helptags ~/.vim/doc
プラグインのドキュメントをインストールします。 コマンドで読むことができます
:help ruby-debugger
使用する
- Vimを起動します。 gvimを使用する場合、Vimサーバーが自動的に起動します。vimの場合、servernameオプションを使用して起動する必要があります:vim --servername VIM
- たとえば、ある鉄道プロジェクトに行きます。
- デバッガーコマンドでサーバーを起動します
:Rdebugger
(デフォルトでは、スクリプト/サーバーwebrickを実行します。別のスクリプトをデバッグする必要がある場合は、次を実行できます。
:Rdebugger foo.rb
- ブレークポイントをどこかに設定します(デフォルトでは<Leader> bコマンドで、ほとんどの場合は\ bです)。
- ブラウザのブレークポイントでページを開きます。 Vimは、ブレークポイントがトリガーされた行に自動的にジャンプします。
- 次に、変数を見て、一般的にコードを見て回ります-楽しんでください! :)
チーム
デフォルトでは(もちろん、.vimrcでそれらをオーバーライドできます)、次の略語が適用されます。
- <Leader> b-ブレークポイントを設定します
- <リーダー> v-変数を使用してウィンドウを開閉します。 変数は、通常モードで「o」コマンドを使用するか、左ダブルクリックすることで開く/閉じることができます。
- <Leader> m-ブレークポイントでウィンドウを開閉します。 通常モードで選択したブレークポイントコマンド「o」にジャンプするか、ダブルクリックすると、通常モードでコマンド「d」を使用してブレークポイントを削除できます。
- <リーダー> n-ステップオーバー
- <リーダー> s-入力(ステップイン)
- <リーダー> c-続行(継続)
それらをオーバーライドする方法については、 ruby-debugger-detailsを参照してください。
バグに遭遇した場合、または新しいクールな機能を思いついた場合
その後、Githubの問題のレポートに大いに感謝します。 anton / sbk / astashov.netに書き込むこともできますが、Issuesのレポートの方が優れています。 :)プラグインはほとんどすべてのアクションを〜/ .vim / tmp / ruby_debugger_logファイルに記録するため、このファイルの内容をバグに添付することをお勧めします。
LinuxとWindowsでパフォーマンスをテストしました。 Linuxでは、プラグインはより良く機能します。Windowsでは、バックグラウンドでプロセスを開始する方法がまだわかりません。そのため、サーバーと中間のrubyスクリプトでウィンドウがちらつきます。 持っていないので、MacOでチェックしませんでした。
そして最後に、プラグインのスクリーンショット: