全世界最好的编辑器VIM之Windows配置(gvim)

2023-11-06

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

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

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

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

20160615112140

 

1、安装GVIM

A、下载 GVIM

B、运行下载的安装程序,并按照说明一步一步正确安装即可
我这里安装的路径是 C:\Program Files (x86)\Vim\

QQ图片20160615095324

桌面图标:

20160615095507

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 ;如图

20160615100453

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

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

20160615101212

(2)、配置 curl

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

20160615101605

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

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

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

20160615101910

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

20160615103128

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
安装完成后插件就能用了

20160615105239

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路径可以自行查询一下

配置如下

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 : gigo类似
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

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 文件,如下

ctrlp-vim-demo

最后,附上我的_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 <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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

全世界最好的编辑器VIM之Windows配置(gvim) 的相关文章

随机推荐

  • vue国际化处理

    什么是Vue国际化 国际化就是你的页面要面向的群众使用的语言不只是中文 还有其他语言 在面对其他人群时要切换页面的语言 说起来很高大上 实际上还是没有那么高级的 文件的组织 一般是在大型项目中使用的 我们需要将相关文件放置在哪里 建议是新开
  • LinearAlgebraMIT_11_MatrixSpace/Rank==1‘sMatrix/SmallWorldGraph

    x 1 矩阵空间 向量空间定义 满足加法和数乘的封闭性 就类似向量空间一样 也存在着矩阵空间的定义 举个例子 例如所有的3x3的矩阵构成的矩阵空间M 它的纬度就是9 如 1 0 0 1 对于M中所有对称矩阵组成子空间N1 维度为6 M中所有
  • java.sql.SQLException: No suitable driver found for jdbc:mysql:///XXX

    用Maven的父工程搭建DAO模块 并执行测试类 测试数据库查询时 报错 定位到DAO模块的StudentDao java源文件 发现是数据库连接出错 之前我也遇到类似问题 解决方案是在db properties文件中对jdbc url配置
  • pandas(series和读取外部数据)

    一 pandas概述 1 pandas介绍 pandas 是基于NumPy 的一种工具 该工具是为了解决数据分析任务而创建的 Pandas 纳入了大量库和一些标准的数据模型 提供了高效地操作大型数据集所需的工具 pandas提供了大量能使我
  • 期货逼仓攻略之郑商所版

    为什么80 的码农都做不了架构师 gt gt gt 新手入门 逼仓是期货交易所会员或客户利用资金优势 通过控制期货交易头寸或垄断可供交割的现货商品 故意抬高或压低期货市场价格 超量持仓 交割 迫使对方违约或以不利的价格平仓以牟取暴利的行为
  • 用简单的代码实现简易的rxjs的filter功能,帮助rxjs新手了解rxjs的操作符的工作原理。

    最近学习rxjs 在边学习的过程中边总结 希望可以帮助到大家 我模仿rxjs的功能自己在编写简介的类rxjs 这样可以加深我对它的使用 也可以让新手更快速入门 先从最简单的observable对象将起 我们正常使用rxjs如下 var Rx
  • Java架构直通车——以JDBC为例谈双亲委派模型的破坏

    文章目录 引入 JDBC4 0之前 JDBC4 0之后 引入 java给数据库操作提供了一个Driver接口 public interface Driver Connection connect String url java util P
  • apache工程jakarta(雅加达)家族介绍

    Apache Ant Project Ant 众所周知 Ant 蚂蚁 是一套基于java的程序打造工具 Apache Avalon Project 阿瓦隆 Avalon Avalon 阿瓦隆 凯尔特族传说中的西方乐土岛 据说亚瑟王及其部下死
  • 【数据结构理论】图

    定义 图由顶点集V和边集E组成 线性表和树都可以是空的 但图不可为空 但图的边集可以是空集 E是有向边 无向边决定图是有向图 无向图 AB为两端点 E的集合若是无向边 则E A B 若E的集合是有向边 则E
  • datagrid控件讲解

    使用场景 软件 VisualStudio 视图引擎 Razor编辑器 后台编程语言 C 引入 table class easyui datagrid table 配置格式 function initGrid ttt datagrid 配置各
  • CobalStrike的部署(附带资源)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 CobalStrike是什么 二 CobalStrike的部署 总结 前言 作为刚入门网安的小白 挺久之前 就曾听说过CobalStrike这样的一个Re
  • 10LinuxC线程学习之pthread_detach函数,错误返回值分析及其案例

    1 pthread detach函数 int pthread detach pthread t thread 功能 1 实现线程分离 不再受主线程管理 由系统接任 线程结束后 其退出状态不由其他线程获取 而直接自己自动释放 网络 多线程服务
  • TypeScript 封装 Axios

    TypeScript 封装 Axios TypeScript 封装 Axios 为什么需要封装 axios 因为直接在项目中使用 axios axios 的 api 将会嵌入代码的各个地方 耦合程度太高 如果后期更换 Ajax 请求库 将会
  • QT学习笔记02信号与槽简介

    标准信号和槽 信号槽是 Qt 框架引以为豪的机制之一 所谓信号槽 实际就是观察者模式 当某个事件发生之后 比如 按钮检测到自己被点击了一下 它就会发出一个信号 signal 这种发出是没有目的的 类似广播 如果有对象对这个信号感兴趣 它就会
  • OpenTelemetry 项目解读

    点击一键订阅 云荐大咖 专栏 获取官方推荐精品内容 学技术不迷路 随着分布式应用越来越普遍 分布式应用需要依赖强大的可观测性设施来提供监控保障 强大的可观测性设施需要依赖高质量的遥测数据 虽然已经有许多开源或者商业供应商提供了遥测数据监测采
  • 华为eNSP实验-防火墙模拟配置(采用ping命令逐步分析)

    ensp防火墙模拟配置 采用ping命令逐步分析 1 各设备的IP地址配置 按如图所示配置好各个设备对应的IP地址 注意点 1 图中cloud2云处需要关联电脑上对应的虚拟网卡 2 实验中我使用的是华为USG6000V防火墙 需要下载软件包
  • 用批处理写修改注册表的命令

    一般书写格式 reg add 注册表路径 v 值名 t 要修改的数值类型 d 想要输入的数据 f 这个选项可根据情况自行添加 意为不用提示就强行改写现有注册表项 如果在批处理中不想显示出命令执行过程可以再reg前面加入 后面加上 gt nu
  • 使用python安装nginx

    肯定有小伙伴疑问哈 安装nginx仅仅需要几条命令如果只是单单安装简单使用os system os Popen几乎就足以完成 那么为什么要写这么多呢 笔者在写这段代码的时候一个是想让代码更加美观 显得比较专业 另一方面无论安装什么 配置什么
  • 前端 js实现模糊搜索

    前端 js实现模糊搜索 template
  • 全世界最好的编辑器VIM之Windows配置(gvim)

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