Ich habe [100 Narray-Übungen] geschrieben (https://github.com/ruby-numo/narray/wiki/100-narray-exercises), eine Ruby-Version von 100 Numpy-Übungen in Markdown, aber ich habe sie darin geschrieben. Sie müssen einen Code kopieren und einfügen. Es war ziemlich ärgerlich, diese Ausführung zum Kopieren und Einfügen zu wiederholen, daher habe ich untersucht, wie es möglich ist, den Auswahlbereich der von Emacs geöffneten Datei mit einem einzigen M-x-Befehl auszuführen.
CentOS Linux release 7.2.1511 (Core)
GNU Emacs 24.3.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.8.8)
Der Zweck besteht darin, den Codeteil in diesem Markdown auszuwählen und auszuführen.
## Sample MD
Python:
```python
import numpy as np
Z = np.arange(10)
print(Z)
```
Ruby:
```ruby
require "numo/narray"
z = Numo::DFloat.new(10).seq
```
Es gibt zwei Möglichkeiten, Python im Emacs-Puffer auszuführen: python.el und python-mode.el.
Es ist standardmäßig in Emacs enthalten, daher ist keine Installation erforderlich.
(require 'python)
Diese Einstellung ist nicht erforderlich, da sie beim Öffnen von .py automatisch geladen wird. Sie ist jedoch erforderlich, da sie beim Ausführen eines Markdown-Codeteils nicht geladen wird.
Öffnen Sie die Markdown-Datei in Emacs, wählen Sie den Python-Code aus und führen Sie den folgenden Befehl aus.
M-x python-shell-send-region
Dann wird Python im interaktiven Modus gestartet und das Ausführungsergebnis wird im Puffer * Python [Dateiname] *
aufgezeichnet, es wird jedoch nicht im Vordergrund angezeigt, sodass Sie zwischen Puffer wechseln müssen.
(2) python-mode.el
Dies unterstützt auch IPython.
Rufen Sie die Quelle von der Website python-mode.el ab und installieren Sie sie.
(require 'python-mode)
Dies ist auch erforderlich, wenn Markdown-Codefragmente ausgeführt werden.
M-x py-execute-region
Python im interaktiven Modus wird gestartet und ein Puffer namens "* Python *" wird auf dem geteilten Bildschirm angezeigt und das Ausführungsergebnis wird angezeigt.
Wenn Sie es an IPython anstatt an Python im interaktiven Modus übergeben möchten, verwenden Sie den folgenden Befehl.
M-x py-execute-region-ipython
Inf-ruby.el (minderwertiger Ruby-Modus) wird verwendet, um Ruby im Emacs-Puffer auszuführen, es gibt jedoch auch zwei Typen.
Was ist im Ruby-Quellcode enthalten? Das Update wurde für eine lange Zeit gestoppt.
Platzieren Sie misc / inf-ruby.el im Ruby-Quellbaum in einem geeigneten Pfad.
(autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process")
(require 'inf-ruby)
M-x run-ruby
M-x ruby-send-region
Entwickelt unter https://github.com/nonsequitur/inf-ruby. Dies wurde gegenüber der obigen Ruby-Anhangsversion geändert und unterstützt auch Pry. Die Version, die ich ausprobiert habe, war 2.4.0.
Holen Sie sich inf-ruby.el von der obigen URL. Wenn Sie irb verwenden, werden viele nutzlose Eingabeaufforderungen so angezeigt, wie sie sind, und es ist schwer zu erkennen. Ändern Sie sie daher, indem Sie der Option --inf-ruby-mode hinzufügen und sie dann in einen geeigneten Pfad einfügen.
diff --git a/inf-ruby.el b/inf-ruby.el
index deb5769..39f586d 100755
--- a/inf-ruby.el
+++ b/inf-ruby.el
@@ -83,7 +83,7 @@ Also see the description of `ielm-prompt-read-only'."
:group 'inf-ruby)
(defcustom inf-ruby-implementations
- '(("ruby" . "irb --prompt default --noreadline -r irb/completion")
+ '(("ruby" . "irb --prompt default --inf-ruby-mode -r irb/completion")
("jruby" . "jruby -S irb --prompt default --noreadline -r irb/completion")
("rubinius" . "rbx -r irb/completion")
("yarv" . "irb1.9 -r irb/completion")
(autoload 'inf-ruby "inf-ruby" "Run an inferior Ruby process" t)
M-x inf-ruby
M-x ruby-send-region
Wenn Sie Pry anstelle von irb verwenden möchten, fügen Sie die folgende Zeile zu ~ / .emacs.el hinzu.
(setq inf-ruby-default-implementation "pry")
Referenz: http://d.hatena.ne.jp/rubikitch/20140627/pry
Recommended Posts