Vim常见配置与基本用法

最近在B站开了一个Unix系统编程的系列分享,目前打算是一周至少出2期视频,不过于追求速度但求精细,对于涉及操作系统原理部分肯定也会深入讲解,同时也是自己巩固知识的最好方法。买了《UNIX环境高级编程》(第三版)这本书但是一直没看,自己对Linux系统编程除了上大学的时候写的一些Demo以外就没写过其他东西了,但是NDK开发中时不时还会用到,而且一旦涉及内存优化、OOM监控这些必定跟Linux底层脱不了干系,所以花一些时间巩固基础,同时也保持一颗分享的初心,通过简单明了通俗易懂的方式给大家呈现出来。绝不同于部分大学课堂的只念PPT,更注重实际操作,通过实操加深对知识的理解,本节是 Vim 的常用操作和一些配置,放在博客里仅供参考,Bilibili合集的地址是: https://www.bilibili.com/video/BV1ua411b7sF

Vim配置

全局配置

/etc/vim/vimrc

/etc/vimrc

个人用户配置

~/.vimrc

配置示例(双引号是Vim配置的注释内容)

" 无需与Vi编辑器兼容
set nocompatible

" 打开语法高亮
syntax on

" 设置行号,命令模式下设置set nu
set number

" 在底部显示当前编辑器模式
set showmode

" 在底部显示当前输入的指令
set showcmd

" 设置UTF-8编码
set encoding=utf-8

" 启用256色
set t_Co=256

" 下一行的缩进自动与上一行保持一致
set autoindent

" tab显示等效的空格数
set tabstop=4

" 设置tab自动转为空格
set expandtab

" tab编辑等效的空格数
set softtabstop=4

" 显示相当于与光标行号
set relativenumber

" 光标所在行高亮
set cursorline

" 设置一行显示多少个字符
set textwidth=80

" 超出的行自动分行显示
set wrap

" 避免单词内部折叠,就和word一样
set linebreak

" 显示状态栏
set laststatus=2

" 在状态栏显示光标的当前位置
set  ruler

" 光标遇到圆括号、方括号、大括号时自动高亮配对的括号
set showmatch

" 搜索时,高亮显示匹配结果
set hlsearch

" 输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果
set incsearch

" 搜索时忽略大小写
set ignorecase

" 不创建备份文件
set nobackup

" 不创建交换文件
set noswapfile

" 保留撤销历史
set undofile

" 出错提醒静音
set noerrorbells

" 出错时屏幕闪烁提醒
set visualbell

" Vim 需要记住多少次历史操作
set history=1000

" 命令模式下,底部操作指令按下 Tab 键自动补全
set wildmenu
set wildmode=longest:list,full

Vim常用操作

Vim 共分为三种模式,分别是命令模式、输入模式和底线命令模式

保存 & 退出

进入输入模式 按 I / OO 表示插入新行

设置行号 :set nu / :set number

保存并退出 :wq ,只保存 :w ,强制退出不保存 :q!

移动光标

上下左右移动光标 KJHL,目前普通键盘的上下左右键也支持,向上移动8行 8K

CTRL + 普通键盘的左右键快速跳到下一个单词

快读定位到15行 :15

定位到行首 数字 0 ,定位到行尾 $,定位到下一行的行尾 2$

定位到文档头部 gg ,定位到文档尾部 GG

复制/粘贴/撤销

复制 YY ,复制3行 3YY

粘贴 P ,粘贴5次 5P

撤销 U,撤销10次 10U

删除操作

删除一行 DD, 删除8行 8DD

删除后面一个字符 X,删除5个字符 5X

快速注释操作

如何注释?

CTRL V 进入可视模式,选择要注释的行,Shift I 进入插入模式,ESC回到命令模式

如何取消注释?

CTRL V 进入可视模式,选择要取消注释的内容,按 X 删除即可

查找字符串

? 要查找的字符串,这个是从下往上查找

/ 要查找的字符串,这个是从上往下查找

上面这两种方式的都是全匹配,如果需要通配符,用 . 代表一个字符,用 * 代表多个字符

后面写代码的实际过程中我也会补充Vim的一些常用且实用的技巧,另外想起来自己之前写的一篇博客,里面推荐了两个集成插件比较多的Vim,而且都是一键配置的: 《VimForCpp》 这个目前只适用于 CentOS7,其他版本后续才会支持! 《space-vim》 这个也是比较好用的一个 Vim,插件都是一句代码全部搞定!