gVIM在Windows配置,git,curl, vundle

gVIM在Windows配置,git,curl, vundle

与Emacs并称程序员神之编辑器VIM(官网http://www.vim.org)在linux上是必备的,在Windows上版本是gvim。

VIM杀手级的插件有:管理插件的插件vundle,NERDTree插件,ctrlp插件,vim-nerdtree-tabs插件等 。

一张我自己的vim配置效果图,简单而美丽

1、安装GVIM

A、下载

B、运行下载的安装程序。

安装路径默认C:\Program Files\Vim\, 因windows文件名有空格易引发错误, 故改为简单的 C:\vim

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

桌面图标:

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

gvim是常规模式,打开首先进入命令模式而非文本编辑模式

gvim Easy是简捷模式,打开后直接进入文本编辑模式

gvim Read 是 只读模式,打开进入非编辑只浏览模式。

2、安装vim插件管理工具vundle

注意:安装vundle前提需要先安装 git 和 配置curl

(1)、安装git客户端

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

也可以只下载安装msysgit,它只是提供了git的核心功能,而且是基于命令行的

A、下载

B、运行下载的安装程序,并安装说明一步一步正确安装即可,

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

PATH环境选择界面;在 adjusting your PATH environment (调整PATH环境)界面,我们选择第二个从windows命令行和其它第三方软件:

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

使用OpenSSL安全认证:

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

关闭上传git时文本换行符的自动转换功能。特别是中文程序员,几乎都会碰到这个坑。建议是,关闭之后,Git 就不会对你的换行符做任何手脚了,你可以完全自主地、可预期地控制自己的换行符风格。

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

C、安装完成,打开cmd 命令提示符,运行命令(git –version )检查git 版本号

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

D、我的电脑上git安装路径是C:\Program Files\Git

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

(2)、配置 curl

有参考文档说 在windows下安装curl 只需要在git的cmd目录创建文件curl.cmd即可,但这样做失败了:
路径:C:\Program Files\Git\cmd\curl.cmd ,文件内容如下

1

2

3

4

5

6

7

8

9

10

11

12

13|@rem Do not use "echo off" to not affect any child calls.

@setlocal

@rem Get the abolute path to the parent directory, which is assumed to be the

@rem Git installation root.

@for /F "delims=" %%I in ("%dp0..") do @set git_install_root=%%fI

@set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%git_install_root%\mingw64\bin;%PATH%

@rem !!!!!!! For 64bit msysgit, replace 'mingw' above with 'mingw64' !!!!!!!

@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%

@if not exist "%HOME%" @set HOME=%USERPROFILE%

@curl.exe %*|

重新下载安装curl (我的电脑是32位):链接: https://pan.baidu.com/s/10PurNgzgbrIXBLZ8zodVyQ 提取码: w2k1

或者去网上下载并根据你电脑的具体情况选32位或64位

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle


.将下载好的zip压缩包,直接解压到自己常用安装目录即可;

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

为了方便在命令窗口任意目录下使用curl,最好配置一下环境变量:

一、增加CURL_HOME环境变量:C:\curl\bin(值是对应curl.exe所在的目录)

二、在PATH环境变量里加上%CURL_HOME%;

或者

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

在Windows下使用ssl的curl命令,还需要安装OpenSSL.

链接: https://pan.baidu.com/s/13JDuR8750xPlCrk5FyM4lw 提取码: c3u5

或到 http://slproweb.com/products/Win32OpenSSL.html网站上下载 Win64OpenSSL_Light-1_1_0g.exe 安装即可。

打开cmd 命令提示符,运行命令( curl –version )检查curl 版本号

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

测试是否能成功使用:打开cmd命令窗口,输入 curl https://www.baidu.com 有返回html代码则表示成功
开始安装 vundle 了,也很简单

(2)、安装Vundle (Vundle on Windows)

A、打开cmd 命令提示符,只要运行一条命令即可,我们将vundle安装到 C:\Vim\vimfiles 目录,目录如下:

1 git clone https://github.com/gmarik/Vundle.vim.git C:\Vim\vimfiles\bundle\Vundle.vim
www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

如果因为文件太大卡住了,报错:fatal:early EOF fatal:index-pack faild

那试试只下载最新版本,用 --depth 1,

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

另外也可以试下 压缩后传输

git config --addcore.compression -1

or

gitconfig --global--addcore.compression -1

如果你是安装在C:\Program Files\Vim下面,文件名中间有空格,在输入命令时应该把整个路径加上双引号

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

此时Vim的目录结构应该如下所示

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

B、添加一个gvim目录的 环境变量 $VIM ,步骤 :我的电脑->属性->高级系统设置->高级->环境变量->新建 ;如图

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

C、在vim配置文件_vimrc添加 bundle的配置

vim的配置文件 _vimrc (在linux文件名是 .vimrc , 在windows下面是 _vimrc);这里直接配置一个全局的 _vimrc文件,路径:C:\Vim\_vimrc , 可以做下,然后添加关于bundle的如下内容:

set nocompatible              " be iMproved, required
filetype off                  " required

set rtp+=$VIM/vimfiles/bundle/Vundle.vim/
let path='$VIM/Vimfiles/bundle'
call vundle#begin(path)
Plugin 'gmarik/Vundle.vim'         "管理Vundle自身 

call vundle#end()            
filetype plugin indent on

在Github vim-scripts 用户下的repos,只需要写出repos名称
在Github其他用户下的repos, 需要写出”用户名/repos名”
不在Github上的插件,需要写出git全路径

D、Bundle 插件管理器使用

相关命令
安装插件:BundleInstall
更新插件:BundleUpdate
清除不再使用的插件:BundleClean
列出所有插件:BundleList
查找插件:BundleSearch

例如安装插件
打开一个gvim, 运行:BundleInstall 或者在命令行运行 vim +BundleInstall +qall
安装完成后插件就能用了

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

3、VIM之文件管理插件NERDTree 和 共享插件vim-nerdtree-tabs

A、安装和基本用法

通过vim插件管理工具Vundle安装NERDTree和vim-nerdtree-tabs就很简单,只需要将插件路径添加到bundle的配置即可,添加两行

Plugin ‘scrooloose/nerdtree’
Plugin ‘jistr/vim-nerdtree-tabs’

如下,用记事本打开vim的配置文件_vimrc,添加上面两句:

set rtp+=$VIM/vimfiles/bundle/Vundle.vim/
let path='$VIM/Vimfiles/bundle'

call vundle#begin(path)
Plugin 'gmarik/Vundle.vim'         "管理Vundle自身 
Plugin 'scrooloose/nerdtree'        "路径目录树插件
Plugin 'jistr/vim-nerdtree-tabs'

call vundle#end()    
        
filetype plugin indent on

"然后重启Vim并输入PluginInstall`,即可完成安装

www.zeeklog.com  - gVIM在Windows配置,git,curl, vundle

然后输入: NERDTreeToggle即可打开文件树。当然,默认是关闭的,需要每次都输入命令打开。
还可以设置vim快捷键来映射,在vimrc中加入:

map <F3> :NERDTreeMirror<CR>
map <F3> :NERDTreeToggle<CR>

NERDTree的一些基本操作快捷键

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|?: 快速帮助文档

o: 打开一个目录或者打开文件,创建的是buffer,也可以用来打开书签

go: 打开一个文件,但是光标仍然留在NERDTree,创建的是buffer

t: 打开一个文件,创建的是Tab,对书签同样生效

T: 打开一个文件,但是光标仍然留在NERDTree,创建的是Tab,对书签同样生效

i: 水平分割创建文件的窗口,创建的是buffer

gi: 水平分割创建文件的窗口,但是光标仍然留在NERDTree

s: 垂直分割创建文件的窗口,创建的是buffer

gs: 和gi,go类似

x: 收起当前打开的目录

X: 收起所有打开的目录

e: 以文件管理的方式打开选中的目录

D: 删除书签

P: 大写,跳转到当前根路径

p: 小写,跳转到光标所在的上一级路径

K: 跳转到第一个子路径

J: 跳转到最后一个子路径

和: 在同级目录和文件间移动,忽略子目录和子文件

C: 将根路径设置为光标所在的目录

u: 设置上级目录为根路径

U: 设置上级目录为跟路径,但是维持原来目录打开的状态

r: 刷新光标所在的目录

R: 刷新当前根路径

I: 显示或者不显示隐藏文件

f: 打开和关闭文件过滤器

q: 关闭NERDTree

A: 全屏显示NERDTree,或者关闭全屏|

B、在vim启动设定文件_vimrc添加NERDTree的配置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15|" 关闭NERDTree快捷键

map t :NERDTreeToggle

" 显示行号

let NERDTreeShowLineNumbers=1

let NERDTreeAutoCenter=1

" 是否显示隐藏文件

let NERDTreeShowHidden=1

" 设置宽度

let NERDTreeWinSize=21

" 在终端启动vim时,共享NERDTree

let g:nerdtree_tabs_open_on_console_startup=1

" 忽略一下文件的显示

let NERDTreeIgnore=['\.pyc','\~$','\.swp']

" 显示书签列表

let NERDTreeShowBookmarks=1|

4、VIM之搜索定位打开文件插件CtrlP

A、安装和基本用法

安装跟NERDTree和vim-nerdtree-tabs插件安装方法一样,只需要添加一行 Plugin ‘kien/ctrlp.vim’ 即可,完整如下

1

2

3

4

5

6

7

8|"插件管理

set rtp+=$VIM\vimfiles\bundle\Vundle.vim\

call vundle#begin()

Plugin 'VundleVim/Vundle.vim'

Plugin 'scrooloose/nerdtree'

Plugin 'jistr/vim-nerdtree-tabs'

Plugin 'kien/ctrlp.vim'

call vundle#end()|

打开一个gvim, 运行 :BundleInstall 即可

ctrlp的 github路径可以自行查询一下

在网上找到 ctrlp 的一个gif 文件,如下

最后,附上我的_vimrc 完整配置,我只安装了这三个插件

5 、我自己的 _vimrc 完整配置,可参考

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

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127|set nocompatible

source $VIMRUNTIME/vimrc_example.vim

"source $VIMRUNTIME/mswin.vim

"behave mswin

set diffexpr=MyDiff()

function MyDiff()

let opt = '-a --binary '

if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif

if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif

let arg1 = v:fname_in

if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif

let arg2 = v:fname_new

if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif

let arg3 = v:fname_out

if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif

let eq = ''

if $VIMRUNTIME =~ ' '

if &sh =~ '\<cmd'

let cmd = '""' . $VIMRUNTIME . '\diff"'

let eq = '"'

else

let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'

endif

else

let cmd = $VIMRUNTIME . '\diff'

endif

silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq

endfunction

"设置文件的代码形式 utf8

set encoding=utf-8

set termencoding=utf-8

set fileencoding=utf-8

set fileencodings=ucs-bom,utf-8,chinese,cp936

"vim的菜单乱码解决

source $VIMRUNTIME/delmenu.vim

source $VIMRUNTIME/menu.vim

"vim提示信息乱码的解决

language messages zh_CN.utf-8

filetype on

filetype plugin indent on

"colorscheme evening "配色方案

colorscheme desert

set helplang=cn "设置中文帮助

set history=500 "保留历史记录

set guifont=Monaco:h10 "设置字体为Monaco,大小10

set tabstop=4 "设置tab的跳数

set expandtab

set backspace=2 "设置退格键可用

"set nu! "设置显示行号

set wrap "设置自动换行

"set nowrap "设置不自动换行

set linebreak "整词换行,与自动换行搭配使用

"set list "显示制表符

set autochdir "自动设置当前目录为正在编辑的目录

set hidden "自动隐藏没有保存的缓冲区,切换buffer时不给出保存当前buffer的提示

set scrolloff=5 "在光标接近底端或顶端时,自动下滚或上滚

"Toggle Menu and Toolbar "隐藏菜单栏和工具栏

"set guioptions-=m

"set guioptions-=T

set showtabline=2 "设置显是显示标签栏

set autoread "设置当文件在外部被修改,自动更新该文件

set mouse=a "设置在任何模式下鼠标都可用

set nobackup "设置不生成备份文件

"set go= "不要图形按钮

set guioptions-=T " 隐藏工具栏

"set guioptions-=m " 隐藏菜单栏

"===========================

"查找/替换相关的设置

"===========================

set hlsearch "高亮显示查找结果

set incsearch "增量查找

"===========================

"状态栏的设置

"===========================

set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%] "显示文件名:总行数,总的字符数

set ruler "在编辑过程中,在右下角显示光标位置的状态行

"===========================

"代码设置

"===========================

syntax enable "打开语法高亮

syntax on "打开语法高亮

set showmatch "设置匹配模式,相当于括号匹配

set smartindent "智能对齐

"set shiftwidth=4 "换行时,交错使用4个空格

set autoindent "设置自动对齐

set ai! "设置自动缩进

"set cursorcolumn "启用光标列

set cursorline "启用光标行

set guicursor+=a:blinkon0 "设置光标不闪烁

set fdm=indent "

"插件管理

set rtp+=$VIM\vimfiles\bundle\Vundle.vim\

call vundle#begin()

Plugin 'VundleVim/Vundle.vim'

Plugin 'scrooloose/nerdtree'

Plugin 'jistr/vim-nerdtree-tabs'

"Plugin 'Xuyuanp/nerdtree-git-plugin'

Plugin 'kien/ctrlp.vim'

Plugin 'eshion/vim-sync'

call vundle#end()

" 关闭NERDTree快捷键

map t :NERDTreeToggle

" 显示行号

let NERDTreeShowLineNumbers=1

let NERDTreeAutoCenter=1

" 是否显示隐藏文件

let NERDTreeShowHidden=1

" 设置宽度

let NERDTreeWinSize=21

" 在终端启动vim时,共享NERDTree

let g:nerdtree_tabs_open_on_console_startup=1

" 忽略一下文件的显示

let NERDTreeIgnore=['\.pyc','\~$','\.swp']

" 显示书签列表

let NERDTreeShowBookmarks=1|

遇到几个错误的地方及方法 提示一下

“设置文件的代码形式 utf8
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
setfileencodings=ucs-bom,utf-8,chinese,cp936

“vim的菜单乱码解决
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

“vim提示信息乱码的解决
language messages zh_CN.utf-8