¿Es posible decirle a vim que guarde su archivo viminfo en otro lugar? Como en la carpeta .vim¿Cómo decirle a VIM que almacene el archivo viminfo en otro lugar?
Respuesta
Intente agregar set viminfo+=n~/.vim/viminfo
a su archivo ~/.vimrc
. De :help 'viminfo'
:
n Name of the viminfo file. The name must immediately follow
the 'n'. Must be the last one! If the "-i" argument was
given when starting Vim, that file name overrides the one
given here with 'viminfo'. Environment variables are expanded
when opening the file, not when setting the option.
set viminfo='1000,nc:\\users\\abcdef\\_viminfo
Esto funciona para mí en Windows 7.
tuve un problema similar, pero no tenía permiso de escritura en mi carpeta de inicio (por lo tanto no se pudo crear el ~/.vimrc
).
Lo resuelto mediante la modificación (a través del Administrador) el _vimrc en C:\Program Files\VIM
para incluir la línea:
let $HOME = $USERPROFILE
lo coloqué en el principio del archivo y funcionó bien. En caso de que alguien se encuentre con esta pregunta y this answer no funcionó.
TL; DR
Esto parece ser un error en vim
donde set nocompatible
no es idempotent y no sigue el principle of least astonishment.
Como solución, ya sea:
asegurarse de que usted
set nocompatible
(o el equivalenteset nocp
) solamente una vez y en la parte superior de suvimrc
.no puedo establecer de nuevo si ya está establecido:
if &compatible | set nocompatible | endif " Avoid side effects if `nocp` already set
Explicación y fallo ilustración
De :help compatible
(el mío empahsis):
Este es un tipo especial de opción, porque cuando se establece o restablece, otras opciones también se cambian como efecto secundario. CUIDADO: Configuración o restablecer esta opción puede tener un montón de efectos inesperados: Asignaciones se interpretan de otra manera, deshacer se comporta de manera diferente, etc. Si establece esta opción en su archivo vimrc, probablemente debería ponerlo en el muy comenzar.
Nota que &viminfo
es no enumerados en los efectos secundarios, sin embargo, las siguientes líneas muestran claramente el efecto secundario sobre &viminfo
:
set nocompatible
set viminfo+=nWatch-my-viminfo-file-location-be-ignored
echom &viminfo
set nocompatible " do side effects even though nocomptible is already set
echom 'After 2nd "set nocompatible":'
echom &viminfo
de salida:
'100,<50,s10,h,nWatch-my-viminfo-file-location-be-ignored After 2nd "set nocompatible": '100,<50,s10,h
vim --version | head -1
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug 05 2016 16:48:20)
Resolución
he planteado dos cuestiones con respecto a este GitHub:
- Undocumented "set nocompatible" side effect upon &viminfo
set nocompatible
not idempotent - setting produces side effects when already set
Ver también la pregunta de Vi StackExchange: Can't move viminfo
file - &viminfo reverts upon loading vim el que planteé antes de ver a éste.
El orden de las configuraciones en .vimrc afecta el uso de: set viminfo. La configuración de viminfo debe ser posterior a la configuración de no compatible. Después de reordenar mi .vimrc, funcionó para mí la solución anterior para que el archivo viminfo esté ubicado en el directorio .vim.
¿Podría mostrar un ejemplo? – mouckatron
- 1. ¿Cómo decirle a Django que no almacene en búfer los datos HTTP POST?
- 2. Sustituir con contenidos de registro o líneas desde otro lugar en el archivo en Vim
- 3. ¿Cuál es la manera correcta de decirle al navegador que no almacene en caché?
- 4. Cómo puedo decirle a AngularJS que "actualice"
- 5. ¿Cómo puedo decirle a [G] vim dónde buscar python26.dll?
- 6. ¿Cómo decirle a TextMate que ignore mi carpeta Katz's Bundler en "Ir a archivo"?
- 7. ¿Cómo puedo decirle a querydsl-maven-plugin que genere NumberPath con Long en lugar de BigDecimal?
- 8. ¿Cómo decirle a NLog que registre excepciones?
- 9. ¿Cómo decirle a .hover() que espere?
- 10. cómo decirle a subclipse que ignore el archivo modificado en commit
- 11. ¿Cómo decirle a emacs que abra el archivo .h en modo C++?
- 12. ¿Cómo decirle a FORFILES que ejecute Command en Path?
- 13. ¿Cómo cargar el contenido de otro archivo al archivo actual en Vim?
- 14. ¿Cómo consigo que AutoMapper no almacene en caché objetos mapeados?
- 15. ¿Cómo eliminar las líneas que aparecen en el archivo B de otro archivo A?
- 16. Cómo decirle a PyDoc que genere documentación para el directorio definido por el usuario
- 17. ¿Cómo decirle a Google que se ha movido una página?
- 18. ¿Cómo decirle a Boost.Test que se detenga en el primer caso de prueba que falla?
- 19. ¿Cómo decirle a 'git' que 'olvide' TODAS las confirmaciones anteriores?
- 20. ¿Cómo decirle a apache que LocationMatch está opuesto a esto?
- 21. ¿Cómo decirle a Git que siempre saque la rama principal?
- 22. ¿Cómo se muestra el nombre de archivo del archivo en el que está trabajando en vim?
- 23. FTP copiar un archivo a otro lugar en el mismo FTP
- 24. ¿Cómo decirle a PowerShell que espere a que termine cada comando antes de comenzar el siguiente?
- 25. cómo hacer que la pestaña muestre solo el nombre del archivo en lugar de la ruta completa en vim
- 26. Almacene el GUID en MySQL desde C#
- 27. iOS: almacene dos NSMutableArray en un archivo .plist
- 28. ¿Cómo decirle a una función lambda que capture una copia en lugar de una referencia en C#?
- 29. cómo decirle a gradle que descargue todos los archivos fuente
- 30. ¿Yank líneas de un archivo en vi (no vim) a otro?
no funciona en SUA en Windows D: –
¿Qué no funciona? La opción o el valor específico que sugerí? Siéntase libre de darle cualquier camino razonable que tenga sentido para su plataforma. – sarnold
no funciona como en, después de que agregué eso en mi archivo vimrc, viminfo aún se guarda el directorio bajo mi carpeta de inicio ... A menos que lo configure manualmente cada vez que abra vim, eso funcionaría, pero no si lo tengo en vimrc –