vi 编辑器
工作模式
命令行模式
- 进入编辑器的默认模式
- 按下Esc进入该模式
文本输入模式
- i 文本插入模式
- a 附加命令
- o 打开命令
- c 修改命令
- r 取消命令
- s 替换命令
末行模式
- 按下
:
进入该模式
模式切换
-
其他模式
-》文本输入模式
按 i或a -
其他模式
-》命令行模式
按 Esc -
其他模式
-》末行模式
按 :
打开文件
- vi +n 文件名 进入后光标跳转某行
- vi + 文件名 进入后光标跳转最后一行
- vi +/模式字符串 文件名 跳转到指定的字符串位置
显示行号
- :set number 设置行号
- :set nonumber 取消行号
修改文件
- i , a
文本内容删除
- x 删除光标处的字符
- X 删除光标前面的字符
- dd 删除贯标所在的整行
- D 删除从光标所在处开始到行位的内容
- dw 删除一个单词
文本内容复制
- yy 复制光标所在的整行
撤销
- u 撤销上一个步骤
- U 多个步骤
退出
- q 退出,如有修改,不直接退出,等待用户确认
- q! 强制退出
- w 保存不会退出 w 新文件名 ; 相当于另存为
- w! 强制保存
- wq 保存退出
- x 退出
文本缩进
-
>n
右移 8个空格 n表示当前行及后n行 - <n 左移 8个空格 n表示当前行及后n行
- n>> n<< 同理 不过>> 不过n表示当前行及以后行和
光标移动
- 左移 h
- 右移 l
- 上移 k
- 下移 j
- 当前屏的最顶一行 H
- 当前屏的中间一行 M
- 当前屏的底部一行 L
- 指定某行行首 nG
跨行移动
- imj 将文本从i行移动到j行下面
滚屏和分页
- ctrl + u :向前翻滚半屏
- ctrl + d :向后翻滚半屏
- ctrl + f :向文件尾翻滚整屏
- ctrl + b :向文件首翻滚整屏
字符串查找
- /string 向后查找
- ?string 向前查找
- n 重复上一条检索命令
- N 重复上一条检索命令,但改变方向
替换命令
- [range]s/s1/s2/[option]
- range: 检索范围 1,10; %整个文件,1,$ 整个文件; .,$ 当前行到文件尾
- s1 替换命令
- s2 要被替换的串,s2 位替换后的串
- option:/g 表示全局文件中进行替换 /c 表每次替换都进行确认