Pregunta:
Utilizo la función de corrección ortográfica de vim. Dado que trabajo con muchos términos técnicos y comandos LaTeX, tiendo a agregar muchos de ellos a mi diccionario personal en ~/.vim/spell/en.utf-8.add
.
Me gustaría compartir este archivo en varias máquinas, de modo que cuando agregue una palabra al archivo en una máquina, también se agregue en otras máquinas, y no necesito agregarlo una vez en cada máquina. Intenté versionar ~/.vim/spell/en.utf-8.add
en git, pero esto no parece funcionar: vim no recoge los nuevos términos. Sospecho que vim también necesita que el archivo en.utf-8.add.spl
de alguna manera, pero como este archivo es binario, el control de versiones probablemente dará lugar a conflictos.
¿Alguien aquí tiene una solución satisfactoria para tener adiciones de diccionario de corrección ortográfica de vim como parte de su configuración y sincronizarlas entre todas sus máquinas?
Respuesta:
Vim utiliza el archivo spl
para realizar las comprobaciones y el archivo spl
se genera a partir del archivo de add
. Podemos especular sobre si el archivo spl
es portátil en diferentes máquinas y versiones de Vim, pero es más fácil (y más seguro) volver a generarlo según sea necesario. Ahora, el archivo spl
se vuelve a generar automáticamente cuando agrega palabras a su diccionario local desde Vim, pero debe ejecutar mkspell
para volver a generarlo si edita el archivo de add
directamente.
Con eso en mente, puede hacer algo como esto: sincronice el archivo de add
por cualquier medio (con git
, rsync
, NFS o lo que sea) y agregue estos comandos a su vimrc
en todas las máquinas:
for d in glob('~/.vim/spell/*.add', 1, 1)
if filereadable(d) && (!filereadable(d . '.spl') || getftime(d) > getftime(d . '.spl'))
exec 'mkspell! ' . fnameescape(d)
endif
endfor
Esto volverá a generar el archivo spl
al inicio de Vim siempre que el archivo de add
correspondiente sea más nuevo que él.