一. 文件非正常关闭
如果以非正常的方式关闭了一个文件,比如没有保存就关闭,下一次再用vi打开该文件的时候,会出现以下情况:
查看当前路径下的文件,产生了一个swp文件,这是因为你在非正常关闭文件的时候,系统会把你已经写入的但是没有保存的信息保存在这个swp的交换文件里,这个后缀的文件是因为vi写文件时,没有保存就关闭,系统自动产生的。下次再打开该文件的时候就会报上面的文件提示:
参考第一章图片的最下面的命令提示,如果原来写的未保存的内容是有用的,就先按R回复到以前写入的内容,然后正常保存文件,然后再到当前目录下删除掉这个隐藏的交换文件即可。如果原来写的内容没有用,可以按D,直接删除交换文件,然后该界面的内容就是空的,可以重新写入新的内容,此时当前路径下就没有那个交换文件存在,下一次打开这个文件时就不会出现提示。
二. vim下的三种模式
< 1 > 三种模式的相互转换
< 2 > 命令模式进入编辑模式的六种方法
- 小写的o表示在当前光标的下一行插入
- 小写的i表示在光标前面插入
- 小写的a表示从光标的后面插入
- 大写的I表示在行首插入
- 大写的A表示在行末插入
- 大写的O表示在当前光标的上一行插入
三. 命令模式下的指令
< 1 > 剪切和粘贴
- yy:复制 光标所在的这一行
- 4yy:复制 光标所在行开始向下的4行
- p:粘贴
- dd:剪切 光标所在的这一行
- 2dd:剪切 光标所在行的向下2行
- D:从当前位置的光标开始,一直到行末的内容全部被剪切
- d0:从当前位置的光标开始,一直到行首的内容全部被剪切
- d+w:删除当前光标开始的一个单词
< 2 > 命令行移动光标
- H 为往左移动光标
- J 为往下移动光标
- K 为往上移动光标
- L 为往右移动光标
- 大写M,表示快速移动到当前一整页屏幕的中间部分
- 大写L,表示快速移动到当前一整页屏幕的最下面一行
- 大写H,表示快速移动当前一整页屏幕的最上面一行
- x:删除当前的光标的内容.每次只会删除一个,往后删除
- X:删除当前的光标的内容.每次只会删除一个,往前删除
< 3 > 快速上下翻页
- Ctrl+f 快速下翻一页
- Ctrl+b 快速上翻一页
< 4 > 快速定位到文本的某一行
- 20G:快速定位到文本的第20行
- G:快速定位到文本的最后一行
- gg:快速定位到文本的第一行
- w:向后跳一个单词的长度,即调到下一个单词的开始处
- b:向前跳一个单位的长度,即调到上一个单词的开始处
- {:按段移动,上移
- }:按段移动,下移
< 5 > 微操作
- u:撤销刚刚的操作
- Ctrl+r:反撤销
- v:之后按上下左右键选一片,小写v表示光标在哪就选到哪里
- V:之后按上下左右键选一片,大写V表示光标经过一行,就选中这一整行
- >>:代码选中的情况下向右移动整片代码
- <<:代码选中的情况下向左移动整片代码
- .:重复执行上一次的命令
< 6 > 命令模式下的替换
- r:替换一个字符
- R:替换光标以及后面的所有字符
< 7 > 末行模式下的替换
%s/abc/123/g
:末行模式下,将当前文件中的所有abc替换成1231,10s/abc/123/g
:末行模式下,将第一行至第10行之间的abc替换成123