vi 命令整理
vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。
总而言之vi是Linux平台中的一款强大的编辑器。从刚刚入门、上手vi, 到完全熟悉vi,再到能熟练的使用vi编写程序,超过其他编辑器编写的速度还是需要不断的练习vi的快捷命令。
在这里我把vi命令做了简单的分类,因为很多时候需要完成的任务不同,使用的命令集也完全不同。类似在word, gedit下编辑也有不同的(ctrl+?)的快捷操作。
如过你不用vi 那你可以先尝试看下最简单的教程,如果觉得还是不好用,那可以看看我给你的分类
How to reach a higher level(Total Acceleration) ?
1 Moving of the cursor
1.1 基本移动
h : 左移一格
j : 下移一格
k : 上移一格
l : 右移一格
常用操作
(数字n+ 命令)
5 h : 左移5格
5 j : 下移5格
5 k : 上移5格
5 l : 右移5格
1.2 移动到指定字符
(f + 字母('c'))
(F + 字母('c'))
该命令移动光标至本行下一个字母(’c’)处
(t + 字母('c'))
(T + 字母('c'))
该命令移动光标至本行下一个字母(’c’)之前
;
该命令可以重复上一次移动光标命令
eg.
fa: 移动到下一个a处
fb: 移动到下一个b处
; 移动到下一个b处
Fk:移动到上一个k处
; 移动到上一个k处
Ta:移动到下一个b处
1.3 移动到行首位
0
该命令移动光标到行首
^
该命令移动光标到行首(有字符处)
$
该命令移动光标到行尾
1.4 本页中的行移动
注意大小写
(数字n+ H)
移动光标到本页正数第 n 行
(数字n+ H)
移动到本页倒数第 n 行
M
移动到本页中间行
zz
使光标所在处置于页中部
zb
使光标所在处置于页底(bottom)部
zt
使光标所在处置于页顶(top)部
1.5 全文本内移动
gg
使光标所在处置于全文本顶部
G
使光标所在处置于全文本底部
(数字n+G)
或(冒号:+ 数字n)
使光标所在处置于全文本第n行
(ctrl+f)
移动至下一页,移动后光标置于页顶部
(ctrl+b)
移动至下一页,移动后光标置于页底部
``
后退至光标跳转前所在位置
以上命令是很常用的vi光标移动命令,还有一部分不常用的,或者是符合大多数人思考习惯的就没有列出
2 Words Searching & Replacing
2.1 全文查找
('/' + 文字)
查找指定文字
/include
查找全文中的include:
得出结果后有命令:
n
下一个结果
N
上一个结果
多次查找后可用命令
/+上下键
和cmd操作类此,翻看上一条查找
2.2 单行替换
(冒号:+ s + / + word1 + / + word2 +/)
替换本行中的第一个 word1 为 word2
eg.
:s/include/import/
替换光标行处的第一个include 为import
(冒号:+ s + / + word1 + / + word2 +/ + g)
替换本行中的所有 word1 为 word2
2.3 多行替换
(冒号:+ 数字n + 逗号, + $ +s + / + word1 + / + word2 +/ + g)
替换本行中的所有 word1 为 word2
eg.
:0, $s/include/import/g
替换从第0行到结束(也就是全文)的include为import
tips
若想要先搜索word1再将其替换为word2可以直接在无word1的行使用单行替换
s:/word1/word2
命令会搜索word1 然后可以用n, N移动至想要替换的地方使用命令
冒号:
即可
代替了ctrl+f的功能,操作起来也很方便
3 Words Competing
插入模式下
3.1 自动补全
Ctrl+P
Ctrl+N
从缓存中调出可补全的单词,此时仍用这两条命令可以上下选择
3.2 智能补全(Python)
类似IDE的补全功能,配置上需要按照语言来区分。这里给出了Python智能补全的方法链接:
其他语言的补全我会慢慢的放到文章中
4 Common Operation
4.1 单行操作
数字n + x
删除光标后n个字符
d0
删除本行光标前所有内容
d$
删除本行光标后所有内容
4.2 多行操作
:n1,n2 co n3
将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3
将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d
将n1行到n2行之间的内容删除
数字n + yy
复制从所在行开始的n行
数字n + dd
剪切从所在行开始的n行
p
从所在行的下一行开始粘贴
4.3 撤销操作
u
撤销上一步
ctrl +r
取消上一个撤销
4.4 Visual 模式
v
在普通模式下进入Visual模式——类似鼠标拖动选中
选好以后可以进行如 d, y ,p 等单行操作
4.5 Visual Block 模式
Ctrl + v
然后类似鼠标框选选中,选中的区域可以进行d(删除)操作,
(大写I)多行插入,插入操作后esc退出Visual Block模式后可以看到效果。这个也很常用
以上也基本是vi快速操作的一些必备(背)的命令,vi还有很多很多的操作和命令,但是很多命令在实践中运用机会比较少,如果想要看更多的vi命令可以参考
这里写得更加详细,但是想成为vi高级编程者,不是把这些命令全部背下来,而是要熟练应用其中的一部分完成高效和快速的编程
当然我也在努力熟练中