
Últimamente descubrí que cuando entras en unespacio irrompible(nbsp)en un documento HTML
y establezca el encoding
valor en utf-8, no tendrá que ingresar nbsp;
repetidamente para formatear el texto. Al principio
pensé, oye, ¿por qué no asigno esto a la barra espaciadora así :imap <SPACE> <C-R>=nr2char(160)<CR>
?
Más tarde edité mi .vimrc
y cuando reinicié Vim, recibí docenas de errores sobre alguna función que necesitaba un
nombre a pesar de que se lo había dado. Me di cuenta de que nbsp
no se trata como un espacio (obviamente) aunque
lo parezca. Entonces, pensé que una mejor manera sería tener una asignación por tipo de archivo, de modo que cuando esté editando un documento html, el espacio inserte un nbsp
espacio normal chr(32)
al editar cualquier otro archivo.
¿Cómo hago esto?
Respuesta1
El au[tocommand]
comando toma un FileType
evento que se ejecuta cuando filetype
se ha configurado (por ejemplo, al iniciar con un nombre de archivo). Por ejemplo en ~/.vimrc
:
au Filetype python source ~/.vim/scripts/python.vim
Respuesta2
Puede utilizar complementos de tipo de archivo que solo se obtienen cuando el archivo es de un determinado tipo de archivo. Para configurar esto, cree el archivo ~/.vim/ftplugin/html.vim
y coloque sus comandos en este archivo. Si ya existe un archivo, puede crear un directorio llamado html y luego se obtendrán todos los archivos del directorio. Echa un vistazo a:h ftplugin-name
para otras opciones de nombres. (Si los directorios no existen crearlos)
Todo lo que necesitas tener en tu vimrc es filetype plugin indent on
(la sangría realmente no es necesaria para esto, pero normalmente es útil).
También podría ser importante hacer que el mapeo sea local para el búfer solo usando
map <buffer>
También podría ser útil revisar :h ftplugin
y:h filetype