En vim, en mi .vimrc, ¿cómo puedo redefinir un comando (es decir: e) como algo más? Quiero redefinir :e *
como :tabe *
.Vim: redefina un comando
Respuesta
me di cuenta de una manera de hacerlo. Ver How to disable a built-in command in vim. A partir de eso, podemos ver que podemos usar cabbrev para cambiar lo que hace un comando. Para mis necesidades, cabbrev e tabe
es perfecto.
Pero podemos generalizar esta solución para hacer que los comandos comiencen con caracteres en minúsculas accesibles para los usuarios para los definidos por el usuario: use cabbrev para (re) definir un comando integrado como uno definido por el usuario. Como tal, podemos redefinir los comandos incorporados, así como los definidos por el usuario.
He aquí un ejemplo, lo que equivale a mi solución a mi problema antes mencionado:
:command -nargs=+ E :tabe "<args>"
:cabbrev e E
eso es todo.
Según tengo entendido, no se puede. Los comandos definidos por el usuario deben tener una primera letra en mayúscula.
:help :command
para más información
La mejor solución sin un plugin que he visto hasta ahora es:
cnoreabbrev <expr> e getcmdtype() == ":" && getcmdline() == 'e' ? 'tabe' : 'e'
si se utiliza un simple:
cnoreabbrev e E
según lo sugerido por @Yktula rompería su comando si desea hacerlo:
echo e f
que se convertiría en:
echo E f
en su lugar.
Como se explica por @pydave en los comentarios, la cmdalias plugin añade una interfaz más sencilla de hacer los alias de seguros simplemente como:
:Alias e tabe
En el momento de escribir el plugin también utiliza la técnica de getcmdtype() == ":"
implementar su funcionalidad
Puede usar [cmdalias] (http://www.vim.org/scripts/script.php?script_id=746) para simplificarlo a ': Alias e tabe' y hará la magia de getcmdline para usted. – idbrii
- 1. Agregar un comando a Vim
- 2. Vim: cómo ejecutar un comando inmediatamente al iniciar vim?
- 3. VIM, ejecuta un comando en varios archivos
- 4. Cómo deshabilitar un comando incorporado en vim
- 5. Redefina los métodos de clase o clase
- 6. Vim "¿mostrar mi último comando"?
- 7. ¿Cómo se interrumpe un comando Vim que toma demasiado tiempo?
- 8. Ejecutar un comando debajo del cursor en VIM
- 9. ¿Hay un comando vim para seleccionar texto pegado?
- 10. Comando para rodear a un personaje con espacios en vim
- 11. Uso de variables en un comando de shell vim
- 12. Reemplace el comando: make con un script personalizado en vim
- 13. VIM: Seleccione una expresión regular, luego aplique un comando
- 14. VIM: almacenar la salida del comando externo en un registro
- 15. ¿Cómo se repite un comando con sustitución en Vim?
- 16. Vim: hay un comando para cambiar las ventanas
- 17. ¿Hay un Vim equivalente al comando "fold" de Linux/Unix?
- 18. Vim: registro de tubería al comando externo
- 19. Vim: comando simple "saltar al archivo"?
- 20. carácter de escape en el comando vim
- 21. problema Vim con el comando gf
- 22. Ejecutar un comando dentro de Vim desde la línea de comando
- 23. comando de Vim para "editar una copia de este archivo"
- 24. Cómo mantener una ventana de salida de comando en vim
- 25. Uso del comando f de vim en varias líneas
- 26. vim: inserte el texto seleccionado en la línea de comando?
- 27. redireccionando la salida del comando 'buscar' a 'vim'
- 28. Vim: ejecuta algún comando al editar el archivo específico
- 29. ¿Algún comando de Emacs como paste-mode en vim?
- 30. comando de Vim para borrar todos menos líneas seleccionadas
Esto se rompe si quiere escribir: 'echo e f', que se convertiría en 'echo E f' en su lugar. Mi respuesta intenta superar esto. –