Ruby, Python-Codefragment Ausführung der Auswahl in Emacs

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.

Umgebung

CentOS Linux release 7.2.1511 (Core)
GNU Emacs 24.3.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.8.8)

Beispiel-Markdown

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
```

Ausführen eines Python-Codes

Es gibt zwei Möglichkeiten, Python im Emacs-Puffer auszuführen: python.el und python-mode.el.

(1) python.el, das mit Emacs geliefert wird

Es ist standardmäßig in Emacs enthalten, daher ist keine Installation erforderlich.

~ / .emacs.el Einstellungen

(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.

Auswahl ausführen

Ö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.

Installation

Rufen Sie die Quelle von der Website python-mode.el ab und installieren Sie sie.

~ / .emacs.el Einstellungen

(require 'python-mode)

Dies ist auch erforderlich, wenn Markdown-Codefragmente ausgeführt werden.

Auswahl ausführen

M-x py-execute-region

Ausführungsergebnis

Python im interaktiven Modus wird gestartet und ein Puffer namens "* Python *" wird auf dem geteilten Bildschirm angezeigt und das Ausführungsergebnis wird angezeigt.

2016-07-31 14-51-20.png

Für IPython

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

Ausführen von Ruby-Codefragmenten

Inf-ruby.el (minderwertiger Ruby-Modus) wird verwendet, um Ruby im Emacs-Puffer auszuführen, es gibt jedoch auch zwei Typen.

(1) inf-ruby.el an Ruby angehängt

Was ist im Ruby-Quellcode enthalten? Das Update wurde für eine lange Zeit gestoppt.

Installation

Platzieren Sie misc / inf-ruby.el im Ruby-Quellbaum in einem geeigneten Pfad.

~ / .emacs.el Einstellungen

(autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process")
(require 'inf-ruby)

irb prozess starten

M-x run-ruby

Auswahl ausführen

M-x ruby-send-region

(2) Abgeleitete Version von inf-ruby.el

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.

Installation

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")

~ / .emacs.el Einstellungen

(autoload 'inf-ruby "inf-ruby" "Run an inferior Ruby process" t)

irb prozess starten

M-x inf-ruby

Auswahl ausführen

M-x ruby-send-region

Ausführungsergebnis

2016-07-31 14-52-43.png

Für Pry

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

Ruby, Python-Codefragment Ausführung der Auswahl in Emacs
Eine Code-Sammlung, die häufig in persönlichem Python verwendet wird
Unterschied zwischen Ruby und Python in Bezug auf Variablen
Liste des Python-Codes, der bei der Big-Data-Analyse verwendet wird
Reproduzieren Sie das Ausführungsbeispiel von Kapitel 4 von Hajipata in Python
Reproduzieren Sie das Ausführungsbeispiel von Kapitel 5 von Hajipata in Python
Objektäquivalenzbeurteilung in Python
2.x, 3.x Serienzeichencode von Python
Generieren Sie QR-Code in Python
Externe Befehlsausführung in Python
Implementierung der schnellen Sortierung in Python
In Python gelernter Zeichencode
Lassen Sie uns das Ausführungsergebnis des Programms mit C ++, Java, Python messen.
Vergleich des in Python geschriebenen EMA-Codes (Exponential Moving Average)
Entschlüsseln Sie eine Codezeile in Python Lambda, Karte, Liste
Implementierte den Algorithmus von "Algorithm Picture Book" in Python3 (Selective Sort)
Überprüfen Sie immer PEP8, während Sie den Python-Quellcode in Emacs bearbeiten
Bildpixel-Manipulation in Python
Mehrstufige Auswahl (Go / C # / Ruby / Python)
[Python] Generiert QR-Code im Speicher
Formatieren Sie Python-Code automatisch mit Vim
Zeitdelta in Python 2.7-Serie teilen
MySQL-automatische Escape-Funktion von Parametern in Python
Messen Sie die Ausführungszeit von Funktionen in Python
Implementierung eines Lebensspiels in Python
Audio-Wellenform-Anzeige in Python
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
Schreiben Sie Selentestcode in Python
Führen Sie das Python-Unittest-Modul in vs2017 aus
Das Gesetz der Zahlen in Python
Implementierung der ursprünglichen Sortierung in Python
Reversibles Verwürfeln von Ganzzahlen in Python
Code-Tests rund um die Uhr in Python
Python> importiere dies> Osterei anzeigen> Versucht in einer Online-Code-Ausführungsumgebung
Was Emacs-Benutzer wissen sollten, wenn sie Python-Code in Sublime Text schreiben
Code lesen von faker, einer Bibliothek, die Testdaten in Python generiert
Codelesen von Safe, einer Bibliothek zur Überprüfung der Kennwortstärke in Python
Installation von Visual Studio Code und Installation von Python
Konvertierung der Zeichenfolge <-> Datum (Datum, Datum / Uhrzeit) in Python
In Python geschriebener Fourier-Serien-Verifizierungscode
Überprüfen Sie das Verhalten des Zerstörers in Python
Unterschiede zwischen Ruby und Python im Umfang
Übung, dies in Python zu verwenden (schlecht)
Allgemeine Relativitätstheorie in Python: Einführung
Debug-Schrittausführung in Python (Bottle, Intellij)
Zeigen Sie eine Liste der Alphabete in Python 3 an
Vergleich japanischer Konvertierungsmodule in Python3
Großer Unterschied in der Leistung von Ruby, Python und httpd
Zusammenfassung verschiedener for-Anweisungen in Python
[Python3] Schreiben Sie das Codeobjekt der Funktion neu
Python Docstring-Kommentar automatisch mit Emacs generieren
Referenz der INI-Datei in Python oder Ruby
Das Ergebnis der Installation von Python auf Anaconda
Gang of Four (GoF) -Muster in Python
Grundlagen zum Ausführen von NoxPlayer in Python
Massenersatz von Zeichenfolgen in Python-Arrays
Projekt Euler # 16 "Summe der Kräfte" in Python
Traffic Safety-Kun: Erkennung von Verkehrszeichen in Python
Zusammenfassung der integrierten Methoden usw. der Python-Liste
Nicht logische Operatorverwendung von oder in Python
Auf der Suche nach dem schnellsten FizzBuzz in Python