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

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

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于Vundle插件管理器的完整vim插件配置样例,包含常用插件和快捷键绑定等: ``` set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " Add your plugins here Plugin 'scrooloose/nerdtree' " 文件树 Plugin 'tpope/vim-fugitive' " Git Plugin 'jiangmiao/auto-pairs' " 自动补全括号 Plugin 'vim-airline/vim-airline' " 状态栏 Plugin 'vim-airline/vim-airline-themes' " 状态栏主题 Plugin 'tpope/vim-surround' " 快捷键快速包围文本 Plugin 'tpope/vim-repeat' " 使 . 命令支持插件操作 Plugin 'tpope/vim-commentary' " 快速注释 Plugin 'preservim/nerdcommenter' " 快速注释 Plugin 'vim-scripts/indentpython.vim' " Python缩进 Plugin 'SirVer/ultisnips' " 代码片段 Plugin 'honza/vim-snippets' " 代码片段 Plugin 'fatih/vim-go' " Golang 工具 " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required " 定义快捷键 nnoremap <C-n> :NERDTreeToggle<CR> " 打开/关闭文件树 nnoremap <leader>gs :Git<CR> " 打开 Git 窗口 nnoremap <leader>gb :Git blame<CR> " Git blame nnoremap <leader>gc :Git commit<CR> " Git commit nnoremap <leader>gd :Gdiff<CR> " Git diff nnoremap <leader>gl :Glog<CR> " Git log nnoremap <leader>gp :Git push<CR> " Git push nnoremap <leader>gs :Gstatus<CR> " Git status nnoremap <leader>gw :Gwrite<CR> " Git write " 设置状态栏主题 let g:airline_theme='molokai' ``` 保存并退出`~/.vimrc`文件,然后打开vim,执行以下命令,安装配置好的插件: ``` :PluginInstall ``` Vundle将自动从GitHub上下载和安装已列出的插件。 至此,你的vim插件全套配置已完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值