En VIM, se puede usar %
para indicar el nombre de archivo actual al invocar un comando de shell. ¿Puede alguien señalarme en la dirección de la documentación que muestra cuál es el equivalente en emacs?Emacs equivalente al `%` de VIM?
5
A
Respuesta
4
No hay ninguna. ¡Pero este es Emacs! Así que aquí:
(defun my-shell-command-on-current-file (command &optional output-buffer error-buffer)
"Run a shell command on the current file (or marked dired files).
In the shell command, the file(s) will be substituted wherever a '%' is."
(interactive (list (read-from-minibuffer "Shell command: "
nil nil nil 'shell-command-history)
current-prefix-arg
shell-command-default-error-buffer))
(cond ((buffer-file-name)
(setq command (replace-regexp-in-string "%" (buffer-file-name) command nil t)))
((and (equal major-mode 'dired-mode) (save-excursion (dired-move-to-filename)))
(setq command (replace-regexp-in-string "%" (mapconcat 'identity (dired-get-marked-files) " ") command nil t))))
(shell-command command output-buffer error-buffer))
(global-set-key (kbd "M-!") 'my-shell-command-on-current-file)
1
Se puede usar esta cada vez que el minibuffer espera que escriba algo (advertencia: no funciona con IDO, pero obviamente siempre se puede salir de eso con, por ejemplo, C-x C-f). También puedes usarlo en buffers regulares.
(defun insert-filename-or-buffername (&optional arg)
"If the buffer has a file, insert the base name of that file.
Otherwise insert the buffer name. With prefix argument, insert the full file name."
(interactive "P")
(let* ((buffer (window-buffer (minibuffer-selected-window)))
(file-path-maybe (buffer-file-name buffer)))
(insert (if file-path-maybe
(if arg
file-path-maybe
(file-name-nondirectory file-path-maybe))
(buffer-name buffer)))))
(define-key minibuffer-local-map (kbd "C-c f") 'insert-filename-or-buffername)
0
en mi caso, el uso de los emacs 24 versión GUI de homebrew .... veo el nombre de archivo como el 3 artículo disponible desde la esquina inferior izquierda de la (menor) -mode-bar, justo por encima del mini-buffer.
Para ver dónde estoy, con ido-mode solo hago C-x C-f
Sin configuración necesaria allí.
Cuestiones relacionadas
- 1. Emacs equivalente a yy10p de Vim?
- 2. equivalente de Emacs del método fold de Vim = sangrado
- 3. Emacs equivalente al historial de comandos de Vim (para los comandos Meta-x)
- 4. emacs equivalente a vim shift-h y shift-l
- 5. Textmate 'Ir al símbolo' equivalente para Vim
- 6. Vim - guión como Emacs
- 7. ¿Tiene menos un equivalente al desplazamiento de vim?
- 8. ¿Hay un Vim equivalente al comando "fold" de Linux/Unix?
- 9. Vim style Omnicomplete para emacs?
- 10. emacs como-vim rubí muesca
- 11. ¿Cómo lograr el equivalente de la Ctrl-n de Vim en GNU Emacs?
- 12. ¿Equivalente de "exec" en emacs * eshell *?
- 13. Emacs, cómo alternar entre palabras (verdadero a falso, etc ...) Equivalente de toggle_words vim plugin
- 14. ¿Recomendarías vim/emacs para los programadores principiantes?
- 15. GNU emacs equivalente a func-menu
- 16. ¿Cómo puedo emular la búsqueda de Vim * en GNU Emacs?
- 17. Teclados Colemak con Emacs o VIM
- 18. emacs equivalente a vim's bg = dark? (configuración de fondo a oscuro)
- 19. Equivalente equivalente al método Unity RegisterInstance
- 20. ¿Piensas/escribes de manera diferente en vim y emacs?
- 21. VIM: anexar al portapapeles
- 22. ¿Cómo emular las palabras de transposición de Emacs en Vim?
- 23. Auto ¿Incluye instrucciones de importación de python en vim/emacs?
- 24. ¿La mejor manera de cambiar de Vim a Emacs?
- 25. Emacs hoja de trucos que enumera equivalentes a vim cotidiana comandos
- 26. estilo Emacs que destaca para inc-búsqueda en vim
- 27. ¿Algún comando de Emacs como paste-mode en vim?
- 28. ¿Cómo emulo el 'softtabstop' de Vim en Emacs?
- 29. ¿Cuál es el equivalente de foldr, foldl en Emacs Lisp?
- 30. "super estrella" o encuentre la palabra con el cursor equivalente en emacs
[buffer-file-name] (http://www.gnu.org/software/emacs/manual/html_node/elisp/Buffer-File-Name.html) – jfs
no hay equivalente en Emacs. 'buffer-file-name' es una variable de Elisp y no se puede utilizar en el símbolo del sistema del shell. –
Enlace cruzado con [Pasando variables de Emacs a comandos de shell de minibuffer] (http://stackoverflow.com/questions/10121944/passing-emacs-variables-to-minibuffer-shell-commands) (que es básicamente un duplicado, excepto que las dos preguntas provienen de ángulos notablemente diferentes). – phils