Cuando uso el modo dired en emacs, puedo ejecutar un comando de shell por tipo! Xxx, pero ¿cómo enlazar una tecla para ejecutar este comando? Por ejemplo, quiero presionar O en un archivo, luego dired ejecutará 'cygstart' para abrir este archivo. Gracias.Cómo enlazar una clave para ejecutar un comando de shell en diremacs
7
A
Respuesta
10
Puede usar la función shell-command
. Por ejemplo:
(defun ls()
"Lists the contents of the current directory."
(interactive)
(shell-command "ls"))
(global-set-key (kbd "C-x :") 'ls); Or whatever key you want...
Para definir un comando en una única memoria intermedia, puede utilizar local-set-key
. In directo, puede obtener el nombre del archivo en el punto usando dired-file-name-at-point
. Por lo tanto, para hacer exactamente lo que pidieron:
(defun cygstart-in-dired()
"Uses the cygstart command to open the file at point."
(interactive)
(shell-command (concat "cygstart " (dired-file-name-at-point))))
(add-hook 'dired-mode-hook '(lambda()
(local-set-key (kbd "O") 'cygstart-in-dired)))
3
;; this will output ls
(global-set-key (kbd "C-x :") (lambda() (interactive) (shell-command "ls")))
;; this is bonus and not directly related to the question
;; will insert the current date into active buffer
(global-set-key (kbd "C-x :") (lambda() (interactive) (insert (shell-command-to-string "date"))))
El lambda
define una función anónima en su lugar. De esta forma, no tiene que definir una función auxiliar que estará vinculada a una tecla en otro paso.
lambda
es la palabra clave, y el siguiente par de paréntesis contiene sus argumentos, si es necesario. El resto es análogo a cualquier definición de función normal.
Cuestiones relacionadas
- 1. Cómo ejecutar un comando de shell desde un script php
- 2. Cómo ejecutar el comando shell en Javascript
- 3. Ejecutar un comando de shell desde una aplicación .NET
- 4. ¿Cómo ejecutar un comando de shell a través de vimscript?
- 5. Cómo ejecutar un comando de shell a través de Python
- 6. ¿Cómo puedo ejecutar un comando de shell usando VBA?
- 7. Ejecutar un comando de shell cuando se agrega un archivo
- 8. ¿Cómo ejecutar un comando DOS en una PC remota?
- 9. Enlazar una clave abreviada de WPF a un comando en el modelo de vista
- 10. Ejecutar comando de shell desde un cliente MySQL?
- 11. ¿Cómo puedo configurar Eclipse para ejecutar un constructor externo o un comando de shell?
- 12. Cómo ejecutar un comando shell sin abrir una ventana de CMD en VB6
- 13. ¿Cómo puedo escapar de una cadena para un comando de shell en un nodo?
- 14. Activar una aplicación o script en un comando shell
- 15. Ejecutar comando de shell en Clojure desde la ubicación específica
- 16. ¿Cómo ejecutar automáticamente un comando de shell después de guardar un archivo en Vim?
- 17. Ejecutar el comando Shell sobre MySql en el host remoto
- 18. ¿Cómo ejecutar un comando de shell en el archivo de especificaciones de RPM?
- 19. ¿Cómo ejecutar comandos de shell desde una aplicación Mac/MacRuby?
- 20. ¿Cómo ejecutar un comando de shell a través del código PHP?
- 21. script de shell simple para copiar archivos y carpetas y también ejecutar un comando
- 22. cómo utilizar ejecutar() en maravilloso para ejecutar cualquier comando
- 23. Espere Shell para terminar, a continuación, las células de formato - sincrónicamente ejecutar un comando
- 24. Ejecutar un archivo con argumentos en el shell de Python
- 25. Ejecutar un comando de shell desde un script de shell sin detenerse si se produce un error
- 26. jQuery: ¿enlazar y ejecutar un único controlador?
- 27. Ejecutando un comando de shell en un programa c
- 28. ¿Cómo ejecutar un script de shell Unix desde código Java?
- 29. Texto sublime 2 - ¿Cómo ejecutar un comando de shell sobre ssh?
- 30. Cómo enlazar un comando al hacer doble clic en una fila en la cuadrícula de datos
Nota: No conocía ninguna de estas funciones antes de responder la pregunta. Obtuve el nombre de 'shell-command' utilizando' C-h k' en 'M-!'; Obtuve el 'nombre de archivo direccional en el punto' al adivinar primero que sería una función' dired-'y luego usar' C-h f' y tab para autocompletar el nombre. También puede averiguar fácilmente los nombres y efectos de funciones de Emacs como este: ¡es un editor de ** auto-documentación **, después de todo! Es solo una de las muchas formas en que es impresionante. –