头图

这篇文章主要讲的是vim的简单配置,相对于vim内置的一些快捷键和功能,==vim的客制化==才是vim的灵魂,也是vim存活31年仍被热衷的原因。

如果你还不了解vim的基本操作和体系,我建议你看一下我上一篇文章:
vim配置全攻略(1) —— vim的基本操作

还是建议大家积极评论,如果有什么地方有误,也希望大家斧正。

vim & neovim

在配置vim之前我想说一下vimneovim,相信大多数知道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 numberset 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编码有关的变量包括:encodingfileencodingtermencoding

  • 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
  1. mapnmap的效果相似,都是在==正常模式==识别。
  2. imap是在==编辑模式==下的键盘映射。
  3. vmap是==可视模式==下的键盘映射。
  4. cmap是==命令模式==下的键盘映射。
  5. unmap则是取消某一个映射。

举个例子,如果我们想要在正常模式下将F10设置为清空全部内容:

nmap <F10> :1,$d<CR>

在这里我们可以看出设置键盘映射的格式为:

*map <设置的按键> <你在按下按键后执行的操作>

那么以后在我们按下<F10>后,vim就是将<F10>按键转义为:1,$d: 会进入命令模式 ,并且在后输入1,$d,<CR>为回车即执行。

也可在命令模式中输入map来查看你设置的键盘映射。

在说完了这些之后今天vim的基本配置就说完了,最后把我的neovim(.vim)文件附在这里,也希望大家提出更好的建议:
我的vim配置文件


Zane_Adams
4 声望0 粉丝

C, Python, Java, Shell, Linux...