Ruby, exécution de fragments de code Python de la sélection dans Emacs

J'ai écrit 100 exercices narray qui est une version Ruby de 100 exercices numpy dans Markdown, mais je l'ai écrit dedans. Vous devrez copier et coller un morceau de code. C'était assez ennuyeux de répéter cette exécution de copier-coller, alors j'ai cherché comment rendre possible l'exécution de la plage de sélection du fichier ouvert par Emacs avec une seule commande M-x.

environnement

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

Exemple de démarque

Le but est de sélectionner et d'exécuter la partie de code dans ce Markdown.

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

Exécuter un morceau de code Python

Il existe deux façons d'exécuter Python dans le tampon Emacs: python.el et python-mode.el.

(1) python.el fourni avec Emacs

Il est inclus dans Emacs en standard, donc aucune installation n'est requise.

Paramètres ~ / .emacs.el

(require 'python)

Ce paramètre est inutile car il sera chargé automatiquement lorsque vous ouvrez .py, mais il est nécessaire car il ne sera pas chargé lorsque vous exécuterez un morceau de code de Markdown.

Exécuter la sélection

Ouvrez le fichier Markdown dans Emacs, sélectionnez le code Python et exécutez la commande suivante.

M-x python-shell-send-region

Ensuite, python en mode interactif démarre et le résultat de l'exécution est enregistré dans le tampon * Python [nom de fichier] *, mais il n'apparaît pas au premier plan, vous devez donc basculer vers le tampon.

(2) python-mode.el

Cela prend également en charge IPython.

Installation

Récupérez la source sur le site python-mode.el et installez-la.

Paramètres ~ / .emacs.el

(require 'python-mode)

Ceci est également nécessaire lors de l'exécution d'extraits de code Markdown.

Exécuter la sélection

M-x py-execute-region

Résultat d'exécution

Le mode interactif python démarre, et un tampon appelé `` * Python * '' apparaît sur l'écran partagé et le résultat de l'exécution est affiché.

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

Pour IPython

Si vous souhaitez le transmettre à IPython au lieu du mode interactif python, utilisez la commande suivante.

M-x py-execute-region-ipython

Exécuter des extraits de code Ruby

Inf-ruby.el (Inferior Ruby Mode) est utilisé pour exécuter Ruby dans le tampon Emacs, mais il existe également deux types.

(1) inf-ruby.el attaché à Ruby

Ce qui est inclus dans le code source de Ruby. La mise à jour est arrêtée depuis longtemps.

Installation

Placez misc / inf-ruby.el dans l'arborescence des sources Ruby dans un chemin approprié.

Paramètres ~ / .emacs.el

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

début du processus irb

M-x run-ruby

Exécuter la sélection

M-x ruby-send-region

(2) Version dérivée de inf-ruby.el

Développé sur https://github.com/nonsequitur/inf-ruby. Cela a été modifié à partir de la version de pièce jointe Ruby ci-dessus et prend également en charge Pry. La version que j'ai essayée était la 2.4.0.

Installation

Obtenez inf-ruby.el à partir de l'URL ci-dessus. Lorsque vous utilisez irb, de nombreuses invites inutiles sont affichées telles quelles et il est difficile de les voir, alors modifiez-les en ajoutant --inf-ruby-mode à l'option, puis placez-les dans un chemin approprié.

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

Paramètres ~ / .emacs.el

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

début du processus irb

M-x inf-ruby

Exécuter la sélection

M-x ruby-send-region

Résultat d'exécution

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

Pour Pry

Si vous souhaitez utiliser Pry au lieu d'irb, ajoutez la ligne suivante à ~ / .emacs.el.

(setq inf-ruby-default-implementation "pry")

référence: http://d.hatena.ne.jp/rubikitch/20140627/pry

Recommended Posts

Ruby, exécution de fragments de code Python de la sélection dans Emacs
Une collection de code souvent utilisée dans Python personnel
Différence entre Ruby et Python en termes de variables
Liste du code Python utilisé dans l'analyse de Big Data
Reproduire l'exemple d'exécution du chapitre 4 de Hajipata en Python
Reproduire l'exemple d'exécution du chapitre 5 de Hajipata en Python
Jugement d'équivalence d'objet en Python
2.x, 3.x code de caractères des séries python
Générer du code QR en Python
Exécution de commandes externes en Python
Implémentation du tri rapide en Python
Code de caractère appris en Python
Mesurons le résultat de l'exécution du programme avec C ++, Java, Python.
Comparaison du code de moyenne mobile exponentielle (EMA) écrit en Python
Décrypter une ligne de code en Python lambda, carte, liste
Implémentation de l'algorithme «Algorithm Picture Book» en Python3 (tri sélectif)
Vérifiez toujours PEP8 lors de l'édition du code source Python dans Emacs
Manipulation des pixels d'image en Python
Sélection en plusieurs étapes (Go / C # / Ruby / Python)
[Python] Générer un code QR en mémoire
Formater automatiquement le code Python avec Vim
Diviser timedelta dans la série Python 2.7
Échappement automatique des paramètres MySQL en python
Mesurer le temps d'exécution de la fonction en Python
Implémentation du jeu de vie en Python
Affichage de la forme d'onde audio en Python
J'ai écrit le code pour écrire le code Brainf * ck en python
Ecrire le code de test du sélénium en python
Exécuter le module Python unittest dans vs2017
La loi des nombres en python
Implémentation du tri original en Python
Brouillage réversible d'entiers en Python
Tests de code dans le temps en Python
Python> importer ceci> Afficher l'oeuf de Pâques> Essayé dans un environnement d'exécution de code en ligne
Ce que les utilisateurs d'Emacs doivent savoir lors de l'écriture de code Python dans Sublime Text
Lecture de code de faker, une bibliothèque qui génère des données de test en Python
Lecture de code de Safe, une bibliothèque pour examiner la force des mots de passe en Python
Installation du code Visual Studio et installation de python
Conversion de la chaîne <-> date (date, datetime) en Python
Code de vérification de la série Fourier écrit en Python
Vérifiez le comportement du destroyer en Python
Différences entre Ruby et Python dans la portée
Pratique d'utilisation de ceci en Python (mauvais)
Théorie générale de la relativité en Python: Introduction
Exécution de l'étape de débogage en Python (Bottle, Intellij)
Afficher une liste d'alphabets en Python 3
Comparaison des modules de conversion japonais en Python3
Grande différence dans les performances de ruby, python, httpd
Résumé de diverses instructions for en Python
[Python3] Réécrire l'objet code de la fonction
Générer automatiquement un commentaire de chaîne de document Python avec Emacs
Référence du fichier INI en Python ou Ruby
Le résultat de l'installation de python sur Anaconda
Modèles Gang of Four (GoF) en Python
Principes de base pour exécuter NoxPlayer en Python
Remplacement en bloc des chaînes dans les tableaux Python
Projet Euler # 16 "Somme des pouvoirs" en Python
Traffic Safety-kun: Reconnaissance des panneaux de signalisation en Python
Résumé des méthodes intégrées, etc. de la liste Python
Utilisation d'opérateurs non logiques de ou en python
À la recherche du FizzBuzz le plus rapide en Python