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键删除
所有评论(0)