vi编辑器

认识vi

vi打开和新建文件

  • 在终端中输入 vi 在后面跟上文件名即可
    $ vi 文件名
    如果文件已经存在,会直接打开该文件
    如果文件不存在,会新建一个文件

vi-打开文件并且定位行

  • 有可能会遇到打开一个文件,并定位到指定行的情况
    例如,知道某一行代码有错误,可以快速定位到出错代码的位置
  • 可以使用以下命令打开文件
    $ vi 文件名 +行数
    提示:如果只带上+而不指定行号,会直接定位到文件末尾

vi-异常情况的处理

  • 如果vi异常退出(比如没保存就关闭了终端窗口),磁盘上可能会保存有
    交换文件
  • 下次再使用vi编辑文件时,会看到以下屏幕信息,按下字母d删除交换文件即可
    在这里插入图片描述

vi的三种模式及切换

三种模式

  • 命令行模式

    • 打开文件首先进入命令行模式。这是使用vi的入口
    • 可以通过命令,可以进行复制、粘贴、删除、定位等操作
  • 插入模式(编辑模式)正常的编辑文字。

  • 底行模式

    • 光标位于屏幕的底行。
    • 底行模式可以输入命令,进行文件的保存、查找、替换等
    • 要退出vi,返回到控制台,也是在底行模式下输入退出命令
    • 底行模式是vi的出口

vi三种模式的切换

在这里插入图片描述

vi底行模式下相关命令

命令功能
:q退出没有修改的文件(若文件被修改了而没有保存,则此命令无效)
:q!强制退出,且不保存修改过的部分
:w保存文件,但不退出
:x保存文件并退出wq等价命令
:w File另存为File给出的文件名,不退出
:r File读入File指定的文件内容插入到光标位置

vi模式切换命令

命令功能
A a进入编辑状态,从当前光标之后的位置开始插入键盘输入的字符
I i进入编辑状态,从当前光标之后的位置开始插入键盘输入的字符
O o进入编辑状态,并插入一新行,光标移到该新行的行首,以后键盘输入的字符将插入到光标位置
ESC进入命令状态
:!Command在vi中执行外部命令Command,按回车键可以返回vi继续工作

vi光标命令

  • 熟练使用vi命令,要学会在命令行模式下,快速移动光标
    • h:向左👈
    • j:向下👇
    • k:向上👆
    • l:向右👉

在这里插入图片描述

  • 行内移动:

    • w:向后移动一个单词(word)
    • b:向前移动一个单词(back)
    • 0:行首
    • ^:行首,第一个不是空白字符的位置
    • $:行尾
  • 行数移动:

    • gg:文件顶部
    • G:文件末尾
    • 数字gg移动到数字对应行数
    • 数字G移动到数字对应行数
    • :setnu设置显示行号
    • :setnonu取消显示行号
  • 屏幕移动(浏览代码)

    • ctrl+b:向上翻页
    • ctrl+f:向下翻页
    • H:屏幕顶部
    • M:屏幕中间
    • L:屏幕底部

vi复制、剪辑、粘贴

vi选中文本

命令模式功能
v可视模式从光标位置开始按照正常模式选择文本
V可视行模式选中光标经过的完整行
  • esc可以放弃选中,回到命令模式

vi删除/剪切文本

命令功能
[n]x删除光标所在字符
[n]dd删除光标所在行,可以ndd删除多行
  • 如果使用可视模式已选中了一段文本,d和x都可以删除选中文本
  • 命令d、x类似图形界面的剪切操作(ctrl+x)

vi复制粘贴

命令功能
y复制
[n]yy复制一行,nyy复制多行
p粘贴

vi复制剪切

  • y0-将光标至行首的字符拷入剪贴板
  • y$-将光标至行尾的字符拷入剪贴板
  • d0-将光标至行首的字符剪切入剪贴板
  • d$-将光标至行尾的字符剪切入剪贴板
  • range y-块复制
  • range d-块剪切

vi撤销和恢复撤销

命令功能
u撤销上次命令
ctrl+r恢复撤销的命令

vi查找/替换/分屏

vi替换命令

命令功能工作模式
r替换当前字符命令模式
R替换当前行光标后的字符替换模式
  • R可以进入替换模式,替换完成后,按Esc可以返回命令模式

  • 替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改

vi查找命令

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

vi查找并替换

  • 需要在末行模式下执行:范围s/旧文本/新文本/g
    • s代表替换
    • g全部替换(默认换一行中的第1个)
举例:
10,20s/hello/HELLO/g	第10行到第20行
.,20s/hello/HELLO/g		当前行到第20行
5,$s/hello/HELLO/g		第5行到最后一行
%s/旧文本/新文本/g		全文替换
  • 确认替换:

    • %s/旧文本/新文本/gc会

      出现提示:

      y-yes替换

      n-no不替换

      a-all替换所有

      q-quit退出替换

vi分屏命令

命令功能
:sp[文件名]横向增加分屏
:vsp[文件名]竖向增加分屏
  • ctrl + h光标到左边窗口
  • ctrl + l光标到右边窗口
  • ctrl + j光标到下面窗口
  • ctrl + k光标到上面窗口
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值