NVim
一、安装
sudo apt install vim neovim
二、vim的四种模式
vim有四种模式: 普通模式、输入模式、命令模式、可视模式
打开文件直接进入的是普通模式
三、分屏操作
操作 功能 vim -On file1 file2 … filen 左右分屏 (n为分屏数量)(终端操作) vim -on file1 file2 … filen 上下分屏 (n为分屏数量)(终端操作) ctrl+w s 上下分割当前打开的文件 :sp filename 上下分割,并打开一个新的文件 ctrl+w v 左右分割当前打开的文件 :vsp filename 左右分割,并打开一个新的文件 ctrl+w c 关闭当前窗口 ctrl+w q 如果只剩最后一个窗口,则退出vim ctrl+w k/j/h/l 把光标移动到(上/下/左/右)边的屏 ctrl+w w 把光标移动到下一个屏 ctrl+w K/J/H/L 向(上/下/左/右)移动分屏 sp 水平分屏(多个窗口中显示同一个文件里的内容) vsp 垂直分屏(多个窗口中显示同一个文件里的内容) qall 同时退出多个屏幕 wqall 同时保存退出多个屏幕
四、查找
操作 作用 /string
从上往下查找string ?string
从下往上查找string \>
只匹配单词末尾 \<
只匹配单词开头 :/.*a*.*b*
从上往下查找既含a又含b的行 :/*a*\|*b*
从上往下查找含a或含b的行
忽略大小写查找字符串
查找时使用 \c
参数 如 :/string\c
注意 \c
与字符串之间不要有空格,因为该空格也会被认为是查询的字符串
快速查找
方法一 Shift + *
或 #
查找当前光标对应的单词然后输入,并可通过 n 或 N 进行上一个或下一个的匹配。
方法二 yw
拷贝该单词, 然后输入 :/ (Ctrl + R) 0
, 回车,并可通过 n 或 N 进行上一个或下一个的匹配。
五、普通模式
移动
↑, ↓, ←, →
h, j, k, l
4h 向左4格
4j 下移4行
快捷键 作用 0 / ^ 光标移动到行首 $ 光标移动到行尾部 gg 光标移动到文件头 G 光标移动到最后一行的行首 nG 跳转到第n行行首 n+回车 向下跳转n行 w 跳转到下一个单词的开头 b 跳转到前一个单词的开头 ctrl+上下左右 跨单词移动 caw 删除当前这个词并进入输入模式 cc 删除当前一行并进入输入模式 c4j 删除下4行并进入输入模式
排版
快捷键 作用 << 向左缩进一个shiftwidth >> 向右缩进一个shiftwidth :ce(nter) 本行文字居中 :le(ft) 本行文字靠左 :ri(ght) 本行文字靠右
翻页
快捷键 作用 ctrl d 向下翻半页 ctrl u 向上翻半页 ctrl f 向下翻页 ctrl b 向上翻页
跳转
f{char} 跳转到当前行的某个字符上面,之后再用(;;向后)(,向前)来重复跳转;
eg fr -> 移动到最近的r的位置
删除
快捷键 作用 x (小写) 删除光标后边的字符 X (大写) 删除光标前边的字符 d0 删除当前行光标前的字符串 d$ (D) 删除当前行光标后的字符串 dd 删除光标所在行 ndd 删除n行 d 删除 dj 删除当前行和下一行的内容 dfr 删除到r为止的内容
撤销
快捷键 作用 [n] u 取消一(n)个改动 :undo 5 撤销5个改变 ctrl + r 反撤销 U 取消当前行中所有的改动 :earlier 4m 回到4分钟前 :later 55s 前进55秒 u 撤销
复制和粘贴
快捷键 功能 p
粘贴到光标所在行的下边 P
粘贴到光标所在行的上边 y
复制 yw
复制整个单词 yy
复制光标所在行 nyy
从光标所在行向下复制 n 行 y4j
复制了包含当前行在内的4行内容 yfr
复制到r为止的内容
六、输入模式
快捷键 功能 i
从光标前边开始输入 a
从光标的后边开始输入 o
在光标下边创建新行, 在新行中输入 s
删除光标后边的字符(盖住的字符), 从删除的字符位置开始输入 I
从当前行行首开始输入 A
从当前行行尾开始输入 O
在光标上边创建新行, 在新行中输入 S
删除当前行, 在当前行开始输入
七、命令模式
命令模式下输入的命令 功能 q
退出, 如果退出的时候文件没有保存, vim会提示是否要保存 q!
直接退出, 不保存 (强制退出) w
保存, 不退出 wq
保存退出 x
保存退出 :n
光标跳转到第n行
文本替换
: { 作用范围} s/ { 替换目标} / { 替换内容} / { 替换的标志}
s:当前行替换
% s:全文替换
n1, n2s:指定行替换,替换n1: n2间所有行的目标。
‘< , ’> s:指定区域替换
g:表示一次替换作用范围内所有的目标。
空标志:只替换作用范围内,每行第一次出现的目标。
i:不敏感查找,不区分大小写。
I:敏感查找,区分大小写。(默认状态)
c:表示替换前需进行确认。
: n1, n2s/ zempty/ handsome/ g 替换掉n1到n2行的所有 zempty为handsome
命令模式下的命令行打开文件
:edit ~/file_1 打开对应文件
:edit %<Tab> 自动显示整个路径
执行shell命令
// 在命令模式下执行需要的shell命令,在执行shell命令之前需要在前边加上一个叹号!
:!shell命令
八、可视模式
从普通模式进入可视模式
快捷键 进入模式 模式讲解 按小写v进入 字符选择模式 选中光标经过的所有字符 按大写V进入 行选择模式 选中光标经过的所有行 按Ctrl+v进入 块选择模式 选中一整个矩形框表示的所有文本
相关快捷键
快捷键 作用 o 在选中区域中的左上和右下角来回切换 gv 改为选中上一次选中的目标区域
快捷键 作用 . 点命令重复执行上一次执行过的命令(普通模式和可视模式均适用) f{char} 跳转到当前行的某个字符上面,之后再用(;;向后)(,向前)来重复跳转 $ 从当前位置选择到行尾 ^ 从当前位置选择到行首 x或d 剪切,(d只删除选中的字符,而D删除选中字符所在行的所有字符) y和Y 复制,(y只复制选中的字符,而Y复制选中字符所在行的所有字符) p或P 粘贴,(p 粘在光标所在字符后面,P 粘在前面) r字符 所有字符替换为新字符 c字符 修改选中的文本 I字符 在选中文本前插入 A字符 在选中文本后插入 u U ~ 分别是所有字母变小写、变大写、反转大小写 J字符 将高亮显示的文本内容合并为一行,同时以空格来分隔各行 >和< 将选中字符右移或左移 shiftwidth位置
可视模式下的底行命令
可视化模式下,按下 :
键就可以对选定范围进行操作。底行命令行中会自动填充‘<,’>
操作 作用 ‘<,’>write block.txt 将文本块写入block.txt中 ‘<,’>sort 对选中的文本进行排序 ‘<,’>s/{替换目标}/{替换内容}/{替换的标志} 在选中的区域内进行批量替换
可视模式下的注释
// 可视模式下注释多行代码
(1) Ctrl + v进入块选择模式
(2) 向上或向下移动光标选择多行
(3) 移动光标到行的起始位置(或输入指令^)
(4) 然后按大写 I 进入行首插入模式
(5) 插入注释符
(6) 按Esc回到命令模式
// 可视模式下取消多行注释
(1) Ctrl + v进入块选择模式
(2) 向上或向下移动光标,选择要删除的注释符号
(3) 按d键删除