liunx之vi的基本操作和概念

1.Vi的基本概念

vi 可以分为三种基本模式分别为 命令模式(command mode)、插入模式(Insert mode)和末行模式也有的叫底行模式(last line mode)

注意:这并不是说vi只有三种模式

(1)命令行模式

可以控制屏幕光标的移动,字符、字或行的删除

(2)插入模式

按 i 键进入插入模式 ,可以对文本进行修改操作,按esc可以回到命令行模式

(3)底行模式

按:(冒号)进入底行模式,用于将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号、跳到n行等等操作。
显示行号:set number
隐藏行号:set nonumber

2.操作

(1)命令行模式

1.光标移动

a、字符

左(h)  下(j)  上(k)  右(l)

b、单词

命令操作
w移动到下个单词首字母
b移动到上个单词首字母
e下个单词结尾

c、行

命令操作
0行首
^行首,第一个不是空白字符的位置
$行尾

d、段落

​ { 上一段

​ } 下一段

e、屏幕

​ H 屏幕顶部

​ M 屏幕中间

​ L 屏幕底部

f、文档

命令操作
G文档尾部
nG文档第n行
gg文档第一行
crtl+f 或 pagedown向下翻页
crtl+b 或 pageup向上翻页
n+enter向下移动n行
:数字通过底行模式移动到数字对应的行数

2.内容删除

命令操作
d(移动命令)删除移动命令对应的内容
dd删除当前行
D删除至行尾
x删除当前字符
cw删除光标所在字母后面的字符
dw从光标位置删除到单词末尾
d0从光标位置删除至一行的起始位置
d}从光标位置删除到段落末尾
ndd自当前行向下删除n行

3.内容复制与剪切

命令操作
d剪切
dd剪切一行 ,可以ndd剪切n行
yy复制光标当前行
nyy自当前行复制n行
p对(删除)复制的内容进行粘贴

4.撤销和恢复撤销

命令操作
u撤销
.重复上次操作
ctrl+r恢复撤销的命令

(2)插入模式

  • 在 vi 中除了常用 i 进入编辑模式 外, 还提供了一下命令同样可以进入编辑模式
命令英文功能常用
iinsert在当前字符前插入文本常用
Iinsert在行首插入文本较常用
aappend在当前字符后添加文本
Aappend在行末添加文本较常用
o在当前行后面插入一空行常用
O在当前行前面插入一空行常用

(3)底行模式

命令英文功能
:wwrite保存
:qquit退出,如果没有保存,不允许退出
:q!quit强行退出,不保存退出
:wqwrite & quit保存且退出(末行模式)
:x保存并退出(末行模式)
:ZZ保存并退出(命令模式)

(4)替换与查找

①替换

  • R 命令可以进入 替换模式, 替换完成后, 按下ESC , 按下 ESC 可以回到 命令模式
  • 替换命令 的作用就是不用进入 编辑模式, 对文件进行 轻量级的修改
命令英文功能工作模式
rreplace替换当前字符命令模式
Rreplace替换当前行光标后的字符替换模式

②查找

常规查找

命令功能
/str查找str
  • 查找到指定内容之后, 使用 Next 查找下一个出现的位置

    • n : 查找下一个
    • N : 查找上一个
  • 如果不想看到高亮显示, 可以随便查找一个文件中不存在的内容即可

  • 单词快速匹配

命令功能
*向后查找当前光标所在单词
#向前查找当前光标所在单词
  • 在开发中, 通过单词快速匹配, 可以快速看到这个单词在其他位置使用过

③ 查找并替换

  • vi 中查找和替换命令需要在 末行模式 下执行
  • 记忆命令格式
:%s///g
  1. 全局替换
  • 一次向 替换文件中的 所有出现的旧文本

  • 命令格式如下

    :%s/旧文本/新文本/g
    
  1. 可视区域替换
  • 先选中 要替换文字的 范围
  • 命令格式如下
:s/旧文本/新文本/g
  1. 确认替换

c confirm 确认

  • 如果把末尾的 g 改成 gc 在替换的时候, 会有提示! 推荐使用

  • 命令格式如下

    :%s/旧文本/新文本/gc
    
  1. y - yes 替换
  2. n - no 不替换
  3. a - all 替换所有
  4. q -quit 退出替换
  5. l - last 最后一个, 并把光标移动到行首
  6. ^E 向下滚屏
  7. ^Y 向上滚屏

提示:

  • 在开发中, 可能会遇到连续输入 N 个同样的字符
  • 例如: ********** 连续10个星号

要实现这个效果可以在 命令模式

  1. 输入 10, 表示要重复10次
  2. 输入 i 进入 编辑模式
  3. 输入 * 也就是重复的文字
  4. 按下 ESC 返回 命令模式, 返回之后 vi 就会把 第 2、3 两步的操作重复 10

提示: 正常开发时, 在 进入编辑模式之前,不要按数字

最后:1.如果有写的不对的地方欢迎各位大神给我留言,本人看到后会及时修改

​        2.如果因为出错而为您带来不便敬请见谅,同时希望及时给我留言!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值