Linux系列讲解 —— VIM配置与美化

目录

  • 1. Vim基本配置
  • 2. 插件管理器Vundle
    • 2.1 下载Vundle
    • 2.2 在vimrc中添加Vundle的配置
  • 3. Vundle的使用
    • 3.1 安装常用插件
      • 3.1.1 NERDTree
    • 3.2 卸载插件

1. Vim基本配置

1.1 配置文件
vim的配置文件有两处,请根据实际情况选择修改哪个。

(1) 全局配置文件( /etc/vim/vimrc )
此文件的配置会对系统内所有用户有效,包括root用户。

(2) 单用户配置文件( /home/xxx/.vimrc )
此文件的配置只对用户xxx有效。这里xxx代表用户名,比如用户名是sun,则修改/home/sun/.vimrc。如果当前登录用户就是sun,也可以直接修改~/.vimrc,因为在linux系统中符号 ~ 等同于用户的家路径,按照此处例子即为/home/sun。

1.2 基本配置
vimrc文件的注释要以双引号 ( " ) 开头。

syntax on                     " 设置语法高亮                                                                                                                                                                              
set nu                        " 设置行数显示
set tabstop=4                 " 设置tab缩进长度为4空格
set autoindent                " 设置自动缩进,适用所有类型文件
set cindent                   " 针对C语言的自动缩进功能,在C语言的编程环境中,比autoindent更加精准
set list lcs=tab:\|\          " 设置tab提示符号为 "|",注意最后一个反斜杠后面要留有空格
set cc=0                      " 设置高亮的列,这里设置为0,代表关闭
set cursorline                " 突出显示当前行

基本配置后,效果如下图
Linux系列讲解 —— VIM配置与美化_第1张图片

2. 插件管理器Vundle

vim可以安装插件来增加很多功能。这里推荐一个插件管理器Vundle,用来安装各种插件,比自己在网上一个个找插件安装更加高效。

2.1 下载Vundle

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

2.2 在vimrc中添加Vundle的配置

添加如下内容:

set nocompatible        " 关闭兼容模式(必须)。
filetype off            " 必须添加
set rtp+=~/.vim/bundle/Vundle.vim   " 设置包括vundle和初始化相关的runtime path

call vundle#begin()                 " vundle开始(必须)
Plugin 'VundleVim/Vundle.vim'       " 用来管理Vundle本身的插件(必须)
call vundle#end()                   " vundle结束(必须)

filetype plugin indent on           " 开启文件类型检测和缩进

注:
(1) 上面这段必须要写在vimrc文件的开头,否则安装插件会有问题。
(2) set compatible: 兼容模式,指去掉vim的扩展功能,尽量模拟vi的的行为。
(3) set nocompatible: 关闭兼容模式,使用Vundle时必须指定为此模式。
(4) vundle开始语句可以指定插件的安装路径,例如:call vundle#begin(‘~/some/path/here’)。
(5) 需要添加的插件放到 call vundle#begin()call vundle#end() 之间。
(6) 如果不想使用插件改变缩进,可以将 filetype plugin indent on 改为 filetype plugin on

3. Vundle的使用

3.1 安装常用插件

3.1.1 NERDTree

安装NERDTree后,vim就可以使用目录树了。
Linux系列讲解 —— VIM配置与美化_第2张图片

1. 在vimrc文件中添加下面语句。

Plugin 'scrooloose/nerdtree'   " 这句记得放到 call vundle#begin() 和 call vundle#end() 之间

" 下面几行是配置NERDTree插件的,正常也可以不用配置,看自己需求。
autocmd VimEnter * NERDTree    " 打开文件后自动打开NERDTree
map  :NERDTreeMirror   " 通过F2映射其他标签页
map <F3> :NERDTreeToggle<CR>   " 通过F3展开/收缩NERDTree
map f :NERDTreeFind        " 通过按键f跳转NERDTree光标到当前打开的文件

这里解释一下map :NERDTreeToggle语句:
map       代表F3按键
:NERDTreeToggle   代表末行模式下输入NERDTreeToggle
        代表换行

2. 使用vim打开一个文件,在末行模式下输入命令PluginInstall后回车,等待左下角出现Done!,则代表安装完成。
Linux系列讲解 —— VIM配置与美化_第3张图片

如果PluginInstall程序安装失败,可以使用 l (小写L) 查看安装日志。有时候会出现下载插件超时的情况,这种情况可以把下载源更改为国内镜像源(国内镜像源请查看Git系列讲解(六):Git使用中的问题汇总),方法如下:
.
(1) 替换国内镜像源(~/.vim/bundle/Vundle.vim/autoload/vundle/config.vim)
Linux系列讲解 —— VIM配置与美化_第4张图片>
(2) 注释掉下面内容(~/.vim/bundle/Vundle.vim/autoload/vundle/installer.vim)
Linux系列讲解 —— VIM配置与美化_第5张图片

3. NERDTree安装完后,使用(1)中设置的快捷键打开或关闭目录树。
Linux系列讲解 —— VIM配置与美化_第6张图片

4. NERDTree常用快捷键
(1) 文件打开,编辑窗口的切换 / 分割 / 关闭等:

快捷键 作用
o 或 回车(光标在文件上时) 打开文件,光标会跳转到新打开的窗口
go (光标在文件上时) 打开文件,光标不会跳转到新打开的窗口
ctrl+w+w 在各个窗口之间相互切换
ctrl+w+h 向左侧窗口切换
ctrl+w+j 向下侧窗口切换
ctrl+w+k 向上侧窗口切换
ctrl+w+l (小写L) 向右侧窗口切换
i 水平分割出一个新窗口,并显示光标所在位置的文件内容,光标会跳转到新开窗口
gi 与 i 不同处是光标不会跳转,依旧停留在nerdtree中
s 垂直分割出一个新窗口,并显示光标所在位置的文件内容,光标会跳转到新开窗口
gs 与 s 不同处是光标不会跳转,依旧停留在nerdtree中
光标在nerdtree窗口时,按q 关闭nerdtree,或者使用.vimrc中设置的快捷键

(2) NERDTree窗口内部行为

快捷键 作用
? 打开帮助页面,再次按 ? 可以退出帮助页面。不退出也行,打开帮助页面后,目录树在帮助文字后面,往下翻就行。
m 打开NERDTree菜单页,菜单页有很多实用功能,包括创建,删除,移动节点。还有在文件资源管理器打开当前节点等。

关闭菜单:按两次Esc键
Linux系列讲解 —— VIM配置与美化_第7张图片
o 或 回车(光标在目录上时) 展开或收缩该目录
O(光标在目录上时) 递归展开选中节点下的所有目录,目录级别多时很耗时,不建议使用。
x(光标在任意文件或目录上时) 父目录收缩,光标跳回父目录处
X(光标在任意文件或目录上时) 光标所在目录,其下所有子目录收缩。
I(大写i) 显示/关闭隐藏文件
C 切换NERDTree的根节点为光标所在路径
cd 设置CWD为NERDTree中光标所在路径
CD 切换NERDTree根节点为CWD路径,注意cd和CD是配合使用的。
u 设置当前根节点的上一级为新的根节点
U 设置当前根节点的上一级为新的根节点,但是维持原来目录打开的状态
p 光标移动到父目录
P 光标移动到当前nerdtree的根节点
G 光标移动到当前nerdtree的最后一项
ctrl+j 光标移动到下一个同级别节点
ctrl+k 光标移动到上一个同级别节点
K 根据当前光标所在文件或目录,移动光标到该文件或目录同等级的第一项
J 根据当前光标所在文件或目录,移动光标到该文件或目录同等级的最后一项

(3) NERDTree常用命令:

快捷键 作用
:NERDTree <路径> 新建并展开NERDTree,根节点为后面的路径参数。若不指定路径,则根节点默认为终端运行vim时的当前路径。
:NERDTreeClose 关闭NERDTree
:NERDTreeToggle 切换NERDTree的展开收缩

注:
1.NERDTreeToggle默认展开的NERDTree,内容与上次收缩前一样。如果之前没有打开过NERDTree,则此时相当于命令NERDTree,打开时根节点默认为终端运行vim时的路径。
2.NERDTreeToggle也可以后接路径参数,此时相当于命令NERDTree后接路径参数(NERDTree关闭状态运行才有效)。
:NERDTreeMirror 将其它标签页中的NERDTree镜像过来,有镜像关系的这些NERDTree,标签页上显示的NERDTree名称都是一样的(例如:NERD_tree_1),并且无论哪一个有变更,其他的NERDTree都会有一致性变化。

注:
1.上面的NERDTree命令相当于重新创建一个NERDTree实例,所以使用NERDTree命令会破坏镜像关系。
2.如果有多个不同的NERDTree(例如NERD_tree_1,NERD_tree_2),做镜像时会提示选择哪一个。
:NERDTreeFind <文件/目录路径> 1.光标在编辑窗口时,不加参数,运行命令后NERDTree窗口光标跳转到当前打开的文件处。
2.有参数时,就直接展开指定路径的父节点,同时光标也移动到指定路径的父节点。
3.光标在NERDTree窗口时,不加参数,运行命令后根节点跳转到终端路径的上一级,并展开这个路径节点(比如执行vim时,终端的当前路径为/home/sun/,那么执行NERDTreeFind后,根节点就变成了/home/,并且/home/sun/节点会展开)。

(4) 标签页

快捷键 作用
t 光标在nerdtree上的文件时,按 t 会新建标签来显示该文件,并且会跳转到新标签页。
T 光标在nerdtree上的文件时,按 T 会新建标签来显示该文件,但不会跳转到新标签页。
gt 向后切换标签页,不方便使用
gT 向前切换标签页,不方便使用
:tabp 向前切换标签页,建议在.vimrc中创建快捷键,方便使用
:tabn 向后切换标签页,建议在.vimrc中创建快捷键,方便使用
:tabnew <文件路径> 新建标签页,并在新标签页上打开指定文件
:tabc 关闭当前标签页
:tabo 关闭其他所有标签页
:tabs 查看所有标签页

(5) 书签
以下命令只在NERDTree的buffer中有效,并且操作的时候,光标要切换到NERDTree窗口才可使用。

快捷键 作用
:Bookmark <书签名称> 给光标处的文件或目录创建标签,标签名注意不要有空格。
:BookmarkToRoot <书签名称> 指定某目录书签作为根节点打开NERDTree。
:RevealBookmark <书签名称> 展开指定书签的所有上层结点,光标跳转到该书签的最上层节点。

注:
1.如果NERDTree中此标签已经展开,则此命令可以直接将光标跳转到该标签上。
2.书签只有在当前目录下时,才可使用此命令,否则会报错。
:OpenBookmark <书签名称> 如果是文件书签,则直接在编辑窗口打开该文件,NERDTree窗口不变。
如果是目录书签,则NERDTree窗口根节点变更为该目录,编辑窗口不变。

注: 不同于RevealBookmark,书签不在当前目录下时,也可以使用。
:EditBookmarks 打开~/.NERDTreeBookmarks文件,此文件是记录书签的文件。

注:
1.在~/.NERDTreeBookmarks中添加或删除书签后,需要使用ReadBookmarks命令重新读取,才可以生效。
2.即使运行ReadBookmarks后,NERDTree中书签显示也没有变化,需要使用NERDTree命令重新创建实例才能刷新。
:ReadBookmarks 重新读取~/.NERDTreeBookmarks书签文件
:WriteBookmarks 将书签写入文件~/.NERDTreeBookmarks,不过实测发现用不上这个命令,创建书签后会自动写入书签文件。
:ClearBookmarks <书签名称> 清除指定书签;如果未指定书签,则清除所有书签
:ClearAllBookmarks 清除所有标签

3.2 卸载插件

这里以NERDTree插件为例。
1. 在vimrc中删除或注释掉不用的插件。
2. vim打开一个文件,在末行模式下输入PluginClean后回车,再输入Y确认回车,等待左下角出现Done!,则代表卸载完成。
Linux系列讲解 —— VIM配置与美化_第8张图片

你可能感兴趣的:(Linux系统,1024程序员节)