Vim程序编辑器(一)
简介:Vim是vi的高级版,它相比于Vi,不但可以用不同的颜色显示文字内容,还能够进行许多的程序编辑功能。可以将 Vim 视为一种程序编辑器。Vi 的命令对于 Vim 同样适用。
Vim 的三种模式
一.命令模式
可执行操作:可进行光标的移动、文本的复制粘贴、查找文本中的某些关键字、删除文本部分内容、块的选择等
进入模式的方式:
-
在提示符后用 Vim xxx 进入 Vim // xxx 为你要打开或者新建的文件名
-
在 编辑模式和底线命令模式 时,按
Esc
或者Ctrl
+c
或者Ctrl
+[
退出到命令模式
常用按键:
-
光标的移动:
注意:
1.下面所说的行是一个回车键与下一个回车键之间的整个内容为一行,不是我们肉眼所看到的真实的行,如果分不清可在命令模式下输入
:set nu
使得文本显示行号2.以下内容没有写在代码块里的 N 是数字 **N **,带有角标的 N1,N2 也是数字;string,string1,string2 是你要操作的字符串
h
键或者方向⬅
键 :向左移动j
键或者方向⬇
键: 向下移动k
键或者方向⬆
键:向上移动l
键或者方向➡
键:向右移动//高阶:向某个方向移动N行,例如向下移动30行:按
30j
或者30⬇
即可Ctrl
+f
键或者Page Down
键:屏幕向下移动一页Ctrl
+b
键或者Page Up
键:屏幕向上移动一页Ctrl
+d
键:屏幕向下移动半页Ctrl
+u
键:屏幕向上移动半页+
键:光标移动到下一行的非空格符-
键:光标移动到上一行的非空格符0
或者Home
键:光标移动到当前所在行的第一列^
键:光标移动到当前所在行的第一个非空字符上$
或者End
键:光标移动到当前所在行的最后一列w
或者W
键 : 光标移动到下一个字符串或者特殊符号[1]的开头e
或者E
键 : 光标移动到下一个字符串或者特殊符号的结尾b
或者B
键 : 光标移动到上一个字符串或者特殊符号的开头
这几个键⬇️好像不是那么一回事。也许是我的版本问题吧。
H
键:光标移动到当前屏幕上显示的最上方的那一行的第一个非空格字符M
键:光标移动到当前屏幕上显示的中间一行的第一个非空格字符L
键:光标移动到当前屏幕上显示的最下方的那一行的第一个非空格字符这几个键⬆️只是会把光标移动到目标的区域附近而已
G
键:光标移动到文本的最后一行的第一个非空格字符N +
G
键:光标移动到文本的第 N 行的第一个非空格字符N +
gg
: 光标移动到文本的第 N 行的第一个非空格字符N +
空格
键:光标会向后移动到(若当前光标所在列为第 n 列)第 n+N 列gg
:光标移动到文本的第一行的第一个非空字符,相当于1G
命令N +
Enter
键:光标向下移动到(若当前光标所在行为第 n 行)n + N 行的第一个非空格字符 -
字符串的查找与替换(只会模糊匹配字符串) //记得在字符串后加个回车键
/string
:向下查找string
字符串,光标停留在光标以下部分找到的第一个string
?string
:向上查找string
字符串,光标停留在光标以上部分找到的第一个string
n
键:重复前一个查找的操作N
键:反方向进行前一个查找操作# 在 N1 与 N2 行之间查找 string1,并用 string2 替换掉 string1
:N1,N2s/string1/string2/g
# 从文本第一行到文本最后一行查找 string1 ,并用 string2 替换掉 string1
:1,$s/string1/string2/g
# 从文本第一行到文本最后一行查找 string1 ,并提示是否用 string2 替换掉 string1
:1,$s/string1/string2/gc
:%s/^/string/g
:在每一行的行首插入 string,^表示行首。:%s/$/string/g
: 在每一行的行尾插入 string,$表示行尾。 -
文本部分内容的删除及复制和粘贴
x
键:删除光标所占的字符X
键:删除光标的前一个字符N +
x
键:从当前所占字符开始向后删除 N 个字符dd
:删除光标所在行N +
dd
:删除从光标所在行开始向下的 N 行d1G
:删除从文本第一行开始至光标所在行的所有内容dG
:删除从光标所在行到文本最后一行的所有内容d$
:删除从光标所在处到所在行的最后一个字符(不包括回车符)d0
:删除从所在行第一个字符到光标所占字符前的所有内容yy
:复制光标所在行N +
yy
:从光标所在行开始向下复制 N 行y1G
:复制从光标所在行至文本第一行的所有内容yG
:复制从光标所在行至文本最后一行的所有内容y0
:复制所在行第一列到光标所在列前的所有内容(粘贴时,在光标所占字符后开始插入内容)y$
:复制光标所在列到所在行最后一列的所有内容(粘贴时,在光标所占字符后开始插入内容)p
键:将已复制的内容在光标所在行与下一行之间插入P
键:将已复制的内容在光标所在行与上一行之间插入J
键:将所在行的回车键删除c
键:删除多行,例如删除从光标所在行往下的10行 ->10cj
u
键:恢复执行上一个操作时的状态.
键:重复上一个删除、粘贴的操作
编辑模式
可执行操作:编辑文本
# 注意看 Vim 界面左下角,—INSERT— 为文本插入模式,—REPLACE—为文本替换模式
# 按 Ins
键可在文本编辑模式和文本插入模式之间切换
进入模式的方式:
在命令模式中按 i
、I
、a
、A
、o
、O
、r
、R
中一个键即可进入
常用按键:
- 文本插入模式
i
键:从当前所占字符前开始插入字符
a
键:从当前所占字符后开始插入字符
o
键:在当前所在行的下一行插入一行空白行
I
键:在光标所在行的第一个非空格字符前开始插入字符
A
键:在光标所在行的最后一个字符后开始插入字符
O
键:在当前所在行的上一行插入一行空白行
有个小技巧,进入文本编辑模式之前,按下一个 数字 N,再按以上的六个键中的一个进入文本编辑模式,然后输入你想输入的字符串或值,然后退回到命令模式,你就发现 vim 帮你重复了 N 次你刚才输入的字符串或者值。
gi
:快速跳转到你上次在本文档中编辑的位置,并进入插入模式
- 文本替换模式
r
键:只会替换光标所在字符一次,随后自动退出到命令模式
R
键:一直替换光标所在字符,按 Esc
键退出到命令模式,
底线命令模式
可执行操作:显示行号、保存文本、退出 Vim等
进入模式的方法:
- 在命令模式下按
:
键 - 在命令模式下按
/
键 - 在命令模式下按
?
键
常用命令:
# 这里的命令是在按
:
键进入底线命令模式后操作的,记得在命令最后加个回车键# 有些命令需要确保你有权限修改文件,再执行以下命令
wq
:保存文本并退出
q!
:不保存文本并退出
set nu
:显示文本行号
set nonu
:不显示行号
w
:将编辑的数据写入硬盘文件中
q
:离开 Vim
ZZ
:保存后离开。(不用进入底线命令模式,直接在命令模式按 ZZ 即可保存退出)
w[file1]
:将编辑的数据保存到 file1 ,若没有 file1 ,Vim 会自动建好文件
r[file1]
: 在编辑一个文本时,在光标所在行的下一行插入 file1 的文本内容
# 将 N1 到 N2 行的内容保存为 file1 这个文本
:N1,N2 w [file1]
!command
:跳出 vim 执行命令 command
,命令执行结束后,按任意键回到 Vim
参考:《鸟哥的 Linux 私房菜》第三版
[这个概念很广义,我不知道该怎么形容那些符号]:
[这个概念很广义,我不知道该怎么形容那些符号] ↩︎