三种模式
- 命令模式
- 进入vi编辑器后的默认模式,在命令模式中,每一个按键都有其他的功能
- 输入模式
- 每一个按键按下什么,就向文本数据中输入什么
- 底行命令模式
- 可以直接在vi中输入特定的命令
模式切换
- a 追加:从光标当前位置后面开始输入字符(光标后移一个位置)
- i 插入:从光标当前位置的前一个位置开始输入字符(光标不会动)
- o 下一行:从光标当前位置下一行开始输入字符(光标转到下一行)
- I 行首:从光标当前所在行的行首开始输入
- A 行尾:从光标当前所在行的行尾开始输入
- O 上一行:从光标所在行的上一行开始输入
命令模式
- G最后一行
- gg跳转到第一行
- 数字gg(2gg)跳转到第数字(2)行(可以先在底行命令模式下敲set nu设置行号)
- w下一个单词
- 数字w(2w)下第数字(2)个单词
- dw 删除一个单词
- 数字dw(3dw)删除数字(3)个单词
- dd删除一行
- 数字dd(3dd)删除数字(3)行
- u回退到前面的操作(撤销)
- .回退u执行的操作
- yw复制一个单词
- 数字yw(3yw)复制数字(3)个单词
- p粘贴
- 数字p(6p)粘贴6次
- x剪切一个字符
- 数字x(3x)剪切数字(3)个字符
- r替换,然后输入一个字符替换
- 数字r(3r)替换数字(3)个字符
- hjkl方向键(左下上右)
- ZZ(大写)保存并退出
- ctrl+s锁屏 ctrl+q解锁
底行命令模式
- set nu 设置行号
- set nonu 取消行号
- w 保存
- q 退出
- wq 保存并退出
- 如果上次异常退出会保留同名隐藏文件,每次启动会给予提示
- 如果确定当前文件没有问题,请删除隐藏文件
- /pattern字符串查找
- 搜索指定的字符串(pattern)
- n向下查找 N逆向查找
- s/p1/p2/g
- 替换字符串(用p2的内容替换p1的内容)
- g替换当前行所有 否则只替换当前行第一个
- s/abc/luck/g(将当前行所有的abc替换为luck)
- 查找指定行
- 3,8s/abc/luck/g(将第3行和第8行的abc全部替换为luck)
- 替换全文
- g/abc/s//luck/g(将文本中所有的abc替换为luck)
常见错误
产生原因:修改文件后未正常保存并退出,而是异常退出,再次进入文件后就会出现这样的警告
解决:直接按回车进入文件后,显示的是之前修改后的文件内容。然后正常保存并退出,再使用
rm -rf .filetest.swp
删除掉隐藏文件,下次进入后就不会出现警告信息了