Agregar su .vim ~ / .vimrc a github (también conocido como files de puntos)

He visto a algunas personas que tienen repositorys git con sus files 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 copys y las sincronicen?

¿Qué estrategia recomiendan o usan ustedes? En su mayoría, no quiero comprometerme y empujar mi integer ~ /

Gracias

Hacer un repository git de tu casa es probablemente una mala idea (estarías gastando más time creando tu file .gitignore que haciendo lo que realmente quieres hacer).

Sugiero usar un directory git separado para sus files 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 files en cualquier lugar, puede usar un script como el siguiente: https://github.com/sitaktif/dotfiles/blob/master/bin/create- enlaces simbólicos (usa https://github.com/sitaktif/dotfiles/blob/master/CONFIG.example como la configuration).

Tengo mi directory ~/.vim en control de versiones y mi vimrc "real" (la que tiene todas mis configuraciones) dentro de ese directory, 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 configuration en una máquina nueva donde Git ya se ha instalado:

 $ cd $ git clone git@github.com:romainl/dotvim.git .vim $ echo "runtime vimrc" > .vimrc 

Lo que sigue es el process de creación completo. Supongo que ha creado una count y un repository 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 repository local.

Administra ese repository normalmente y envía sus confirmaciones cuando está listo. Sencillo.

Tenga en count que todo el asunto de Github solo es útil si necesita / desea sincronizar su configuration 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 less 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 sin fin.

Ya tengo una carpeta "package" donde puse todos mis complementos para cargar a través de Patógeno . Así que hice de esa carpeta mi carpeta git (con los complementos como submodules) 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 configuration 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 session y passwords …)

Aquí hay una plataforma agnóstica y una solución agnóstica de shell sin dependencies distintas a la shell compatible con bourne que tiene disponible (bash, zsh, ksh, etc.). Funciona en mac, linux y windows:

dotsys

Automáticamente sincronizará los cambios a sus files dotfiles con github y múltiples máquinas, junto con muchas otras características.

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 location del repository de git al descubierto. Entonces, cualquier file dentro de $HOME puede ser versionado así:

 config status config add .vimrc config commit -m "Add vimrc" config add .config/networkingshift.conf config commit -m "Add networkingshift config" config push 

Si necesita más explicaciones, Nikola Paolucci brindó una gran explicación .