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和空标志:
g:表示一次替换作用范围内所有的目标。
空标志:只替换作用范围内,每行第一次出现的目标。
i:不敏感查找,不区分大小写。
I:敏感查找,区分大小写。(默认状态)
c:表示替换前需进行确认。
// eg
: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键删除
Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐