vi是Linux及类Unix系统中主流的命令行文本编辑器,功能极为强大,vim是增强版本的vi,vim支持高亮度显示;其他文本编辑器还有emacs,比vi还要强大;当用vi加一个文件名,如果这个文本文件存在则是打开这个文件,如果不存在则是创建这个文本文件
vim有三种工作模式:
-
命令模式(常规模式): vim启动后默认进入此种模式,在任何模式下按esc键回到命令模式,命令模式下通过不同的键完成选择、复制、粘贴、删除和撤销等操作
-
插入模式 : 在命令模式下按“i”即可进入插入模式,在插入模式可输入编辑的文本内容,按esc键回到命令模式
-
ex模式: 在命令模式下按“:”键进入ex模式,光标会移动到底部,在这里可以输入不同的键进行修改保存或退出vim
命令模式(常规模式)常用指令:
-
i 插入
-
o 在当前行下插入新行
-
dd 删除当前行
-
yy 复制一行(将当前行放入缓冲区)
-
n yy 复制n行(将以当前行开始的n行放入缓冲区)
-
p 粘贴
-
u 撤销上一个操作
-
r 替换当前字符
-
gg 光标跳到第一行
-
G 光标调到最后最后一行
-
/ 搜索
ex模式常用命令:
-
:w 保存修改
-
:q 退出
-
:q! 强制退出,不保存修改
-
:x 保存并退出,相当于:wq
说明 wq 强制性写入文件并退出.即使文件没有被修改也强制写入,并更新文件的修改时间.
: x 写入文件并退出.仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间.
这两者一般情况下没什么不一样,但是在编程方面,对编辑源文件可能会产生重要影响.文件即使没有修改,”:wq”强制更新文件的修改时间,这样会让make编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件.这可能会产生让人误解的后果,当然也产生了不必要的系统资源花销.