重温Linux-4.Vi使用
什么是Vi
Vi,是一款由加州大学伯克利分校,Bill Joy 研究开发的文本编辑器。
由加州大学伯克利分校,Bill Joy 研究开发。
Vi的三种模式
- Command Mode(命令模式)
- Input Mode(插入模式)
- Last Mode(末行模式)
Command Mode(命令模式)
这是执行Vi后的缺省模式,此时键盘输入当作命令,键入的命令要区分大小写。
Input Mode(插入模式)
在命令模式下输入’a’、’i’、’o’、’c’、’r’、’s’进入插入模式。
用户输入的任何字符都被Vi当作文件内容保存起来,并显示到屏幕上。
Last Mode(末行模式)
在命令模式下按下’:’即可进入该模式。用来进行保存文件、打开文档、搜索关键字、行跳转等功能。
键入的命令也需要区分大小写。
Vi的模式转换图
进入和内容输入
从终端进入Vi:vi 文件名 –> 命令模式
输入以下内容 –> 插入模式
- 新增(append)
– a 从光标所在位置后面开始新增内容
– A 从光标所在行最后边的位置开始新增内容
- 插入(insert)
– i 从光标所在的位置前边开始插入内容
– I 从光标所在行的第一个非空白字符前边开始插入内容
- 开始(open)
– o在光标所在的行下增加一行并进入输入模式
– O在光标所在行上新增一行并进入输入模式
命令模式
光标移动
- h 左移一个字符位
- l 右移一个字符位
- k 向上移一行字符位
j 向下移一行字符位
w, W 跳转后一个字的开头(W忽略标点)
- b, B 跳至前一个字的开头(B忽略标点)
- e 移动到后一个字的末尾
- ^ 至本行第一个非空的字符
- $ 至行末
- 0 至行首
- H 移动到当前窗口的第一列
- M 移动到当前窗口的中间列
- L 移动到视图的最后一列
- ) 光标所在位置到下个句子的第一个字母
- ( 光标所在位置该句子的第一个字母
- } 光标所在位置到该段落的后一个字母
{ 光标所在的位置到该段落的第一个字母
nH 将光标移动到屏幕的第n行
- nL 将光标移动到屏幕的倒数第n行
- CTRL-d 向下半页
- CTRL-f 向下一页
- CTRL-u 向上半页
- CTRL-b 向上一页
- n- 减号移动到上一行的第一个非空白字符,前面加上数字可以指定移动到以上n行
- n+ 加号移动到下一行的第一个非空白字符,前面加上数字可以指定移动到以下n行
删除
- x 删除光标所在字符
- X 删除光标前面字符
- s 删除光标所在字符,并进入输入模式
- S 删除光标所在行,并进入输入模式
- dd 删除光标所在行
- D 从光标位置开始删除到行末
- d 与光标移动命令的结合
复制和移动
- yy 复制当前行的内容到内存缓冲区
- nyy 复制n行内容到内存缓冲区
- p 将缓冲区的内容粘贴到光标的后边
- P(大写) 将缓冲区的内容粘贴到光标的前边
PS: 末行模式下的移动”:n1,n2 m n3” :将n1和n2行的内容移动到第n3行后
搜索字符串
- /pattern 移至下一个包含pattern的行
- ?pattern 移至上一个包含pattern的行
- / 往下重复查找
- ? 往上重复查找
- n 在同一方向重复查找
- N 在相反方向重复查找
- /pattern/+n 移至下一个pattern所在行后的第n行
- ?pattern?-n 移至上一个pattern所在行前的第n行
其他
- u 撤销前一条命令的结果
- Ctrl+r redo
末行模式
文件的保存和退出
- :w 保存
- :q 退出
- :w! 强制退出
- :wq 保存退出
- :wq! 强制保存退出
其他
- :n 将光标移到第n行
- 以下是编辑多个文件
- vi file1 file2
- :n 编辑下一个文件
- :N 编辑上一个文件
- :e filename 编辑 指定文件
编辑多文件时的窗口切换
- Ctrl+w 然后j 移动光标到下面的一个窗口
- Ctrl+w 然后k 移动光标到上面的一个窗口
- Ctrl+w 然后q 关闭当前窗口
- Ctrl+w 然后w 移动光标的另一个窗口
末行模式下的VIM环境设置
- :set nu(nonu) 显示行号
- :set hlsearch(nohlsearch) 设定搜索的字符串反白显示
- :set autoindent(noautoindent) 自动缩行
- :set backup(nobackup) 自动存储备份文件
- :set all 显示所有的选项
- :syntax on(off) 实现语法高亮