乐趣区

关于编辑器:vim配置全攻略2vim的简单配置

这篇文章次要讲的是 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 配置文件

退出移动版