这篇文章次要讲的是 vim 的简略配置,绝对于 vim 内置的一些快捷键和性能,==vim 的客制化 == 才是 vim 的灵魂,也是 vim 存活 31 年仍被热衷的起因。
如果你还不理解 vim 的基本操作和体系,我倡议你看一下我上一篇文章:
vim 配置全攻略(1) —— vim 的基本操作
还是倡议大家踊跃评论,如果有什么中央有误,也心愿大家斧正。
vim & neovim
在配置 vim 之前我想说一下 vim
和neovim
,置信大多数晓得 vim 的小伙伴都据说或应用过 neovim,那明天我就发表一下我对 vim 和 neovim 的简介,以及我的抉择。
首先无论是 vim 还是 neovim 都是一款十分不错的编辑器,他们两款编辑器都有长处,不能说哪个好哪个不好,只能说每个人的需要不同罢了。
如果你常常写 C 的话,那么 vim 是你一个不错的抉择,因为 ta 的体系和性能更加齐备,用户体系更加宏大;如果你是 java 架构师或者常常写 java 程序的话,那么 neovim 可能对你更加敌对(不过我还是倡议写 java 的小伙伴应用 IDEA,再不济 vscode 也是一个不错的抉择)。
现在,neovim 的呈现以及展现出的活力,曾经威逼到了 vim,使 vim 的更新又绝对频繁起来,我感觉 vim 成为一个被动的追赶者,去模拟 neovim 的一些性能,己经证实了 ta 的 ” 廉颇老矣 ”。
这个论断不是相对的,我也不否定 vim 的弱小和 neovim 的激进。
我当初用的是 neovim,因为 ta 更加迅速,现代化,我的体验更好。
vim 的配置
配置文件
首先,咱们想要配置 vim 和 neovim,其 原理 就是在 vim 和 neovim 的配置文件中,写如 vim 反对的相干语法,从而达到想要的成果。
vim 和 neovim 的配置文件地位各不相同:
- vim:
~/.vimrc
- neovim:
~/.config/nvim/init.vim
这是就是 vim 和 neovim 配置文件的地位,当然这里申明一下 neovim 的配置文件也能够是 init.lua
,然而lua 的配置难度更大,须要对 neovim 有肯定理解,所以这里就以 .vim
为例。
这里补充一下在你装置完 neovim 之后,你会发现是没有 ~/.config/nvim
这个文件夹的,所以须要你本人创立:
# vim
vim ~/.vimrc
# neovim
mkdir ~/.config/nvim
nvim ~/.config/nvim/init.vim
配置
首先在你关上 vim 或者 neovim 之后,你会发现 ta 们相似 windows 上的记事本,没有什么非凡之处,很难设想这就是赫赫有名的编辑器之神。
行号
代码编辑器和文本编辑器之间最显著的区别就是行号,ta 能够帮忙咱们在报错之后疾速的寻找 Bug 和跳转。在 vim 和 neovim 中设置行号的形式有两种:
长期行号
顾名思义,长期行号就是 ‘一次性’
的行号,仅仅只能显示一次,启动办法也很简略,只须要在命令模式中输出 set number
即可,之后你会发现呈现了行号。
永恒行号
如果想永恒设置行号,只需在配置文件输出 set number
即可。
这里补充一下,在上一篇文章中,我曾说过能够通过 *hjkl
来进行疾速挪动,然而在对于一些较远的行来说并不敌对,所以便呈现了一种非凡的行号—— 绝对行号,将 set number 改为 set relativenumber 即可。
这样咱们想要跳转到哪一行,只需输出其左侧的数字挪动即可。
然而这样也有一个弊病,就是咱们无奈查看行号了,于是咱们就能够 set number
和set relativenumber
一起应用,这样就能够兼得了。
缩进 & 缩进显示
如果你在应用 vim 和 neovim 之后你会发现,ta 们的缩进并不规范,所以咱们须要调整缩进到咱们想要的格数上。
set tabstop=4
set softtabstop=4
set shiftwidth=4
这样你就会发现,缩进变为了 4 格。
而后你会发现另一个缩进问题:在你写货色的时候 ta 没有方法主动缩进,须要手动的按下 Tab 键,这并不是一个大问题,然而十分影响情绪。
set noexpandtab
set nu
set autoindent
set cindent
这样设置,之后你就会发现 ta 能够主动缩进了,至于为什么这么设置,我只能说这就是.vim 的语法,想记就记下来,不相记复制粘贴也没关系,毕竟谁也不会天天配置 vim。
说完了缩进之后,我没来说缩进显示,缩进显示能够让咱们明确的看到缩进的次数,对于咱们开发十分敌对。
set list
set listchars=tab:\|\,trail:·
这样咱们就可一看到缩进了,当然在之后的文章中我会举荐一个缩进显示插件,性能会比这个弱小一些。
高亮
对于语法高亮,咱们能够轻松地浏览,以及分辨这个单词的类型。
syntax on
这样咱们就能够看见语法高亮了。
如果你感觉这个高亮不适宜你,咱们有两种形式更改高亮色彩:一是设置主题,这个我会放到之后和桌面么丑化,一起说;二是 highlight 设置,如:
highlight Function cterm=bold,underline ctermbg=red ctermfg=green
这样就能够设置色彩了,不过还是倡议大家装置主题,应为本人丑化是没有止境的。
编码
与 Vim 编码无关的变量包含:encoding
、fileencoding
、termencoding
。
encoding
选项用于缓存的文本、寄存器、Vim 脚本文件等;fileencoding
选项是 Vim 写入文件时采纳的编码类型;-
termencoding
选项示意输入到终端时采纳的编码类型。set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8
突出显示以后行 / 列
" 突出显示以后行 set cursorline set cul 'cursorline 的缩写模式' # 突出显示当前列 set cursorcolumn set cuc 'cursorcolumn 的缩写模式'
启用鼠标
set mouse=a
set selection=exclusive
set selectmode=mouse,key
括号匹配
set showmatch
键盘映射
键盘映射是 vim 中十分重要的一种配置形式,ta 能够将一些你不喜爱的快捷键批改为你舒服的键位。
在上一篇文章,咱们说过 vim 有四种模式,所以键位也有四种示意办法对应四种不同的模式:
- map
- noremap/nmap
- imap
- vmap
- cmap
- unmap
map
与nmap
的成果类似,都是在 == 失常模式 == 辨认。imap
是在 == 编辑模式 == 下的键盘映射。- vmap 是 == 可视模式 == 下的键盘映射。
- cmap 是 == 命令模式 == 下的键盘映射。
- unmap 则是勾销某一个映射。
举个例子,如果咱们想要在失常模式下将 F10 设置为清空全部内容:
nmap <F10> :1,$d<CR>
在这里咱们能够看出设置键盘映射的格局为:
*map < 设置的按键 > < 你在按下按键后执行的操作 >
那么当前在咱们按下 <F10>
后,vim 就是将 <F10>
按键本义为 :1,$d
;:
会进入 命令模式 ,并且在:
后输出 1,$d
,<CR>
为回车即执行。
也可在命令模式中输出 map 来查看你设置的键盘映射。
在说完了这些之后明天 vim 的根本配置就说完了,最初把我的 neovim(.vim)文件附在这里,也心愿大家提出更好的倡议:
我的 vim 配置文件