vim配置全攻略(2)——vim的简单配置

  • Post author:
  • Post category:其他


这篇文章主要讲的是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

  1. map



    nmap

    的效果相似,都是在

    正常模式

    识别。

  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配置文件



版权声明:本文为m0_49499097原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。