使用Github和Vundle管理Vim插件和配置文件

0.概述
Vim的配置每次重装系统之后都是我耗时很长的工作,但是这样的工作有时候我觉得完全是不必要的,一些重复的文件写入和复制配置完全可以通过Github来完成。如果没有安装git,可以通过apt-get等先进行安装。如果没有Github账号,自然需要先去Github申请。

1.起因
每次配置Vim的配置文件和插件真是让我头疼的不行,有时候一些设置忘了,结果插件工作不正常,看着严重影响写代码的速度。放在本地可能因为一不小心一下全部删除掉(上次做课程设计就一次删掉了本地的SVN的代码……),而且还需要一些存储设备的帮助才能完成部署。此外,还有一些插件安装并不是很方便(从获取到安装),使用Vundle可以比较方便的对这些插件进行管理。于是就想通过git和Github两个结合一下,对插件进行管理。

2.Vundle部分
2.1 安装Vundle

Vundle的安装在其Github页面说明的很清楚,首先就是通过git将其克隆下来。

1
git clone https: //github .com /gmarik/vundle .git ~/.vim /bundle/vundle

之后在自己的.vimrc中添加如下三行:

1
2
3
set rtp+=~/.vim /bundle/vundle/
call vundle #rc()
Bundle 'gmarik/vundle'

之后这样就完成了安装。
2.2 安装插件
使用的话网上教程很多,简单来说,如果要安装的话,首先在.vimrc中添加对应的插件,格式是:

1
Bundle 'plugin-name'

其中,plugin-name即为其Github的url在https://github.com/后的部分,比如Vundle的页面url是https://github.com/gmarik/vundle,而我们要添加的部分就是gmarik/vundle(黑体部分),之后执行:

1
:BundleInstall

进行安装。
2.3 删除插件
删除的过程首先是删除插件在.vimrc中的Bundle配置项,之后执行:

1
:BundleClean

即可完成删除。

3.通过git与Github结合
3.1 创建SSH秘钥以及连接Github结合

首先在shell下执行如下命令(foo@gmail.com代表自己的邮箱地址,是Github注册时用到的邮箱):

1
ssh -keygen -C 'foo@gmail.com' -t rsa

之后一路回车即可。

之后在Github网页上进行操作。
首先进入Account Settings页面:

之后找到SSH Keys

通过Add SSH Key添加位于~/.ssh/id_rsa.pub的文件内容:

完成上述工作之后需要在shell下使用命令:

1
ssh - v git@github.com

进行验证。当输出包含You’ve successfully authenticated的字样之后,表明连接已经可以了。
3.2 上传配置文件以及插件
首先在Github页面上创建一个Repository(就在Account Settings的左边一个按钮……),例如我的repo就起名叫做myvim。

之后在shell下,执行设置(foo@gmail.com意义同上):

1
2
git config --global user.name "GithubID"
git config --global user.email foo@gmail.com

之后在~目录下建立仓库:

1
git init

之后执行添加文件并提交:

1
2
3
git add .vimrc
git add .vim/
git commit -m '[2013-2-27 16:29:14]My Vim conf & plugins'

最后在将其提交到Github上(myvim是自己建立的Repository的名字):

1
2
git remote add origin git@github.com:GithubID /myvim .git
git push origin master

提交成功之后可以在自己的Github页面上看到:

4.通过git恢复Vim设置
恢复主要的手段就是通过git clone https://github.com/GithubID/your_repo.git将对应的repo克隆到本地,之后将.vimrc和.vim目录移动到对应的目录下(一般是~目录),我在自己的Linux机器上进行上述操作之后,在Cygwin下执行了上述操作之后Vim已经能够正常使用了。

使用tree .vim也能看到文件完整。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
.vim
|-- bundle
|   |-- molokai
|   |   |-- colors
|   |   |   `-- molokai.vim
|   |   `-- README.md
|   |-- nerdtree
|   |   |-- autoload
|   |   |   `-- nerdtree.vim
|   |   |-- doc
|   |   |   `-- NERD_tree.txt
|   |   |-- nerdtree_plugin
|   |   |   |-- exec_menuitem.vim
|   |   |   `-- fs_menu.vim
|   |   |-- plugin
|   |   |   |-- NERD_tree.vim
|   |   |   `-- nerdtree
|   |   |       |-- bookmark.vim
|   |   |       |-- creator.vim
|   |   |       |-- key_map.vim
|   |   |       |-- menu_controller.vim
|   |   |       |-- menu_item.vim
|   |   |       |-- opener.vim
|   |   |       |-- path.vim
|   |   |       |-- tree_dir_node.vim
|   |   |       `-- tree_file_node.vim
|   |   |-- README.markdown
|   |   `-- syntax
|   |       `-- nerdtree.vim
|   |-- taglist-plus
|   |   |-- doc
|   |   |   |-- taglist-plus.txt
|   |   |   `-- tags
|   |   |-- plugin
|   |   |   `-- taglist-plus.vim
|   |   |-- README
|   |   `-- README.md
|   |-- vim-powerline
|   |   |-- autoload
|   |   |   |-- Pl
|   |   |   |   |-- Colorscheme.vim
|   |   |   |   |-- Hi.vim
|   |   |   |   |-- Match.vim
|   |   |   |   |-- Mod.vim
|   |   |   |   |-- Parser.vim
|   |   |   |   |-- Segment.vim
|   |   |   |   `-- Theme.vim
|   |   |   |-- Pl.vim
|   |   |   `-- Powerline
|   |   |       |-- Colorschemes
|   |   |       |   |-- default.vim
|   |   |       |   |-- solarized.vim
|   |   |       |   |-- solarized16.vim
|   |   |       |   `-- solarized256.vim
|   |   |       |-- Functions
|   |   |       |   |-- ft_man.vim
|   |   |       |   |-- fugitive.vim
|   |   |       |   |-- hgrev.vim
|   |   |       |   `-- syntastic.vim
|   |   |       |-- Functions.vim
|   |   |       |-- Matches.vim
|   |   |       |-- Segments
|   |   |       |   |-- ctrlp.vim
|   |   |       |   |-- ft_man.vim
|   |   |       |   |-- fugitive.vim
|   |   |       |   |-- hgrev.vim
|   |   |       |   |-- rvm.vim
|   |   |       |   |-- syntastic.vim
|   |   |       |   |-- tagbar.vim
|   |   |       |   `-- virtualenv.vim
|   |   |       |-- Segments.vim
|   |   |       `-- Themes
|   |   |           |-- default.vim
|   |   |           |-- solarized16.vim
|   |   |           `-- solarized256.vim
|   |   |-- doc
|   |   |   `-- Powerline.txt
|   |   |-- fontpatcher
|   |   |   |-- fontpatcher
|   |   |   |-- PowerlineSymbols.sfd
|   |   |   `-- README.rst
|   |   |-- plugin
|   |   |   `-- Powerline.vim
|   |   |-- Powerline_default_default_compatible.cache
|   |   `-- README.rst
|   `-- vundle
|       |-- autoload
|       |   |-- vundle
|       |   |   |-- config.vim
|       |   |   |-- installer.vim
|       |   |   `-- scripts.vim
|       |   `-- vundle.vim
|       |-- doc
|       |   `-- vundle.txt
|       |-- LICENSE-MIT.txt
|       |-- README.md
|       `-- test
|           |-- files
|           |   `-- test .erl
|           |-- minirc.vim
|           `-- vimrc
|-- colors
|   `-- molokai.vim
`-- README.md

5.其他
对于在Windows上使用Git对插件进行管理,个人觉得可以使用msysgit进行,安装过程很简单,基本是一路next,在安装成功之后,使用Git Bash进行相关的操作即可。

如果希望连创建Repository都在本地完成的话,可以使用msysgit中的curl工具通过使用Github API完成。
对于创建一个repo,可以使用如下的语句完成:

1
curl -i -u "GithubId" -d '{"name":"repo_name","private":false}' https: //api .github.com /user/repos

上述方法需要输入密码,将GithubID换成自己的Github账号,repo_name换成需要新增的repo名称。如果不想再输入密码,那么就把上述命令中的GithubID写成GithubID:GithubPassword的形式,就是直接用冒号分隔ID和密码。

对于删除一个repo,可以使用如下语句完成:

1
curl -i -u "GithubId" -X DELETE https: //api .github.com /repos/GithubId/repo_name

同样的,上述方法需要输入密码,将GithubID换成自己的Github账号,repo_name换成需要新增的repo名称。如果不想再输入密码,那么就把上述命令中的GithubID写成GithubID:GithubPassword的形式,就是直接用冒号分隔ID和密码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值