Подтвердить что ты не робот

Добавление вашего .vim ~/.vimrc в github (aka dot files)

Я видел несколько человек, у которых есть git repos с их точечными файлами. Мне интересно, просто ли они

cd ~/
git init
git add .vimrc
// etc

? А потом, как они постоянно обновляются? Или они, вероятно, делают копии и синхронизируют их?

Какую стратегию вы рекомендуете или используете? В основном не хочу совершать и нажимать весь мой ~/

Спасибо

4b9b3361

Ответ 1

Создание git-репозитория для вашего дома, вероятно, плохая идея (вы бы потратили больше времени на создание файла .gitignore, чем на то, что вы действительно хотите сделать).

Я предлагаю использовать отдельный каталог git для ваших точечных файлов (например, ~/git/dotfiles) и делать из них символические ссылки на ваш дом (например, ln -s ~/git/dotfiles/.vim ~/.vim и т.д.).

Если вас не беспокоит создание символических ссылок вручную каждый раз, когда вы хотите где-то установить свои файлы точек, вы можете использовать скрипт, подобный следующему: https://github.com/gibfahn/dot/blob/master/link.

Ответ 2

У меня есть каталог ~/.vim под управлением версии и мой "реальный" vimrc (тот, у кого все мои настройки) внутри этого каталога, ~/.vim/vimrc:

~/
---- .vim/
---- ---- (plugins and stuff)
---- ---- vimrc
---- .vimrc

У моего регулярного ~/.vimrc есть только одна строка:

runtime vimrc

Не нужно создавать символические ссылки или что-то еще.

Вот как я бы нажал мою конфигурацию на новом компьютере, где Git уже установлен:

$ cd
$ git clone [email protected]:romainl/dotvim.git .vim
$ echo "runtime vimrc" > .vimrc

Далее следует весь процесс создания. Я предполагаю, что вы создали учетную запись и репо с именем vimconfig на Github и что у вас уже есть любовно созданный ~/.vimrc и хорошо организованный ~/.vim/.

$ 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

В этот момент у вас должен быть тот же контент в Github и в вашем локальном репозитории.

Обычно вы управляете этим репозиторием и нажимаете свои фиксации, когда будете готовы. Простой.

Обратите внимание, что вся работа Github полезна только тогда, когда вам нужно/нужно синхронизировать вашу конфигурацию на нескольких компьютерах или как-то нужно/хотеть поделиться ею с другими. Если вы этого не сделаете, в GitHub нет реальной точки.

(редактировать)

Vim 7.4 представил новую, очень полезную схему: он ищет обычный ~/.vimrc, а также для ~/.vim/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

Конечно, предложенная мной стратегия по-прежнему остается в силе, если вам приходится иметь дело со смешанными версиями Vim: Vim знает, что делать и не будет дерьмовать в бесконечном цикле.

Ответ 3

У меня уже есть папка "bundle", в которую я загружаю все мои плагины через Pathogen. Поэтому я создал эту папку в моей папке git (с плагинами как подмодули) и разместил там vimrc.

В официальном .vimrc пишу:

let $MYVIMRC="<path_to_vimrc_in_bundle_folder>"
source $MYVIMRC
...
call pathogen#infect()

и я не версия it!

Это позволяет мне делиться моей конфигурацией между моей машиной Linux дома и моей операционной системой Windows. Я также могу указать официальные конфигурации .vimrc, специфичные для машины, или те, которые я не хочу публиковать (например, dbext профили, содержащие логины и пароли...)

Ответ 4

Вот агностическое и агностическое решение платформы без каких-либо зависимостей, кроме того, у вас есть совместимая с bourne оболочка (bash, zsh, ksh и т.д.). Он работает на mac, linux и windows:

dotsys

Он автоматически синхронизирует изменения ваших dotfiles с github и несколькими машинами вместе со многими другими функциями.

Ответ 5

Ознакомьтесь с решением StreakyCobra в Hacker News:

git init --bare $HOME/.myconf
alias config='/usr/bin/git --git-dir=$HOME/.myconf/ --work-tree=$HOME'
config config status.showUntrackedFiles no

где ~/.myconf - это местоположение пустого хранилища git. Тогда любые файлы в $HOME могут быть версионированы следующим образом:

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

Если вам нужны дальнейшие объяснения, Никола Паолуччи предоставил отличное объяснение.