vim是一款轻量级的编辑器,并且有着强大的插件群。其强大的自定义快捷键功能,可以让你不碰鼠标的情况下,实现各种编辑操作。
.vimrc
是vim的配置文件, 用户需要修改这个文件来对vim进行个性化设置
vimrc配置文件分系统配置和用户配置两种。
系统vimrc配置文件存放在Vim的安装目录,我的vim是8.0版本的,我的系统vimrc配置文件的路径为/usr/share/vim/vim80/.vimrc
。其中vim80
根据版本号不同,后面的数字也略微不同
用户vimrc文件,存放在用户主目录下~/.vimrc
。首次使用时,是没有这个文件的,需要用户自己创建 .vimrc文件
.vim文件夹是存放vim的资源文件夹,其所在目录为/usr/share/vim/vim80/.vim
你也可以在用户文件夹~/
下创建.vim
文件夹,这样,.vim文件夹下的资源只对当前用户有效。
以下是.vim文件夹下的目录结构
目录 | 用途 |
---|---|
autoload | 自动载入脚本(autoload scripts) |
colors | 配色方案,自定义主题需要这个文件夹 |
compiler | 编译命令:compiler使用的脚本文件 |
doc | 文档 |
ftplugin | 针对特定类型文件的插件(需要配合:filetype plugin命令使用) |
indent | 自动缩进定义文件 |
keymap | 命名格式为 {language}[-{layout}][_{encoding}].vim 的Keymap文件 |
lang | 界面显示语言文件(英文、中文等) |
macros | 宏示例(hanoi、maze、urm等),小工具(justify、matchit、swapmous等) |
plugin | 插件 |
syntax | 语法高亮度文件 |
tools | 工具(unicode、vimspell等) |
tutor | 入门教程 |
要配置你的vim就是要修改你的.vimrc
配置文件
切换到用户目录cd ~
打开.vimrc配置文件vim .vimrc
, 没有这个文件的话先创建mkdir .vimrc
下面是一些常用的配置
"自动开启语法高亮"
syntax enable
"设置字体"
"set guifont=dejaVu\ Sans\ MONO\ 10
set guifont=Courier_New:h10:cANSI
"设置主题样式"
"colorscheme desert
"高亮显示当前行"
set cursorline
hi cursorline guibg=#00ff00
hi CursorColumn guibg=#00ff00
"使用空格来替换Tab"
set expandtab
"设置所有的Tab和缩进为4个空格"
set tabstop=4
"设定<<和>>命令移动时的宽度为4"
set shiftwidth=4
"使得按退格键时可以一次删除4个空格"
set softtabstop=4
set smarttab
"缩进,自动缩进(继承前一行的缩进)"
"set autoindent 命令打开自动缩进,是下面配置的缩写
"可使用autoindent命令的简写,即“:set ai”和“:set noai”
"还可以使用“:set ai sw=4”在一个命令中打开缩进并设置缩进级别
set ai
set cindent
"智能缩进"
set si
"自动换行”
set wrap
"设置软宽度"
set sw=4
"行内替换"
set gdefault
Vim 界面
"显示标尺"
set ruler
"设置命令行的高度"
set cmdheight=1
"显示行数"
set nu
"不要图形按钮"
set go=
"设置魔术"
set magic
"关闭遇到错误时的声音提示"
"关闭错误信息响铃"
set noerrorbells
"关闭使用可视响铃代替呼叫"
set novisualbell
"高亮显示匹配的括号([{和}])"
set showmatch
"匹配括号高亮的时间(单位是十分之一秒)"
set mat=2
"搜索逐字符高亮"
set hlsearch
set incsearch
"搜索时不区分大小写"
"还可以使用简写(“:set ic”和“:set noic”)"
set ignorecase
"用浅色高亮显示当前行"
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul
"输入的命令显示出来,看的清楚"
set showcmd
"设置编码"
set encoding=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"设置文件编码"
set fileencodings=utf-8
"设置终端编码"
set termencoding=utf-8
"设置语言编码"
set langmenu=zh_CN.UTF-8
set helplang=cn
"在处理未保存或只读文件的时候,弹出确认"
set confirm
"隐藏工具栏"
set guioptions-=T
"隐藏菜单栏"
set guioptions-=m
"显示状态栏(默认值为1,表示无法显示状态栏)"
set laststatus=2
"状态行显示的内容"
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
"设置背景颜色"
set background=dark
"共享剪切板"
set clipboard+=unnamed
"从不备份"
set nobackup
set noswapfile
"自动保存"
set autowrite
"关闭vi兼容模式"
set nocompatible
"设置历史记录步数"
set history=1000
"激活鼠标的使用"
set mouse=a
set selection=exclusive
set selectmode=mouse,key
**前缀键:**vim 自带有很多快捷键,再加上各类插件的快捷键,大量快捷键出现在单层空间中难免引起冲突,为缓解该问题,引入了前缀键 ,默认的前缀键是\
,你可以将let mapleader=";"
加入到你的配置文件,修改你的前缀键为;
。
映射: 通过映射,你可以定义自己的快捷键,让你的vim用起来更加顺手。
例如:在你的配置文件中加入nmap
当你在普通模式下,按下;wq
就会自动保存并退出文件。(前提是你将设置为了;
)
这是我的快捷键设定。
vim制定了多种映射规则
:imap
:只在 Insert 模式下生效的快捷键:cmap
:只在 Command-line 模式下生效:nmap
:只在 Normal 模式下生效:vmap
:只在 Visual 模式下生效:map
:在以上所有模式下生效:noremap
:包含 :inoremap
、:nnoremap
等,非递归映射按键对应名称
名称 | 对应按键 |
---|---|
|
Ctrl+s |
|
Shift+s |
|
退格键 |
|
制表键 |
或 或
|
回车 |
|
Escape |
|
空格键 |
|
上方向键 |
|
下方向键 |
|
左方向键 |
|
右方向键 |
|
功能键 F1 到 F12 |
#1, #2..#9,#0 |
F1 到 F10 |
|
Insert |
|
Delete |
|
Home |
|
End |
|
上翻页 |
|
下翻页 |
系统自带的主题
进入vim,在普通模式下输入 :colorscheme desert
切换主题。
你也可以在 .vimrc
文件中加入colorscheme desert
, 这样就不用每次都切换主题了。
vim内置了许多主题,在/usr/share/vim/vim80/colors
文件夹下,其中vim80
根据版本号不同,后面的数字也略微不同
colors文件夹下以.vim
结尾的都是vim的内置主题。
导入外部主题
以我正在用的gruvbox主题为例,教大家如何操作。
先切换目录 cd ~/.vim/color
没有这个目录的话就先自己创建mkdir -p ~/.vim/color
然后执行命令git https://github.com/morhetz/gruvbox.git
下载主题
然后执行 cp gruvbox/colors/gruvbox.vim ~/.vim/colors
将下载的主题文件复制到~/.vim/colors
文件夹下。
在~/.vimrc
文件中加入colorscheme=gruvbox
, 至此大功告成。
vim-plug 是一个插件管理器,我们可以通过vim-plug轻松管理我们的插件。
安装 vim-plug,以便它在启动时自动加载:
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
执行命令后 会将plug.vim文件下载到 ~/.vim/autoload/ 文件夹下
NERDTree是一款用来在Vim界面显示树形目录的文件管理器插件,可在vim操作界面进行文件打开、目录浏览操作。
在~/.vimrc
文件中,加入以下文本:
call plug#begin()
Plug 'preservim/NERDTree'
call plug#end()
启动 Vim ,然后键入如下命令:
:NERDTree
执行:Pluginstall时出现错误 Cannot write, ‘buftype’ option is set
解决方法:
可用下面的命名查看buftype的设置,当buftype=nofile时,不能保存文件,只有当buftype=空时,才可以保存
:verbose set buftype
修改buftype的方法:vim切换至ex模式,输入
:setlocal buftype=
输入:NERDTree
打开目录树
多次按"ctrl+w",光标自动在左右侧窗口切换
和编辑文件一样,通过h j k l移动光标定位
i和s可以水平分割或纵向分割窗口打开文件,前面加g类似go的功能
t 在标签页中打开
T 在后台标签页中打开
p 到上层目录
P 到根目录
K 到同目录第一个节点
J 到同目录最后一个节点
m 显示文件系统菜单(添加、删除、移动操作)
? 帮助
q 关闭
通过NERDTree 你可以很方便的打开多个文件,通过设置快捷键,可以让你很方便地在多个文件中切换。
"打开文件目录
nmap :NERDTree
"切换到下一个标签页
nmap :tabnext
"切换到上一个标签页
nmap :tabprevious
"关闭当前标签页
nmap :tabclose
"新建标签页
nmap :tabnew