1、安装Vim和基本插件
$ sudo apt-get install vim vim-scripts vim-doc
其中vim-scripts是vim的一些基本插件,包括语法高亮的支持、缩进等等。
$ sudo apt-get install vim vim-scripts vim-doc
其中vim-scripts是vim的一些基本插件,包括语法高亮的支持、缩进等等。
2、Vim配置文件
Vim强大的功能基本上来源两个地方:Vim插件以及Vim配置文件。
Vim本身的系统配置文件夹是在/usr/share/vim/和/etc/vim/两个文件夹下。一般情况下,我们不会去改变这两个文件夹下的配置文件,而是在用户文件夹/home/USERNAME(USERNAME为用户名)下建立自己的配置文件。进入用户文件夹(/home/USERNAME/)之后,用gedit新建一个名叫.vimrc的文件:
$ gedit .vimrc
Vim本身的系统配置文件夹是在/usr/share/vim/和/etc/vim/两个文件夹下。一般情况下,我们不会去改变这两个文件夹下的配置文件,而是在用户文件夹/home/USERNAME(USERNAME为用户名)下建立自己的配置文件。进入用户文件夹(/home/USERNAME/)之后,用gedit新建一个名叫.vimrc的文件:
$ gedit .vimrc
使用gedit主要是为了方便大段大段的文字粘贴!
然后把下面的文字拷贝进这个文件之后保存:
- " This line should not be removed as it ensures that various options are
- " properly set to work with the Vim-related packages available in Debian.
- debian.vim
-
- " Uncomment the next line to make Vim more Vi-compatible
- " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
- " options, so any other options should be set AFTER setting 'compatible'.
- set nocompatible
-
- " Vim5 and later versions support syntax highlighting. Uncommenting the
- " following enables syntax highlighting by default.
- if has("syntax")
- syntax on " 语法高亮
- endif
- colorscheme ron " elflord ron peachpuff default 设置配色方案,vim自带的配色方案保存在/usr/share/vim/vim72/colors目录下
-
- " detect file type
- filetype on
- filetype plugin on
-
- " If using a dark background within the editing area and syntax highlighting
- " turn on this option as well
- set background=dark
-
- " Uncomment the following to have Vim jump to the last position when
- " reopening a file
- if has("autocmd")
- au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
- "have Vim load indentation rules and plugins according to the detected filetype
- filetype plugin indent on
- endif
-
- " The following are commented out as they cause vim to behave a lot
- " differently from regular Vi. They are highly recommended though.
-
- "set ignorecase " 搜索模式里忽略大小写
- "set smartcase " 如果搜索模式包含大写字符,不使用 'ignorecase' 选项。只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用。
- set autowrite " 自动把内容写回文件: 如果文件被修改过,在每个 :next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令时进行;用 :buffer、CTRL-O、CTRL-I、'{A-Z0-9} 或 `{A-Z0-9} 命令转到别的文件时亦然。
- set autoindent " 设置自动对齐(缩进):即每行的缩进值与上一行相等;使用 noautoindent 取消设置
- "set smartindent " 智能对齐方式
- set tabstop=4 " 设置制表符(tab键)的宽度
- set softtabstop=4 " 设置软制表符的宽度
- set shiftwidth=4 " (自动) 缩进使用的4个空格
- set cindent " 使用 C/C++ 语言的自动缩进方式
- set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s "设置C/C++语言的具体缩进方式
- "set backspace=2 " 设置退格键可用
- set showmatch " 设置匹配模式,显示匹配的括号
- set linebreak " 整词换行
- set whichwrap=b,s,<,>,[,] " 光标从行首和行末时可以跳到另一行去
- "set hidden " Hide buffers when they are abandoned
- set mouse=a " Enable mouse usage (all modes) "使用鼠标
- set number " Enable line number "显示行号
- "set previewwindow " 标识预览窗口
- set history=50 " set command history to 50 "历史记录50条
-
-
- "--状态行设置--
- set laststatus=2 " 总显示最后一个窗口的状态行;设为1则窗口数多于一个的时候显示最后一个窗口的状态行;0不显示最后一个窗口的状态行
- set ruler " 标尺,用于显示光标位置的行号和列号,逗号分隔。每个窗口都有自己的标尺。如果窗口有状态行,标尺在那里显示。否则,它显示在屏幕的最后一行上。
-
- "--命令行设置--
- set showcmd " 命令行显示输入的命令
- set showmode " 命令行显示vim当前模式
-
- "--find setting--
- set incsearch " 输入字符串就显示匹配点
- set hlsearch
配置文件中,以单个双引号开头的文字为注释。
在Ubuntu14.04下注意需要将第三行注释掉!!!不然无法启动vim,配置完成后,可以看到的明显变化是出现了“行数”
3、管理vim插件——vim-addons
通过vim-addons可以管理vim插件。在执行sudo apt-get install vim vim-scripts vim-doc时,一般会自动安装上vim-addons。若未安装可通过sudo apt-get install vim-addon-manager手动安装。安装完成后,就可以用vim-addons管理vim插件了。
查看系统中已有vim-scripts中包含的插件及其状态:
$ vim-addons status
上面我们介绍了如何独立于系统配置文件之外,建立自己的Vim配置文件。当我们自己下载安装Vim插件的时候,也可以另外建立目录,放置我们自己的插件。这个目录一般为/home/user/.vim
vim-addons install xxxx
通过vim-addons可以管理vim插件。在执行sudo apt-get install vim vim-scripts vim-doc时,一般会自动安装上vim-addons。若未安装可通过sudo apt-get install vim-addon-manager手动安装。安装完成后,就可以用vim-addons管理vim插件了。
查看系统中已有vim-scripts中包含的插件及其状态:
$ vim-addons status
上面我们介绍了如何独立于系统配置文件之外,建立自己的Vim配置文件。当我们自己下载安装Vim插件的时候,也可以另外建立目录,放置我们自己的插件。这个目录一般为/home/user/.vim
vim-addons install xxxx
关于vim-addons命令的详细用法,可以通过“man vim-addons”查看其帮助文档
4、标签浏览器Taglist
Taglist用于列出了当前文件中的所有标签(宏, 全局变量, 函数名等)
安装Taglist:
$ vim-addons install taglist
配置Taglist
在vim配置文件/home/USERNAME/.vimrc中加入如下的配置:
Taglist用于列出了当前文件中的所有标签(宏, 全局变量, 函数名等)
安装Taglist:
$ vim-addons install taglist
配置Taglist
在vim配置文件/home/USERNAME/.vimrc中加入如下的配置:
- "-- Taglist setting --
- let Tlist_Ctags_Cmd='ctags' "因为我们放在环境变量里,所以可以直接执行
- let Tlist_Use_Right_Window=1 "让窗口显示在右边,0的话就是显示在左边
- let Tlist_Show_One_File=0 "让taglist可以同时展示多个文件的函数列表
- let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏
- let Tlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动推出vim
- "是否一直处理tags.1:处理;0:不处理
- let Tlist_Process_File_Always=1 "实时更新tags
- let Tlist_Inc_Winwidth=0
进入vim后用命令
":Tlist"打开/关闭taglist窗口
5、文件浏览器和缓冲区管理器WinManager
WinManager用于管理文件浏览器和缓冲区(buffer)。2.0以上版本的WinManager还可以管理其他IDE类型插件,不过要用户在插件中增加一些辅助变量和hook来支持WinManager(帮助文档有相关说明)。
Taglist插件本身就提供了对WinManager的支持,不需要我们去修改它。用 WinManager来管理文件浏览器netrw和标签浏览器Taglist。netrw是标准的vim插件, 已经随vim一起安装进系统里了, 不需要我们自行下载安装。
安装WinManager:
$ vim-addons install winmanager
配置WinManager:
在vim配置文件/home/USERNAME/.vimrc中加入如下的配置:
常用命令:
:WMToggle 打开/关闭WinManage,不过我们在配置文件.vimrc中做了快捷键映射,所以直接按wm就可以打开/关闭WinManage
文件浏览器命令(在文件浏览器窗口中使用)
<enter>或双击 如果光标下是目录, 则进入该目录; 如果光标下文件, 则打开该文件
<tab> 如果光标下是目录, 则进入该目录; 如果光标下文件, 则在新窗口打开该文件
<F5> 刷新列表
- 返回上一层目录
c 使浏览目录成为vim当前工作目录
d 创建目录
D 删除当前光标下的目录或文件
i 切换显示方式
R 文件或目录重命名
s 选择排序方式
r 反向排序列表
x 定制浏览方式, 使用你指定的程序打开该文件
WinManager用于管理文件浏览器和缓冲区(buffer)。2.0以上版本的WinManager还可以管理其他IDE类型插件,不过要用户在插件中增加一些辅助变量和hook来支持WinManager(帮助文档有相关说明)。
Taglist插件本身就提供了对WinManager的支持,不需要我们去修改它。用 WinManager来管理文件浏览器netrw和标签浏览器Taglist。netrw是标准的vim插件, 已经随vim一起安装进系统里了, 不需要我们自行下载安装。
安装WinManager:
$ vim-addons install winmanager
配置WinManager:
在vim配置文件/home/USERNAME/.vimrc中加入如下的配置:
- "-- WinManager setting --
- let g:winManagerWindowLayout='FileExplorer|TagList' " 设置我们要管理的插件
- "let g:persistentBehaviour=0 " 如果所有编辑文件都关闭了,退出vim
- nmap wm :WMToggle<cr>
:WMToggle 打开/关闭WinManage,不过我们在配置文件.vimrc中做了快捷键映射,所以直接按wm就可以打开/关闭WinManage
文件浏览器命令(在文件浏览器窗口中使用)
<enter>或双击 如果光标下是目录, 则进入该目录; 如果光标下文件, 则打开该文件
<tab> 如果光标下是目录, 则进入该目录; 如果光标下文件, 则在新窗口打开该文件
<F5> 刷新列表
- 返回上一层目录
c 使浏览目录成为vim当前工作目录
d 创建目录
D 删除当前光标下的目录或文件
i 切换显示方式
R 文件或目录重命名
s 选择排序方式
r 反向排序列表
x 定制浏览方式, 使用你指定的程序打开该文件
winmanager帮助文档
:help winmanager
netrw帮助文档
:help netrw
:help winmanager
netrw帮助文档
:help netrw
6、项目目录数管理器Project
Project插件是用来显示项目的目录树的,这个目录树默认保存在~/.vimprojects文件中。
安装Project:
$ vim-addons install project
Project目录树可以通过下面的步骤生成:
(1) 打开vim在命令模式下输入 :Project,在屏幕的最左边就会出现一个project框。不过因为没有初始化暂时是空的
(2)在命令模式下(不是插入模式)输入\C (大写的C),会出现下面这些信息:
Enter the Name of the Entry: xxxx (输入项目名称)
Enter the Absolute Directory to Load: /xxx/xxx/xxx (输入项目根目录的绝对路径)
Enter the CD parameter: . (“.”为当前目录)或者和项目根目录一致
Enter the File Filter: *.* (符合条件的源文件,可以是*.cpp/*.h等)
项目目录可以嵌套。而且更改之后在~/.vimprojects文件中就能看到内容,可以手动进行更改。
Project插件是用来显示项目的目录树的,这个目录树默认保存在~/.vimprojects文件中。
安装Project:
$ vim-addons install project
Project目录树可以通过下面的步骤生成:
(1) 打开vim在命令模式下输入 :Project,在屏幕的最左边就会出现一个project框。不过因为没有初始化暂时是空的
(2)在命令模式下(不是插入模式)输入\C (大写的C),会出现下面这些信息:
Enter the Name of the Entry: xxxx (输入项目名称)
Enter the Absolute Directory to Load: /xxx/xxx/xxx (输入项目根目录的绝对路径)
Enter the CD parameter: . (“.”为当前目录)或者和项目根目录一致
Enter the File Filter: *.* (符合条件的源文件,可以是*.cpp/*.h等)
项目目录可以嵌套。而且更改之后在~/.vimprojects文件中就能看到内容,可以手动进行更改。
7、quickfix命令集
通过quickfix命令集,你可在 Vim 内编译程序并直接跳转到出错位置进行修正。你可以接着重新编译并做修正,直到不再出错为止。
在vim配置文件/home/USERNAME/.vimrc中加入如下的配置:
通过quickfix命令集,你可在 Vim 内编译程序并直接跳转到出错位置进行修正。你可以接着重新编译并做修正,直到不再出错为止。
在vim配置文件/home/USERNAME/.vimrc中加入如下的配置:
- "-- QuickFix setting --
- " 按下F6,执行make clean
- map <F6> :make clean<CR><CR><CR>
- " 按下F7,执行make编译程序,并打开quickfix窗口,显示编译信息
- map <F7> :make<CR><CR><CR> :copen<CR><CR>
- " 按下F8,光标移到上一个错误所在的行
- map <F8> :cp<CR>
- " 按下F9,光标移到下一个错误所在的行
- map <F9> :cn<CR>
- " 以上的映射是使上面的快捷键在插入模式下也能用
- imap <F6> <ESC>:make clean<CR><CR><CR>
- imap <F7> <ESC>:make<CR><CR><CR> :copen<CR><CR>
- imap <F8> <ESC>:cp<CR>
- imap <F9> <ESC>:cn<CR>
帮助文档
:help usr_30
:help quickfix
下面的命令运行 "make" (包括你所给出的参数) 程序并捕捉其运行结果: >
:make {arguments}
如果编译时出现错误,按 <Enter>,回到vim界面,看不到出错信息了!这时,可以运行以下命令
:cw[indow]
打开quickfix窗口来查看出错信息,它会自动跳到第一处出错的地方。然后,你可以双击出错某一条出错信息,vim就会自动跳转到相应的出错位置
:cn[ext] 光标移到下一个错误所在的行
:cp[revious] 光标移到上一个错误所在的行
:cfirst 到第一处错误
:clast 到最后一处错误
:cc 空间不够时,Vim 会缩短出错信息。如果你想查看详细信息,可以使用此命令
:cl[ist] 列出所有出错信息的概览(只有那些含有文件名或行数的错误信息会被显示,需要查看那些并不含文件名或行数的信息可用“:cl[ist]!”命令)
:help usr_30
:help quickfix
下面的命令运行 "make" (包括你所给出的参数) 程序并捕捉其运行结果: >
:make {arguments}
如果编译时出现错误,按 <Enter>,回到vim界面,看不到出错信息了!这时,可以运行以下命令
:cw[indow]
打开quickfix窗口来查看出错信息,它会自动跳到第一处出错的地方。然后,你可以双击出错某一条出错信息,vim就会自动跳转到相应的出错位置
:cn[ext] 光标移到下一个错误所在的行
:cp[revious] 光标移到上一个错误所在的行
:cfirst 到第一处错误
:clast 到最后一处错误
:cc 空间不够时,Vim 会缩短出错信息。如果你想查看详细信息,可以使用此命令
:cl[ist] 列出所有出错信息的概览(只有那些含有文件名或行数的错误信息会被显示,需要查看那些并不含文件名或行数的信息可用“:cl[ist]!”命令)