1-7 基础版图片可以从这里下载到,还有 svg 矢量版
http://www.viemu.com/a_vi_vim...
前言:
最近发现 vim 是个好强大的文本编辑工具,有多强大,看下面就知道。几乎涵盖了所有可能的操作。
我会在前面七张图片下面摘写一些有用常用的指令
举个例子证明它的强大
这上图中,我需要删除文件里的 ( svg | png )
这一段文字。
只需要下面几个操作就好了,以下是步骤,和步骤解释:
步骤 | 指令 | 解释 |
---|---|---|
1 | /type( |
用 / 搜索该字段前面的 type( 将光标定位到此 |
2 | f( |
将光标移动到 ( 上 |
3 | df) |
用 d 删除指令,删除当前位置到下一个 ) 的字符 |
4 | :wq |
保存并退出 |
0 基础开始
vi
(vim
) 是 linux
系统下一个命令行文本编辑器,使用的时候直接 vi
后接文件名
vi test.txt
## 编辑 test.txt 文件,文件存在就编辑它,不存在就新建一个文件并编辑
vi 的最常用的两种模式: 普通模式
| 输入模式
普通模式
是你打开文件时的样子
这个时候你可以直接使用本文章中提到的指令操作文本,此时你按键盘上的键会被编辑器接收,作为指令来执行,而不是输入到文本中。
如直接输入 :wq
来保存并退出文件。 :w
存储文本:q
退出文本,如果你对文本做了改动,这个是退不出去的。需要下面::q!
退出不保存文本:wq
保存并退出文本
:set nu
显示行号:set nonu
不显示行号
:syntax enable
语法高亮 (如果支持的话):set filetype=html
文档格式,配合上面语句
输入模式
按 指令 i
后会在光标位置开始输入,这时候左下角会有 --- INSERT ---
提示,表示当前正在输入模式。
此时你键盘的所有按键操作都会写入到文本中。
要切换到 普通模式
只需要按一下键盘的最左上角 esc
键即可。
基础编辑,移动光标
指令 | 解释 |
---|---|
$ | 行尾 |
^ | 行首 |
w | 下一个单词 (词首) |
e | 下一个单词(词尾) |
b | 前一个单词 |
x | del 删除后一个字符 |
X | backspace 删除前一个字符 |
u | 撤销 |
ctrl + r | 重做 |
k | 上 |
h | 下 |
g | 左 |
l | 右 |
i | 插入,开始写东西 |
s | 覆盖 |
esc | 退出输入模式,进入普通模式,可执行各种命令 |
操作和重复操作
指令 | 解释 |
---|---|
f | 查找字符,按f后再按需要移动到的字符,光标就会移动到那 |
f; 就会移动到下一个 ; 的位置 |
|
F | 反向查找字符 |
. | 重复上一个操作 |
v | 选择模式,用上下左右选择文本,按相应的指令直接执行,如:选中后执行 d 就直接删除选中的文本 |
ctrl + v | 块状选择模式,可以纵向选择文本块,而非以行的形式 |
d | 高级删除指令: |
dw 删除一个单词 |
|
df( 配合 f ,删除从光标处到 ( 的字符,单行操作 |
|
dd 删除当前行 |
|
d2w 删除两个单词 |
|
d2t, 删除当前位置到后面第二个 , 之间的内容,不包含 , (t = to ) |
复制 和 粘贴
指令 | 解释 |
---|---|
y | 复制 |
yy | 复制当前行 |
p | 粘贴到后面
|
P | 粘贴到前面
|
o | 在当前行的下一行 添加空行并开始输入 |
O | 在当前行的上一行 添加空行并开始输入 |
所有经过 d
x
e
处理的字符串都已经复制到了粘贴板上。
搜索
指令 | 解释 |
---|---|
/ | 从当前位置向后 搜索 |
? | 从当前位置后前 搜索 |
n | 搜索完之后,如果有多个结果,跳到 下一个匹 配项 |
N | 跳到 上一个 匹配项 |
* | 直接匹配当前光标下面的字符串,移到下一个匹配项,跟/ ? 没有关系 |
# | 上一个匹配项 |
标记 和 宏
标记
m
后跟 a - z
任意字符来设置一个标记
`
后跟 字符来跳到这个标记点
大写 A - Z
是全局的,小写 a - z
'.
代表最后编辑位置
宏
q
后接 a - z
开始录制宏q
结束宏的录制@
后接 a - z
读取宏@@
代表最后一个宏
高级移动
%
在配对的 ()
[]
之间移动 H
M
L
移动到编辑器可视范围的头部,中间,尾部G
到文件的尾部,前面添加数字再按 G
跳到输入的行,写行号的时候是看不见的-
+
跳到上一行,下一行(
)
跳到当前句子的 首 / 尾
{
}
跳到 前一个 / 后一个
空行[[
jumps to the previous {
in column 0]]
jumps to the next }
column 0
高级指令
J
合并当前行与下一行。合并已选中的所有行。r
替换当前字符到下一个输入的字符。如: r
后接 4
会把当前字符替换成 4
C
是 c$
的缩写:修改从光标到结尾D
是 d$
的缩写:删除从光标到结尾Y
是 yy
的缩写:复制当前行s
删除光标下字符,并开始编辑S
删除当前行,并开始编辑
<
向前缩进,一行,或多行,范围设置在前面提到了,t
等等>
向后缩进,一行,或多行=
格式化,一行,或多行
~
切换光标下的字符大小写
规则
上面 7 张合起来就是这样的
任何指令前输入的数字,都会作为指令的重复值:5d
, 2u
, d2w
重复指令会在当前行执行: dd
删除当前行,yy
复制当前行ZZ
保存并退出ZQ
退出不保存
zt
滚动光标到顶部,光标在文件中的位置不变,只是改变光标在屏幕上的位置zb
光标滚动到底部
ctrl + F/B
PageUp / PageDown
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。