全世界最好的編輯器VIM之Windows配置(gvim),vundle插件管理,NERDTree插件,ctrlp插件,vim-nerdtree-tabs插件等 。vim原本就是很強大,很方便的編輯器,再加上這些殺手級的插件,那就真的無敵了linux
官方網站:http://www.vim.orggit
平時習慣在linux上面使用vim,可是在windows下面,總感受沒有找到比vim好用的編輯器,因此,決定在windows下也安裝一個vim , ^^ go…github
先放一張我本身的vim配置效果圖,簡單而美麗vim
A、下載 GVIMwindows
B、運行下載的安裝程序,並按照說明一步一步正確安裝便可
我這裏安裝的路徑是 C:\Program Files (x86)\Vim\curl
桌面圖標:編輯器
注意:安裝vundle前提須要先安裝 git 和 配置curl工具
msysgit只是提供了git的核心功能,並且是基於命令行的字體
A、下載 msysgit網站
B、運行下載的安裝程序,並安裝說明一步一步正確安裝便可,須要注意的一點就是PATH環境選擇界面;
注意:在 adjusting your PATH environment (調整PATH環境)界面,咱們選擇第二個 run git from the windows command prompt ;如圖
C、安裝完成,打開cmd 命令提示符,運行命令( git –version )檢查git 版本號
D、msysgit 的安裝路徑是 C:\Program Files (x86)\Git (個人安裝路徑)
在windows下安裝curl與msysgit結合很是簡單,只須要在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
%
*
|
打開cmd 命令提示符,運行命令( curl –version )檢查curl 版本號
好了,咱們開始安裝 vundle 了,也很簡單
A、打開cmd 命令提示符,只要運行一條命令便可,咱們將vundle安裝到 C:\Program Files (x86)\Vim\vimfiles 目錄,目錄以下:
1
|
git
clone
https
:
//github.com/gmarik/Vundle.vim.git C:\Program Files (x86)\Vim\vimfiles\bundle\Vundle.vim
|
B、添加一個gvim目錄的 環境變量 $VIM ,步驟 :個人電腦->屬性->高級系統設置->高級->環境變量->新建 ;如圖
C、在vim啓動設定文件_vimrc添加 bundle的配置 ,vim的啓動設定文件 _vimrc (在linux文件名是 .vimrc , 在windows下面是 _vimrc);這裏直接配置一個全局的 _vimrc 文件,路徑:C:\Program Files (x86)\Vim\_vimrc , 添加以下內容
1
2
3
4
5
6
7
8
9
|
"插件管理
set rtp+=$VIM\vimfiles\bundle\Vundle.vim\
call vundle#begin()
"
let
Vundle
manage
Vundle
,
required
Plugin
'VundleVim/Vundle.vim'
"
my
bundle
plugin
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
安裝完成後插件就能用了
A、安裝和基本用法
經過vim插件管理工具Vundle安裝NERDTree和vim-nerdtree-tabs就很簡單,只須要將插件路徑添加到bundle的配置便可,添加兩行
Plugin ‘scrooloose/nerdtree’
Plugin ‘jistr/vim-nerdtree-tabs’
NERDTree和vim-nerdtree-tabs的 github路徑能夠自行查詢一下
配置以下
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'
call
vundle
#end()
|
打開一個gvim, 運行 :BundleInstall 便可
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
-
j
>和
<
C
-
k
>
:
在同級目錄和文件間移動,忽略子目錄和子文件
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 <leader>t :NERDTreeToggle<CR>
"
顯示行號
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
|
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 完整配置,我只安裝了這三個插件
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 <leader>t :NERDTreeToggle<CR>
"
顯示行號
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
set fileencodings=ucs-bom,utf-8,chinese,cp936
「vim的菜單亂碼解決
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
「vim提示信息亂碼的解決 language messages zh_CN.utf-8