VIM的一些基本命令总结(linux相关)

VIM的一些基本命令:

vim --version:查看vim版本
vimtutor:查看VIM命令教程
vim:运行vim
默认状态下进行normal模式,键盘是输入命令而不是输入文本

敲入:vim会认为你要输入特殊命令
:e编辑新文件
:q退出vim
:q!强制退出
:set hlsearch显示查找高亮
:set number显示文本行号
:N 直接去N行
:x 必要时存盘,再退出
:w test.cpp存盘,后面可以跟文件名
:sav + 文件名 存盘
:vs左右分屏(:vsplit分屏)(ctrl+ww:跳转屏幕,:hide隐藏屏幕)
:sp上下分屏(:split分屏)(ctrl+ww:跳转屏幕,:hide隐藏屏幕)
:colorscheme evening 改变配色方案

在normal状态下,按i(光标前),a(光标后),o(光标下一行),O(光标上一行),A(光标行尾部)进入insert状态插入数据
在insert状态下按esc键重新回到normal状态
normal状态下hjkl移动光标(强烈推荐)也可以用方向键移动光标,hjkl分别表示左下上右

删除文本:
编辑状态下,与一般编辑器一样用退格键或者删除键;在normal状态下用x删除光标所在的字符,按dd删除光标所在行

光标的移动:
在编辑状态下
0:向左移动到行首部
$:向右移动到行尾
o:在当前行后插入一行
O:在当前行前插入一行
^:移动到行首部第一个非blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
g_:移动到行尾第一个非blank字符的位置

查找文本:
/ :向下查找
?:向上查找(用/?也可以用正则表达式)
之后输入(n:向下移动到上次查找字符组的下一个位置;N:向上移动到上次查找字符组的下一个位置)

其他一些常用命令:
ddp:交换两行的位置
yy:复制光标所在行的内容
p:粘贴复制的内容
u:undo 取消上一次操作类似于 ctrl+z ,
ctrl+r:redo做上一次取消的事情类似于ctrl+y
ZZ:必要时存盘退出
.(点号):重复上一个有改变本文的命令(默认的单行移动光标不算)
N:重复某个命令N次 如2dd:删除光标所在行及其下一行
NG:到第N行文本 2G跳到第2行,17G跳到17行
gg:到第1行
G:跳转到文本最后一行
W:到下一个单词开头
e:到下一个单词结尾(一个单词由字母,数字,和下划线组成)
%:光标移动到匹配括号,包括{}
*和#:搜索光标当前所在的单词,移动光标到下一个或上一个匹配的单词(星号是下一个,#是上一个)
v:进入visual可视模式,可以移动光标选择范围也可以输入移动命令选择范围,运行命令是针对选项范围的
fh:到当前行下一个为h的字符处,也可以f;到下一个为;的字符处
th:到当前行h前的第一个字符。h也可以换成其他字符
(F和T与f,t功能一样,只是方向相反查找)
d+范围:可以对指定范围的内容进行删除,如dt"表示删除所有的内容直到遇到"
J:把所有的行连接起来(变成一行)

visual模式下其余一些常用命令:
输入v进入visual模式:
i":会选择两个引号间不包含引号的内容
a":同上,但会包含引号
i):会选择()间内容但不包含括号
a):同上但会包含()本身
=:自动缩进,选择好需要对齐的行输入=即可自动缩进与之前行对齐
shift+v:进入行模式,移动光标会选择整行

输入ctrl+v进入visual block块模式:
选择完需要操作的块后块模式下输入I(大写的i)会进入insert插入模式,再在插入模式下所做的操作会影响到之前所选择的块

insert模式下其余一些常用命令:
自动补全代码:ctrl+n或ctrl+p

VIM的一些基础配置:

可以用/home/用户名/.vimrc文件 对vim进行一些配置:
nocompatible:不兼容老的vi命令
noerrorbells:不发出系统响铃
showmatch:显示匹配项如:()
ignorecase:查找的时候忽略大小写
incsearch:搜索时自动跳转光标位置
novisualbell:取消响铃
laststatus:命令行显示行数
tabstop:tab缩进
guifont:设置字体
autowrite:自动存盘
ruler:显示状态栏标尺
cursorline:突出显示当前行
guioptions:设置工具栏(gui版本才生效)
history:保存之前输入的命令行数
autochdir:编辑文件时切换当前主目录为文件所在位置
colorcolumn:代码长度控制线
vb t_vb = :去掉闪屏

在这里插入图片描述