Vim是在vi的基础上升级而来的,比vi更强大,提供代码补全,编译功能
【4】vim
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
Vimtutor
插件安装:
一、安装vundle
其中主要使用的一个插件是Vundle,是管理插件的插件。首先利用Git下载安装Vundle:
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
二、如何通过vundle安装插件
- vim-scripts仓库中的插件,可以直接使用Bundle 'L9'这样的格式配置
- github上其他用户的插件,使用Bundle 'hahaya/hahaya-vim.git'这样用户名加仓库名的方式配置(自己的插件全部使用这种方法配置)
三、vundle命令
- :BundleList -列举出列表中(.vimrc中)配置的所有插件
- :BundleInstall -安装列表中全部插件
- :BundleInstall! -更新列表中全部插件
- :BundleSearch foo -查找foo插件
- :BundleSearch! foo -刷新foo插件缓存
- :BundleClean -清除列表中没有的插件
- :BundleClean! -清除列表中没有的插件
四、配置.vimrc
上面已经解释了vundle的简单用法,下面配置.vimrc,然后介绍如何通过vundle管理插件,先在终端下执行vim ~/.vimrc命令,如果存在.vimrc则打开,不存在.vimrc则创建一个.vimrc并打开。在.vimrc中加入一些常用配置,我的.vimrc如下:
"====================================
" FileName: .vimrc
" Author: ce
" Version: 1.0.0
" Email: zbing3@gmail.com
" Blog: http://opslinux.com
" Date: 2013-7-23
"=============================================
"==================================
" Vim基本配置
"===================================
"关闭vi的一致性模式 避免以前版本的一些Bug和局限
set nocompatible
"配置backspace键工作方式
set backspace=indent,eol,start
"显示行号
set number
"设置在编辑过程中右下角显示光标的行列信息
set ruler
"当一行文字很长时取消换行
"set nowrap
"在状态栏显示正在输入的命令
set showcmd
"设置历史记录条数
set history=1000
"设置取消备份 禁止临时文件生成
set nobackup
set noswapfile
"突出现实当前行列
"set cursorline
"set cursorcolumn
"设置匹配模式 类似当输入一个左括号时会匹配相应的那个右括号
set showmatch
"设置C/C++方式自动对齐
set autoindent
set cindent
"开启语法高亮功能
syntax enable
syntax on
"指定配色方案为256色
set t_Co=256
"设置搜索时忽略大小写
set ignorecase
"设置在Vim中可以使用鼠标 防止在Linux终端下无法拷贝
set mouse=a
"设置Tab宽度
set tabstop=4
"设置自动对齐空格数
set shiftwidth=4
"设置按退格键时可以一次删除4个空格
set softtabstop=4
"设置按退格键时可以一次删除4个空格
set smarttab
"将Tab键自动转换成空格 真正需要Tab键时使用[Ctrl + V + Tab]
set expandtab
"设置编码方式
set encoding=utf-8
"自动判断编码时 依次尝试一下编码
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
"检测文件类型
filetype on
"针对不同的文件采用不同的缩进方式
filetype indent on
"允许插件
filetype plugin on
"启动智能补全
filetype plugin indent on
五、使用vundle安装插件
前面已经介绍了.vimrc的基本配置,那么该怎么使用vundle来管理vim插件呢,在.vimrc中添加如下内容启用vundle管理vim插件的功能,并使用vundle来配置一个名为vim-powline的状态栏加强插件
"开始使用Vundle的必须配置
set nocompatible
filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
"使用Vundle来管理Vundle
Bundle 'gmarik/vundle'
"PowerLine插件 状态栏增强展示
Bundle 'Lokaltog/vim-powerline'
"安装NERD-tree
Bundle 'The-NERD-tree'
"Vundle配置必须 开启插件
filetype plugin indent on
"vim有一个状态栏 加上powline则有两个状态栏
"设置powerline状态栏
set laststatus=2
set t_Co=256
let g:Powline_symbols='fancy'
set nocompatible
set enc=utf-8
let termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936
set guifont=Ubuntu\ Mono\ for\ Powerline\ 12
"设置NERDTree的选项
let NERDTreeMinimalUI=1
let NERDChristmasTree=1
" Give a shortcut key to NERD Tree
map :NERDTreeToggle
保存.vimrc文件,然后重新打开一个vim,在NORMAL模式下输入命令:BundleInstall,首次执行会要求输入github帐号和密码,等待插件下载完成,然后重新启动vim就会看见漂亮的状态栏插件~
六、使用vundle更新插件
使用vundle更新插件非常简单,只用打开一个vim,然后在NORMAL模式下输入命令:BundleInstall!
七、使用vundle卸载插件
使用vundle卸载插件也很简单,只需在.vimrc去掉绑定插件的命令及插件的配置(注释掉即可,以免以后会使用),假如需要卸载vim-powerline这个插件,首先在.vimrc中注释掉以下内容:
Bundle 'Lokaltog/vim-powerline'
"vim有一个状态栏 加上powline则有两个状态栏
set laststatus=2
set t_Co=256
let g:Powline_symbols='fancy'
保存.vimrc文件,重新打开一个vim,在NORMAL模式下输入命令:BundleClean,打开~/.vim/bundle已经看不到插件vim-powerline的相关文件,是不是很方便~
NERDTree
我们在介绍pathogen的时候,用一张图展示了插件的目录结构,这个目录结构就是基于NERDTree插件实现的。
1、下载地址
https://github.com/scrooloose/nerdtree
2、功能说明
NERDTree是Vim最常用的插件之一,可以在Vim运行时显示目录和文件结构,类似TextMate左侧的文件浏览器,但操作起来更为方便,你可以在手不离开键盘的情况下快速浏览文件,并在文件和文件夹之间进行切换。
3、安装
进入.vim/bundle目录
执行git clone git://github.com/scrooloose/nerdtree.git
下载完成后,在bundle下会多出一个nerdtree的文件夹,所有相关插件都在该文件夹下
在Vim中运行:Helptags来生成NERDTree的在线帮助tags
4、使用说明
打开Vim,输入:NERDTree,即可呼出执行Vim命令的当前目录的文件目录。为了方便使用,我在.vimrc中定义了快捷键,可以用Ctrl+t打开NERDTree,你可以定义自己习惯的快捷键。
NERDTree提供了丰富的键盘操作方式来浏览和打开文件,我简单介绍一些常用的快捷键:
和编辑文件一样,通过h j k l移动光标定位
o 打开关闭文件或者目录,如果是文件的话,光标出现在打开的文件中
go 效果同上,不过光标保持在文件目录里,类似预览文件内容的功能
i和s可以水平分割或纵向分割窗口打开文件,前面加g类似go的功能
t 在标签页中打开
T 在后台标签页中打开
p 到上层目录
P 到根目录
K 到同目录第一个节点
J 到同目录最后一个节点
m 显示文件系统菜单(添加、删除、移动操作)
? 帮助
q 关闭
想了解更多操作方式,可以通过? 查看详细的帮助信息。
"====================================
" FileName: .vimrc
" Author: ce
" Version: 1.0.0
" Email: zbing3@gmail.com
" Blog: http://opslinux.com
" Date: 2013-7-23
"============================================= "==================================
" Vim基本配置
"=================================== "关闭vi的一致性模式 避免以前版本的一些Bug和局限
set nocompatible
"配置backspace键工作方式
set backspace=indent,eol,start "显示行号
set number
"设置在编辑过程中右下角显示光标的行列信息
set ruler
"当一行文字很长时取消换行
set nowrap "在状态栏显示正在输入的命令
set showcmd "设置历史记录条数
set history= "设置取消备份 禁止临时文件生成
set nobackup
set noswapfile "突出现实当前行列
set cursorline
set cursorcolumn "设置匹配模式 类似当输入一个左括号时会匹配相应的那个右括号
set showmatch "设置C/C++方式自动对齐
set autoindent
set cindent "开启语法高亮功能
syntax enable
syntax on "指定配色方案为256色
set t_Co= "设置搜索时忽略大小写
set ignorecase "设置在Vim中可以使用鼠标 防止在Linux终端下无法拷贝
set mouse=a "设置Tab宽度
set tabstop=
"设置自动对齐空格数
set shiftwidth=
"设置按退格键时可以一次删除4个空格
set softtabstop=
"设置按退格键时可以一次删除4个空格
set smarttab
"将Tab键自动转换成空格 真正需要Tab键时使用[Ctrl + V + Tab]
set expandtab "设置编码方式
set encoding=utf-
"自动判断编码时 依次尝试一下编码
set fileencodings=ucs-bom,utf-,cp936,gb18030,big5,euc-jp,euc-kr,latin1 "检测文件类型
filetype on
"针对不同的文件采用不同的缩进方式
filetype indent on
"允许插件
filetype plugin on
"启动智能补全
filetype plugin indent on "开始使用Vundle的必须配置
set nocompatible
filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc() "使用Vundle来管理Vundle
Bundle 'gmarik/vundle' "PowerLine插件 状态栏增强展示
Bundle 'Lokaltog/vim-powerline'
"安装NERD-tree
Bundle 'The-NERD-tree' "Vundle配置必须 开启插件
filetype plugin indent on "vim有一个状态栏 加上powline则有两个状态栏
"设置powerline状态栏 set laststatus=
set t_Co=
let g:Powline_symbols='fancy'
set nocompatible
set enc=utf-
let termencoding=&encoding
set fileencodings=utf-,gbk,ucs-bom,cp936
set guifont=Ubuntu\ Mono\ for\ Powerline\ "设置NERDTree的选项
let NERDTreeMinimalUI=
let NERDChristmasTree=
" Give a shortcut key to NERD Tree
"map :NERDTreeToggle
"nmap <F3> :NERDTree <CR>
nnoremap <F10> :exe 'NERDTreeToggle'<CR>
上面home目录下vim的配置文件
ctrl+w在NERDTree的左右进行切换