Bonjour tout le monde !
Je viens de trouver un raccourcie clavier génial pour emacs : « C-u M-|
». Pour faire simple ça applique une commande shell sur la région et la remplace par sa sortie. Mais voilà bien qu'utilisateur régulier d'emacs, et donc habitué à me tordre les doigts, le raccourcie clavier associé est franchement lourds. Donc j'aimerai le remplacer. Vous aller me dire, rien de plus facile :
(global-set-key "\M-p" 'shell-command-on-region)
Malheureusement, pour avoir le comportement souhaité il faut que je donne un argument numérique à shell-command-on-region
et je ne sais pas comment faire.
M-| (shell-command-on-region) is like M-!, but passes the contents of the region as the standard input to the shell command, instead of no input. With a numeric argument, it deletes the old region and replaces it with the output from the shell command.
Si quelqu'un aurait une piste je le lui en saurait reconnaissant !
Merci
# J'en ai chié, mais j'ai trouvé !
Posté par Diagonale de Cantor (site web personnel) . Évalué à 4.
Après maintes réflections, voilà une solution (à mettre dans le .emacs)
Pour faire simple cette fonction permet de remplacer la région (la zone sélectionnée) par le résultat d'une commande dont l'entrée standard est la région avant remplacement, où sans région, rajoute juste le résultat de la commande là où se trouve le curseur.
[^] # Le compte est bon…
Posté par Renaud Casenave-Péré . Évalué à 2.
…Mais il y avait plus simple :
Le C-u est géré par la variable current-prefix-arg, donc il suffit que tu lui donne la valeur d'un C-u qui est 4. Il suffit d'appeler « interactivement » la fonction que tu veux pour pas avoir a gérer les arguments de la-dite fonction toi-même.
[^] # Re: Le compte est bon…
Posté par Diagonale de Cantor (site web personnel) . Évalué à 3.
Merci. C'était exactement ce que je cherchais !
[^] # Re: Le compte est bon…
Posté par Diagonale de Cantor (site web personnel) . Évalué à 2.
Pour info, la version propre finale
[^] # Re: Le compte est bon…
Posté par Renaud Casenave-Péré . Évalué à 2. Dernière modification le 02 août 2012 à 12:38.
Alors pour être tout à fait exhaustif, le test sur mark-active seul n'est pas suffisant si tu désactive le transient-mark-mode (le surlignage de la région), parce que dans ce cas, il y a de fortes chances que mark-active retourne vrai quoi qu'il arrive. Dans ce cas-là, la mark sert surtout comme genre de bookmark pour se déplacer rapidement dans le fichier.
Le test qui va bien devrait être :
Mais pour ton utilisation personnelle, (if mark-active …) est probablement suffisant.
# Une histoire de poissons qui ne s'aiment pas
Posté par kursus_hc . Évalué à -1.
J'en ai une ici…
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.