版权声明:本文为博主原创文章,未经允许不得转载。 https://blog.csdn.net/qq_31142553/article/details/84191272
vi或vim(vi的增强版本)是Linux最基本的文本编辑工具。
先上一张图:
vi有三种工作模式:命令模式、文本编辑模式和最后行模式。不同工作模式下的操作方法有所不同。
1.命令模式:
命令模式是启动vi后进入的工作模式,并可转换为文本编辑模式和最后行模式。在命令模式下,从键盘上输入的任何字符都被当作编辑命令来解释,而不会在屏幕上显示。如果输入的字符是合法的vi命令,则vi就会完成相应的动作;否则vi会响铃警告。
2.文本编辑模式:
文本编辑模式用于字符编辑。在命令模式下输入i(插入命令)、a(附加命令)等命令后进入文本编辑模式,此时输入的任何字符都被vi当作文件内容显示在屏幕上。按Esc键可从文本编辑模式返回到命令模式。
3.最后行模式:
在命令模式下,按“:”键进入最后行模式,此时vi会在屏幕的底部显示“:”符号年作为最后行模式的提示符,等待用户输入相关命令。命令执行完毕后,vi自动回到命令模式。
一、打开文件
- vi file 打开文件定位到首行
- vi file +# 打开文件,并定位到第#行
- vi file + 打开文件,定位至最后一行
- vi file +/pattern 打开文件,定位至第一次被pattern匹配到的行的行首
二、关闭文件
末行模式下:
- :q 退出,没有动过文件
- :wq 退出,动过了不后悔(等同于:x)
- :q! 不保存并退出,动过了后悔了
- :w 保存
- :w! 强行保存
命令模式下:
- ZZ 保存并退出
三、命令模式转编辑模式
- i 在当前光标所在字符的前面,转为编辑模式;
- a 在当前光标所在字符的后面,转为编辑模式;
- o 在当前光标所在行的下方,新建一行,并转为编辑模式;
- O 在当前光标所在行的上方,新建一行,并转为编辑模式;
- I 在当前光标所在行的行首,转换为编辑模式
- A 在当前光标所在行的行尾,转换为编辑模式
四、编辑模式转末行模式
- : 冒号
五、末行模式转编辑模式
- Esc
六、命令模式的移动命令
字符(同方向键)
- h 左
- j 下
- k 上
- l 右
单词
- w 移至下一个单词的词首
- e 跳至当前或下一个单词的词尾
- b 跳至当前或上一个单词的词首
行内
- 0 绝对行首
- ^ 行首的第一个非空白字符
- $ 绝对行尾
行间
- G 文章末尾
- 3G 第3行
- gg 文章开头
翻屏
- Ctrl f 下一屏
- Ctrl b 上一屏
n<Enter>:n 为数字。光标向下移动 n 行(常用)
七、命令模式的编辑命令
- x 删除光标位置字符
- 3x 删除光标开始3个字符
- r 替换光标位置字符
- d 删除命令
- dw 删除一个词
- dd 删除当前行
- yy 复制游标所在的那一行(常用)
- yw 复制一个词
- p 粘贴到后面
- P 粘贴到前面
- u 撤销
- Ctrl r 重做
- . 重复上一步的操作
- /xx 查找xx字符
八、 末行模式
- set nu 显示行号
- set nonu 隐藏行号
- set readonly 设置只读
- !+cmd 执行bash的pwd命令