Insérez la sortie de la commande shell dans emacs tampon
Je veux définir un raccourci clavier pour insérer la date dans la mémoire tampon. J'ai écrit la suite de lisp dans mon .emacs
fichier. À l'aide de date
comme un exemple:
;;put the date
(global-set-key
(kbd "C-c C-d")
(shell-command "date" (current-buffer))
)
La clé de liaison des œuvres d'accord lorsque je utiliser d'autres commandes comme 'next-line
, mais shell-command
va le mettre dans la *scratch*
mémoire tampon lorsque le .emacs est lu et laisse au qui.
Peut-être que j'ai besoin d'utiliser shell-command-on-region
.
- Le
(current-buffer)
obtient évaluées lors de votre.emacs
s'exécute. Vous souhaitez utiliser(shell-command "date" t)
de l'avoir insérer dans la mémoire tampon qui est en cours lorsque vous appelez la commande, ou de l'encapsuler dans undefun
, afin qu'il soit évalué lors de l'exécution de la fonction.
Vous devez vous connecter pour publier un commentaire.
Pour le cas général de l'insertion d'une sortie d'une commande shell pour le tampon courant, vous pouvez utiliser le clavier intégrés accords:
qui exécute la même
shell-command
fonction, et insère également la sortie de retour au point dans le tampon courant.La totalité de la clé-temps lui-même peut être enregistré comme une macro (et peut-être attribué à un raccourci) pour faciliter l'invocation de la commune de commandes du shell.
Un de mes amis au travail m'a aidé.
(global-set-key (kbd "C-c C-d") (lambda () (interactive) (insert (shell-command-to-string "date"))))
utilise une fonction anonyme et est plus succinct.(define-key evil-normal-state-map (kbd "SPC f d") (lambda () (interactive) (insert (shell-command-to-string "date +%F_%T"))))
C-h m
ou similaire) va montrer une vue d'ensemble utile, plutôt que d'une fonction anonyme. 3) Vous pouvez trouver la nouvelle commande lors de la navigation sur les fonctions disponibles, par exemple lors de l'utilisation de la saisie semi-automatique sousM-x
.