fugitive - Agregar su.vim ~/.vimrc a github(también conocido como archivos de puntos)
vim plugins (5)
He visto a algunas personas que tienen repositorios git con sus archivos de puntos. Me pregunto si solo
cd ~/
git init
git add .vimrc
// etc
? ¿Y entonces es así como lo mantienen actualizado? ¿O es probable que hagan copias y las sincronicen?
¿Qué estrategia recomiendan o usan ustedes? En su mayoría, no quiero comprometerme y empujar mi entero ~ /
Gracias
Aquí hay una plataforma agnóstica y una solución agnóstica de shell sin dependencias distintas a la shell compatible con bourne que tiene disponible (bash, zsh, ksh, etc.). Funciona en mac, linux y windows:
Automáticamente sincronizará los cambios a sus archivos dotfiles con github y múltiples máquinas, junto con muchas otras características.
Hacer un repositorio git de tu casa es probablemente una mala idea (estarías gastando más tiempo creando tu archivo .gitignore que haciendo lo que realmente quieres hacer).
Sugiero usar un directorio git separado para sus archivos duales (ej. ~/git/dotfiles
) y ellos haciendo enlaces simbólicos a su hogar (por ejemplo, ln -s ~/git/dotfiles/.vim ~/.vim
, etc.).
Si no puede molestarse en crear enlaces simbólicos manualmente cada vez que desee instalar sus archivos en cualquier lugar, puede usar un script como el siguiente: https://github.com/sitaktif/dotfiles/blob/master/bin/create-symlinks (usa https://github.com/sitaktif/dotfiles/blob/master/CONFIG.example como la configuración).
Tengo mi directorio ~/.vim
en control de versiones y mi vimrc
"real" (la que tiene todas mis configuraciones) dentro de ese directorio, en ~/.vim/vimrc
:
~/
---- .vim/
---- ---- (plugins and stuff)
---- ---- vimrc
---- .vimrc
Mi ~/.vimrc
regular tiene solo una línea:
runtime vimrc
No es necesario crear enlaces simbólicos o lo que sea.
Así es como empujaría mi configuración en una máquina nueva donde Git ya se ha instalado:
$ cd
$ git clone [email protected]:romainl/dotvim.git .vim
$ echo "runtime vimrc" > .vimrc
Lo que sigue es todo el proceso de creación. Supongo que ha creado una cuenta y un repositorio llamado "vimconfig" en Github y que ya tiene un ~/.vimrc
creado con amor y un ~/.vim/
bien organizado.
$ cd
$ mv .vimrc .vim/vimrc
$ echo "runtime vimrc" > .vimrc
$ cd .vim
$ git init
$ echo "This is my Vim config." > README
$ git add *
$ git commit -m "My Vim config is versioned."
$ git remote add origin https://github.com/username/vimconfig.git
$ git push origin master
En ese momento, debe tener el mismo contenido en Github y en su repositorio local.
Administra ese repositorio normalmente y envía sus confirmaciones cuando está listo. Sencillo.
Tenga en cuenta que todo el asunto de Github solo es útil si necesita / desea sincronizar su configuración en varias máquinas o, de alguna manera, necesita / desea compartirla con otras personas. Si no lo haces, no hay ningún punto real usando GitHub en absoluto.
(editar)
Vim 7.4 introdujo un nuevo esquema muy útil: busca el ~/.vimrc
habitual y también para ~/.vim/vimrc
por lo que le ~/.vim/vimrc
aún menos trabajo:
$ cd .vim
$ git init
$ echo "This is my Vim config." > README
$ git add *
$ git commit -m "My Vim config is versioned."
$ git remote add origin https://github.com/username/vimconfig.git
$ git push origin master
Por supuesto, la estrategia que sugerí inicialmente sigue siendo válida si tienes que lidiar con versiones mixtas de Vim: Vim sabe qué hacer y no va a terminar en un bucle infinito.
Vea la solución de steakcobra
en Hacker News :
git init --bare $HOME/.myconf
alias config=''/usr/bin/git --git-dir=$HOME/.myconf/ --work-tree=$HOME''
config config status.showUntrackedFiles no
donde ~/.myconf
es la ubicación del repositorio de git al descubierto. Entonces, cualquier archivo dentro de $HOME
puede ser versionado así:
config status
config add .vimrc
config commit -m "Add vimrc"
config add .config/redshift.conf
config commit -m "Add redshift config"
config push
Si necesita más explicaciones, Nikola Paolucci brindó una gran explicación .
Ya tengo una carpeta "paquete" donde puse todos mis complementos a cargar a través de Pathogen . Así que hice de esa carpeta mi carpeta git (con los complementos como submódulos) y puse allí mi vimrc.
En el .vimrc
oficial escribo:
let $MYVIMRC="<path_to_vimrc_in_bundle_folder>"
source $MYVIMRC
...
call pathogen#infect()
¡y no lo versiono!
Esto me permite compartir mi configuración entre mi máquina Linux en casa y mi caja de Windows en el trabajo. También puedo poner las configuraciones .vimrc
oficiales específicas de la máquina, o las que no quiero que estén disponibles públicamente (como los perfiles dbext que contienen inicios de sesión y contraseñas ...)