Question Comment envoyer le courant de ligne de code à l'entrée du terminal dans gedit 2013?


Je suis juste passé à Ubuntu. Je veux utiliser R et j'utilise gedit pour écrire un script R. Lorsque j'utilisais Mac, j'ai pu utiliser un script R ligne par ligne. Cependant, je ne sais pas comment faire cela maintenant dans gedit.

Je remarque que quelqu'un a dit qu'il était impossible de le faire Comment puis-je envoyer la ligne en cours dans gedit au terminal?, mais c'était il y a 2 ans. Et récemment, j'ai vu des gens le faire sur YouTube. http://www.youtube.com/watch?v=4jJDkcEs5yw


2
2017-08-02 14:27


origine


Je ne sais pas à propos de gedit, mais jetez un oeil à geany.org. Il prend en charge la création de commandes personnalisées ainsi que geany.org/manual/#sending-text-through-custom-commands - sagarchalise
Comment utilisiez-vous OSX pour éditer et exécuter des scripts? gedit est principalement un éditeur, ce n'est peut-être pas l'outil que vous recherchez. - SlightlyCuban
J'ai pu le faire avec R le programme. Mais maintenant, dans Ubuntu, je dois travailler avec R au sein du terminal - mynameisJEFF


Réponses:


La vidéo youtube que vous référencez semble indiquer un article de blog qui explique comment le faire. Le post n'est pas en anglais, mais il est bien écrit, vous pouvez donc en déduire les étapes à suivre. Je viens de l'essayer et cela fonctionne pour moi comme l'illustre la vidéo. Afin de ne pas simplement poster le lien, voici des instructions abrégées:

  1. installer les paquets nécessaires: apt-get install gedit-plugins xdotool
  2. Dans gedit, accédez au menu Outils-> Gérer les outils externes et créez deux nouveaux outils. J'ai appelé le mien "Envoyer la ligne à la fenêtre précédente" et "Envoyer la sélection à la fenêtre précédente". Le code pour les deux est le même, voir ci-dessous. Configurez chaque commande comme ci-dessous
    • Pour "Envoyer une ligne ..."
      • Raccourci: Alt + L
      • Sauvegarder: Rien
      • Contribution: Ligne actuelle
      • Sortie: Rien
      • Applicabilité: * Tous les documents / Toutes les langues * s
    • Pour "Envoyer une sélection ..."
      • Raccourci: Alt + B
      • Sauvegarder: Rien
      • Contribution: Sélection actuelle
      • Sortie: Rien
      • Applicabilité: Tous les documents / Toutes les langues

Le code

#!/bin/sh

read line
xdotool key alt+Tab
xdotool sleep 0.2
xdotool type "$line"
xdotool key Return
xdotool key alt+Tab

Note, l'exemple de code utilisé cat - > /tmp/runprev_meh.txt; line=$(cat /tmp/runprev_meh.txt) au lieu de read line, mais je pense que c'est plus propre et ne pose aucun problème.


2
2017-08-02 15:19



comment se fait-il que vous ayez 2 raccourcis identiques pour "envoyer la ligne en cours" et "envoyer la sélection en cours"? Mon gedit ne me permet pas de le faire. Comment puis-je avoir 2 raccourcis identiques pour 2 outils externes différents? - mynameisJEFF
Oops. Erreur de copier / coller. Ceux-ci devraient être différents. Je pense que j'utilise Alt + L et Alt + B. - Don Faulkner


Une bonne façon de faire est d'utiliser des outils externes dans gedit.

Procédez comme suit: gedit -> Modifier -> Préférences -> Plugins -> Vérifier les outils externes

Alors: gedit -> Outils -> Gérer les outils externes

Ici: Ajoutez un outil en cliquant sur le bouton '+'.

Nom: Ligne d'exécution
Touche de raccourci: Alt + L (ou ce que vous êtes à l'aise)
Enregistrer: rien
Entrée: Ligne actuelle
Sortie: affichage dans le volet inférieur

Mettez ce code dans le modifier section:

#! /usr/bin/env python
import sys
import commands

line = sys.stdin.read()
print commands.getoutput(line)

Nom: Run select
Touche de raccourci: Alt + B (ou ce que vous êtes à l'aise)
Enregistrer: rien
Entrée: Sélection actuelle
Sortie: affichage dans le volet inférieur

Mettez ce code dans le modifier section:

#! /usr/bin/env python
import sys
import commands

line = sys.stdin.read().replace("\r","")
print commands.getoutput(line)

0
2017-12-12 08:32