2019-08-16

全世界最好的编辑器VIM之Windows配置(gvim),vundle插件管理,NERDTree插件,ctrlp插件,vim-nerdtree-tabs插件等 。vim本来就是很强大,很方便的编辑器,再加上这些杀手级的插件,那就真的无敌了

官方网站:http://www.vim.org

平时习惯在linux上面使用vim,但是在windows下面,总感觉没有找到比vim好用的编辑器,所以,决定在windows下也安装一个vim , ^^ go…

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

image

1、安装GVIM

A、下载GVIM

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

image

我这里安装的路径是 C:\Program Files (x86)\Vim\

桌面图标:

image

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

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

(1)、安装git客户端:msysgit

msysgit只是提供了git的核心功能,而且是基于命令行的

A、下载msysgit

B、运行下载的安装程序,并安装说明一步一步正确安装即可,需要注意的一点就是PATH环境选择界面;

注意:在 adjusting your PATH environment (调整PATH环境)界面,我们选择第二个run git from the windows command prompt ;如图

C、安装完成,打开cmd 命令提示符,运行命令( git –versi

image

on )检查git 版本号

image

D、msysgit 的安装路径是 C:\Program Files (x86)\Git (我的安装路径)

image

(2)、配置 curl

在windows下安装curl与msysgit结合非常简单,只需要在git的cmd目录创建文件curl.cmd即可

路径:C:\Program Files\Git\cmd\curl.cmd ,文件内容如下

@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 版本号


image.png

好了,我们开始安装 vundle 了,也很简单

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

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

git clone https://github.com/gmarik/Vundle.vim.git C:\Program Files (x86)\Vim\vimfiles\bundle\Vundle.vim
image.png

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


image.png

我没有建立这个环境变量,只是在$HOME下的默认文件

C、在vim启动设定文件_vimrc添加 bundle的配置 ,vim的启动设定文件 _vimrc (在linux文件名是 .vimrc , 在windows下面是 _vimrc);这里直接配置一个全局的 _vimrc 文件,路径:C:\Program Files (x86)\Vim_vimrc , 添加如下内容

下面这个script中,rtp中是反斜杠,我试了一下,正斜杠也没有问题。

"插件管理
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

安装完成后插件就能用了


image.png

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

A、安装和基本用法

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

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

NERDTree和vim-nerdtree-tabs的 github路径可以自行查询一下

配置如下

"插件管理
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的一些基本操作快捷键

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

" 关闭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

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

A、安装和基本用法

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

"插件管理
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 完整配置,可参考

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

setfileencodings=ucs-bom,utf-8,chinese,cp936

**“vim的菜单乱码解决**

source $VIMRUNTIME/delmenu.vim

source $VIMRUNTIME/menu.vim

**“vim提示信息乱码的解决**

language messages zh_CN.utf-8
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容