2012-05-23 11 views
5

Duplicar posible:
Aliasing a command in vimvim crear alias para comandos con frecuencia utiliza

así que tengo que editar archivos FAT wscript mucho. Cada vez que ejecuta este comando para establecer el tipo de archivo

set filetype=python 

hay una manera de establecer una pequeña alias para el comando anterior? TAN que puedo ir en modo EX y escribir "py", que hace lo mismo.

+0

Yo estoy buscando una manera de hacer este permanente, probé ": comando cmd cmd_alias' pero fracasa –

+1

@VihaanVerma: familiarizado con vimrc? Búsquelo si no lo está. –

+1

Esto * no * es un duplicado de la pregunta sugerida. Tiene algunas similitudes, pero es bastante diferente, especialmente en la solución óptima de un autocmd, que está respondiendo a la intención en lugar de la pregunta tal como está redactada. –

Respuesta

6

Si he entendido bien su pregunta, el siguiente añadido a su .vimrc shoud funciona

autocmd BufRead,BufNewFile *.waf set filetype=python 

Si se trata de un nombre de archivo en particular, como wscript, esto también funciona:

autocmd BufRead,BufNewFile wscript set filetype=python 

Si es posible Confiar en una extensión o nombre de archivo puede agregar una línea de mode en la parte superior o inferior de su archivo

# vim: set filetype=python : 

Consulte :help modeline para obtener más información.

Pero es poco feo porque hay que modificar el archivo, y si se esté trabajando en un equipo, puede ser problemático.

+0

I m adivinando comando anterior depende de la extensión de archivo" .waf' .Los archivos wscript en mi caso que no tiene una 'extensión .waf'. –

+0

Esto también me llega preguntando si las tiendas vim un historial de comandos. –

+0

sólo cambia el' * .waf' parte en la respuesta de Xavier para satisfacer sus necesidades – romainl

6

Usted no quiere ir en Ex modo. Lo que quiere es Command-line mode.

command! Py set filetype=python 

hace exactamente lo que quiere: se escribe :Py<CR> para cambiar el tipo de archivo a python.

También puede hacerlo más rápido con un mapeo modo normal :

nnoremap <F11> :set filetype=python<CR> 
+1

'¡comando! Py: exec ('set filetype = python') '!? Eso debería ser simplemente '¡comando! Py set filetype = python'. En su comando, se ignoran ':' y los paréntesis; está usando el comando ': execute' para lograr lo mismo ... no es una función. –

+0

Respuesta corregida. Gracias Chris. – romainl

+0

Pero este alias se borra tan pronto como uno sale del archivo. Quiero evitar la tecla F11 así que puse el comando "¡comando! Py set filetype = python" ¡y funciona! : D –

Cuestiones relacionadas