EasyHPC - Vim入门教程【笔记】

内容来源:超算习堂 (easyhpc.net)

文章目录

  • 01 基本模式
    • 普通模式
    • 插入模式
    • 可视模式
    • 选择模式
    • 命令行模式
    • Ex模式
  • 02 普通模式——游标移动
    • 字符级移动
    • 行内移动
    • 页级移动
    • 页内移动
    • 其他移动
  • 03 普通模式——文档编辑
    • 搜索
    • 替换
    • 删除
    • 复制
    • 粘贴
    • 撤销
    • 重复
  • 04 插入模式
    • 进入插入模式
    • 游标移动
    • 退出插入模式
  • 05 命令模式
    • 打开文件
    • 保存文件
    • 退出Vim
    • 行号操作
    • 文件操作
    • 内容替换
  • 06 进阶命令
    • 文件恢复
    • 选项设置
    • 分屏
    • diff

01 基本模式

Vim具有6种基本模式和5种派生模式。对于基本模式有:

普通模式

在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。

在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按a(append/追加)键或者i(insert/插入)键。

直接使用vim命令后进入vim的普通模式,在其他模式下,按下ESC即可返回普通模式。

EasyHPC - Vim入门教程【笔记】_第1张图片

插入模式

在这个模式中,大多数按键都会向文本缓冲区中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。

在普通模式下i, I, a, A等键即可进入插入模式,插入模式下,按键则会输入。例如我们输入ehpc

EasyHPC - Vim入门教程【笔记】_第2张图片

可视模式

这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的"文本对象"也能和移动命令一样用在这个模式中。

在普通模式下,按下v, V, +v即可进入
EasyHPC - Vim入门教程【笔记】_第3张图片

选择模式

这个模式和无模式编辑器的行为比较相似(Windows标准文本控件的方式)。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式

命令行模式

在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索/?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。

在普通模式下,按下:即可进入:
EasyHPC - Vim入门教程【笔记】_第4张图片

Ex模式

这和命令行模式比较相似,在使用:visual命令离开Ex模式前,可以一次执行多条命令

在进入Vim时,加上-e参数即可进入,例如:vim -e
EasyHPC - Vim入门教程【笔记】_第5张图片

02 普通模式——游标移动

Vim最大特色是完全使用键盘命令进行编辑

字符级移动

在普通模式下,可以使用方向键或者h,j,k,l进行移动,如下表:

按键 方向
h,←
l,→
j,↓
k,↑

行内移动

在行内以移动游标时,可以使用下面的命令来实现:

按键 说明
w 右移到下一个单词的开头
e 右移到下一个单词的末尾
b 左移到前一个单词的开头
0 右移到本行的开始
$ 右移到本行的末尾
^ 左移到本行的第一个非空字符

页级移动

可以在相邻页之间移动:

按键 说明
crtl+f 前移一页
crtl+b 后移一页

页内移动

当我们到达指定页时,可以在页内快速移动:

按键 说明
H 将光标移到该页的起始行
M 将光标移到该页的中间行
L 将光标移到该页的末尾行

其他移动

Vim提供了很多的移动方式,这里再列举一些大范围移动:

按键 说明
* 将光标移到该单词的下一个位置
# 将光标移到该单词的上一个位置
g 将光标移到文件的第一行
G 将光标移到文件的末尾行

03 普通模式——文档编辑

搜索

Vim的搜索方法非常简单,只需要输入/+内容就可以进行搜索,其命令具体如下:

指令 说明
+str 向下搜索字符串str
n 继续搜索
N 反向搜索
?+str 反向搜索字符串str

替换

Vim的常规替换命令主要由sc完成,但替换命令之后,会进入插入模式,按下ESC即可返回普通模式,替换命令部分如下:

指令 说明
s 用输入的正文替换游标所在的字符
ns 用输入的正文替换游标右侧n个字符
c$ 用输入的正文替换从游标开始到行尾的所有字符
c0 用输入的正文替换从本行开始到游标的所有字符

删除

Vim的删除命令主要由dx完成,如下:

指令 说明
x 删除游标所在的字符
X 删除游标所在前一个字符
dw 删除游标右的单词
dd 删除游标所在行
d0 删除光标到行的开始
d$ 删除光标到行的末尾

复制

Vim中删除操作其实与剪切操作类似,会将内容复制到内存缓冲区,当然,也可以通过命令自行复制而不删除内容:

指令 说明
yy 复制游标所在行到缓冲区
nyy 复制n行到缓冲区

粘贴

将内容复制到缓冲区后,可以使用命令将内容粘贴:

指令 说明
p 粘贴到游标后
P 粘贴到游标前

撤销

通过指令,可以撤销上一次的操作:

指令 说明
u 撤销上次操作

重复

通过指令,可以重复上一次的操作:

指令 说明
u 重复上次操作

04 插入模式

进入插入模式

我们知道使用Vim命令后首先进入的是普通模式,要编写内容还是要进入插入模式,除了前面已经提及的一些进入插入模式的方法之外,进入插入模式还可以通过命令:

指令 说明
i 在游标处插入
I 在行首插入
a 在游标右侧插入
A 在行末插入
o 在当前行后添加一行插入
O 在当前行前添加一行插入

游标移动

当然,也可以尝试在插入模式时移动,但此时h,j,k,l已不能移动,只能使用方向键进行小幅移动:

按键 方向

退出插入模式

进入插入模式后,在编辑内容时,往往需要应用其他命令,这时就需要退出插入模式,进入普通模式,使用命令进行操作:

指令 说明
ESC 退出插入模式
Crtl+[ 退出插入模式

05 命令模式

首先,使用vim进入Vim,要进入命令模式,只需输入:
后,即可进入,此时游标在屏幕最后一行:

EasyHPC - Vim入门教程【笔记】_第6张图片

打开文件

在进入Vim之后,如需打开其他文件,命令未e+文件名,例如::e ehpc.txt则可打开ehpc.txt文件

保存文件

编辑之后,我们可以使用命令w保存文件,也可以另存为其他文件::w other-ehpc.txt

退出Vim

退出Vim时,如果未作修改,需要使用q进行退出,如果有修改内容,但不保存,则可以使用q!强制退出,如果想要保存内容,并退出,可以使用命令wq

行号操作

命令模式下,我们可以直接输入行号进行跳转:: n:跳转到第n行通过对行号的使用,我们可以结合其他命令做到:

  • :nw 文件名n行写入文件
  • :m,nw 文件名mn行写入文件
  • :m,.w 文件名m到当前行写入文件
  • :.,$w 文件名 将当前行到最后一行写入文件

文件操作

前面指出了可以使用e打开文件,w写文件,Vim还有更多的文件操作:

  • :r 文件名读取文件并插入到游标之后
  • :f 文件名重命名文件
  • :f输出当前文件名称和状态 Name and status of the current file

内容替换

Vim除了在普通模式下能够进行替换操作,命令模式下也可以进行替换操作:

  • :%s/str1/str2/str2替换行中首次出现的str1
  • 通过g参数可以达到替换所有的操作::s/str1/str2/gstr2替换行中出现的str1
  • 还可以指定行数,例如::1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串str1上述操作也可以通过:g/str1/s//str2/g实现

06 进阶命令

文件恢复

通过:recover可以恢复意外退出而没有保存的文件

选项设置

通过:set命令可以设置选项,比如:

选项 说明
autoindent 自动缩进
number 显示行号
ignorecase 忽略正则表达式的大小写
ruler 显示游标位置

分屏

Vim中可以使用命令进行分屏操作:

命令 说明
split ,sp 水平分屏
vsplit,vsp 垂直分屏

也可以在启动Vim时分屏,在启动时加入参数:vim -On file1 file2... 打开 file1 和 file2 ,垂直分屏vim -on file1 file2... 打开 file1 和 file2 ,水平分屏各屏幕间移动需要使用快捷键:

命令 说明
Ctrl +w+h 当前屏的左分屏
Ctrl +w+l 当前屏的右分屏
Ctrl +w+j 当前屏的下分屏
Ctrl +w+k 当前屏的上分屏

diff

可以通过Vim进行不同文件之间的比较,在命令行中,可以直接输入vimdiff file1 file2即可在Vim里分屏显示两个文件的差异。在Vim内,也可以通过命令diffsplit file与其他文件进行比较。


报错处理:

  • vim /etc/profile 写入时 出现 E121:无法打开并写入文件解决方案
  • 关于vim保存时异常:/private/etc/profile E212: 无法打开并写入文件

你可能感兴趣的:(Linux,Vim,vim,linux)