Vim常见配置与基本用法

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

Vim配置

全局配置

1/etc/vim/vimrc
2
3/etc/vimrc

个人用户配置

1~/.vimrc

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

 1" 无需与Vi编辑器兼容
 2set nocompatible
 3
 4" 打开语法高亮
 5syntax on
 6
 7" 设置行号,命令模式下设置set nu
 8set number
 9
10" 在底部显示当前编辑器模式
11set showmode
12
13" 在底部显示当前输入的指令
14set showcmd
15
16" 设置UTF-8编码
17set encoding=utf-8
18
19" 启用256色
20set t_Co=256
21
22" 下一行的缩进自动与上一行保持一致
23set autoindent
24
25" tab显示等效的空格数
26set tabstop=4
27
28" 设置tab自动转为空格
29set expandtab
30
31" tab编辑等效的空格数
32set softtabstop=4
33
34" 显示相当于与光标行号
35set relativenumber
36
37" 光标所在行高亮
38set cursorline
39
40" 设置一行显示多少个字符
41set textwidth=80
42
43" 超出的行自动分行显示
44set wrap
45
46" 避免单词内部折叠,就和word一样
47set linebreak
48
49" 显示状态栏
50set laststatus=2
51
52" 在状态栏显示光标的当前位置
53set  ruler
54
55" 光标遇到圆括号、方括号、大括号时自动高亮配对的括号
56set showmatch
57
58" 搜索时,高亮显示匹配结果
59set hlsearch
60
61" 输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果
62set incsearch
63
64" 搜索时忽略大小写
65set ignorecase
66
67" 不创建备份文件
68set nobackup
69
70" 不创建交换文件
71set noswapfile
72
73" 保留撤销历史
74set undofile
75
76" 出错提醒静音
77set noerrorbells
78
79" 出错时屏幕闪烁提醒
80set visualbell
81
82" Vim 需要记住多少次历史操作
83set history=1000
84
85" 命令模式下,底部操作指令按下 Tab 键自动补全
86set wildmenu
87set 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,插件都是一句代码全部搞定!