emacsからこじ開ける方法


9

RoRのコードを書いている間、私は頻繁にドロップを実行する必要があるてこセッションやデバッガを。そのbinding.pryため、実装コードに自分の行を配置して、スペックを実行します。端末でスペックを実行しても問題はありませんが、Emacs内から出力が乱雑になり、デバッガー/ pryを使用するのが非常に困難です。

元気ですか?

ここに画像の説明を入力してください

回答:


10

rspec-mode最近、この件に関するREADMEのセクションを追加しました。それは言う:

inf-rubyこれをインストールして、initファイルに追加します。

(add-hook 'after-init-hook 'inf-ruby-switch-setup)

ブレークポイントに達したら、を押してC-x C-q有効にしinf-rubyます。


1
これは機能しますが、残念ながら、などの奇妙なカラーコード文字が含ま^[[0Gれてい^[[1Aます。それらを取り除くことはできますか?
カルマゲアン2014年

エスケープコードの1つについては、下部の説明を参照してください:github.com/nonsequitur/inf-ruby#bugs。カラーコードも問題を引き起こす場合(私のシステムでは問題はありません)、Pry.config.color = falseそこで提案されている修正と同じ方法で追加します。
ドミトリー

6

pry-remoteはEmacs内でpryを実行するための最良の方法であることがわかりました。pryは専用のバッファーを取得し、どこからでもRubyプロセスに接続できるためです(非Emacs端末またはpowなど)。私はこのようなものを使用します:

(defun my-run-remote-pry (&rest args)
  (interactive)
  (let ((buffer (apply 'make-comint "pry-remote" "pry-remote" nil args)))
    (switch-to-buffer buffer)
    (setq-local comint-process-echoes t)))

(define-key ruby-mode-map (kbd "C-c r d") 'my-run-remote-pry) ; (or whatever keybinding)

次に、binding.remote_pryコードを入力します。をpry使ってC-c r d(または何でも)待機状態に接続し、を使用して(プロセスを続行して)離脱しC-c C-dます。

また~/.pryrc、でページングを無効にすることもできますcomint

Pry.config.pager = false
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.