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下执行如下命令([email protected]代表自己的邮箱地址,是Github注册时用到的邮箱):
1
|
|
之后一路回车即可。
之后在Github网页上进行操作。
首先进入Account Settings页面:
之后找到SSH Keys:
通过Add SSH Key添加位于~/.ssh/id_rsa.pub的文件内容:
完成上述工作之后需要在shell下使用命令:
1
|
|
进行验证。当输出包含You’ve successfully authenticated的字样之后,表明连接已经可以了。
3.2 上传配置文件以及插件
首先在Github页面上创建一个Repository(就在Account Settings的左边一个按钮……),例如我的repo就起名叫做myvim。
之后在shell下,执行设置([email protected]意义同上):
1
2
|
git config --global user.name
"GithubID"
git config --global user.email [email protected]
|
之后在~目录下建立仓库:
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 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和密码。