参考:第4章 Vim编辑器与Shell命令脚本(这本书是免费的在线书,写的超级好,通俗易懂?)
vi 和 vim 类似于windows的文本编辑器
所有的Linux系统都内置有vi文本编辑器
vim可以看做是 vi 增强版,具有程序编辑能力,支持语法高亮,代码补全,编译及错误跳转等功能,因此被广泛使用
如果Linux中没有vim这个命令,可以手动下载:
yum install vim
vi
vim
正常模式下,我们可以使用快捷键对文本进行操作,比如:复制 yy
粘贴 p
以vim打开文档,直接进入的就是一般模式,这个模式下,我们可以使用键盘上的 ↑ ↓ ← →
来移动光标,delete
删除末尾字符,等等(具体的快捷键后面会说)
在插入模式下,程序员可以输入内容
按下 i,o,a,r,I,O,A,R
中任意一个键,会进入插入模式(a 用的比较多)
命令 | 作用 |
---|---|
a | 当前光标位置后 进入输入模式 |
A | 当前光标所在行末尾 进入输入模式 |
i | 当前光标位置前 进入输入模式 |
I | 当前光标所在行开头 进入输入模式 |
o | 当前光标所在行下方新建一行 并进入输入模式 |
O | 当前光标所在行上方新建一行 并进入输入模式 |
r | 替换 当前光标所在位置 上的字母为(你按下的下一个按键)仍为命令行模式 |
R | 从 当前光标所在位置 开始进入替换模式,会一个一个地覆盖光标后方的内容(按着 insert 的那种替换效果)按 ESC 退出此状态 |
这个模式下,程序员可以输入相关指令,来完成比如:保存、离开、显示行号等功能(具体指令后面会说)
例子:
使用vim编写一个hello world程序
命令 | 作用 |
---|---|
dd | 删除(剪切)光标所在整行 |
5dd | 删除(剪切)从光标处开始的5行 |
yy | 复制光标所在整行 |
5yy | 复制从光标处开始的5行 |
gg | 光标移至首行 |
5gg | 移动到第5行 |
G | 光标移至最后一行 |
u | 撤销上一步的操作 |
n | 显示搜索命令定位到的下一个字符串 |
N | 显示搜索命令定位到的上一个字符串 |
p | 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面 |
命令 | 作用 |
---|---|
:w | 保存 |
:q | 退出 |
:q! | 强制退出(放弃对文档的修改内容) |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:命令 | 执行该命令 |
:整数 | 跳转到该行 |
:s/one/two | 将当前光标所在行的第一个one替换成two |
:s/one/two/g | 将当前光标所在行的所有one替换成two |
:%s/one/two/g | 将全文中的所有one替换成two |
?字符串 | 在文本中从下至上搜索该字符串 |
/字符串 | 在文本中从上至下搜索该字符串 |
练习:
1.编写hello world程序
2.各种快捷键试一试