Linux文本编辑器vi

一、vi/vim概述

vi/vim是所有Linux系统都提供的文本编辑器,它提供了一个窗口,通过它可以编辑文件;

(一)为什么要学习vi/vim?

  • 面试可能问
  • 工作中有的情况必须用到
  • 提高工作效率

(二)vim是vi的增强版本,支持vi的全部功能

  • 增加命令
  • 增强功能包括颜色标记功能

二、vi操作模式

(一)vi编辑器创建文件

命令格式:vi  文件名

如果vi后面跟具体的文件名,表示打开该文件进行查看和编辑

  • 如果文件已存在,则打开并编辑文件(看底部提示)
  • 如果文件不存在,则新建并编辑文件(看底部提示)

没有鼠标,纯键盘操作(和Windows的记事本比较)

(二)vi操作模式

vi可分为三种操作模式,分别是

  • 命令模式(command mode)
  • 插入模式(insert mode)
  • 底线模式(last line mode)

三种工作状态,完成不同的任务。

1.命令模式

  • 刚进入时的默认模式
    • 此时不可以直接添加文字
    • 不能用退格删除文字
  • 控制屏幕光标的移动
  • 字符的删除、复制、粘贴
  • 进入插入模式
  • 进入底线模式

2.插入模式

  • 在插入模式下面可以对文件内容进行编辑
  • 插入模式下底部有个--INSERT--标记
  • 在命令模式下,可以输入下面的字符进入插入模式
    • i  插入,从目前光标所在之处插入所输入的字符
    • a  增加,目前光标所在的下一个字符处开始插入字符
    • o  插入新的一行,从行首开始输入字符
  • 插入模式下按ESC健切换到命令模式

3.底线模式

  • 在插入模式下先按Esc键进入命令模式,再输入冒号: 进入底线模式
  • 在底线模式下,可以完成对文件的保存、内容替换、显示格式的设置等工作

4.三种模式切换

三、模式功能

(一)vi命令模式

1.光标移动

  • 按shift+g:移动到文件的最后一行行首
  • 按gg:移动到文件的开头
  • 按0或^:移动到所在行的行首
  • 按$:移动到所在行的行尾
  • 光标的上下左右移动:
    • 使用键盘上的方向键
    • 或者kjhl对应上下左右
  • 按ctrl+f或者pg dn:往下翻一页
  • 按ctrl+b或者pg up:往上翻一页

2.复制、粘贴、删除

  • x:删除

    • x是往后删,相当于delete键,X是往前删,相当于Backspace键
    • 3x表示删除光标所在位置开始的3个字符,包括光标所在位置
    • 如果输入命令错误,可以按Esc键取消
  • dw:删除光标所在处直到词尾的内容
  • dd:删除光标所在行,3dd表示删除从光标所在行开始的3行,包括光标所在行
  • yw:复制光标所在处到词尾的内容
  • yy:复制光标所在行,3yy表示复制3行
  • p:粘贴

3.替换、撤销

  • r:替换光标所在处的字符
  • shift + r:连续替换字符直到按ESC为止
  • u:假如误操作一个命令,可以马上按u进行撤销,可以连续按u撤销多个之前做出的操作(等于Windows下的ctrl + z
  • 反撤销:Ctrl + r

(二)插入模式

  • 可以插入字符

注意:

  • 上下左右键也可以导航
  • delete和backspace键可以删除字符

(三)底线模式

1.定位查找

在命令模式下输入冒号进入底线模式

  • :set nu  在每一行的行首显示行号
  • :set nonu  关闭显示行号
  • n  n是你要输入的数字,再按回车,将跳转到数字指定  的行
  • /关键字  先按/,再输入你要查找的字符
    • 可以输入n,向下继续查找
    • shift+n是往上查找
    • set ic:设置忽略大小写
    • set noic:设置不忽略大小写

2.字符替换

在底线模式下输入"1,$s/oldstring/newstring/g"会将全文的oldstring字符串替换成newstring字符串

  • 1,$表示从第一行到最后一行
  • s表示替换
  • g表示每行全部替换
  • 或者简写成:%s/oldstring/newstring/g

:1,20s/oldstring/newstring/g  将1至20行间的oldstring替换成newstring字符串

3.保存退出

  • :行号 w 文件名  如果你想摘取文件的某一段,存为另一个文件,可以使用这个指令,例如30,50 w nice

  • :w 新文件名  将文件另存为新文件

  • :wq  保存并退出

  • :q!  强制退出vi并不保存当前的修改内容

相关推荐

  1. Linux基础: 五. 文本编辑器vivim

    2024-03-11 09:52:04       18 阅读
  2. LinuxVim命令】文本编辑器

    2024-03-11 09:52:04       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-11 09:52:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-11 09:52:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-11 09:52:04       82 阅读
  4. Python语言-面向对象

    2024-03-11 09:52:04       91 阅读

热门阅读

  1. 归并排序

    2024-03-11 09:52:04       45 阅读
  2. 微信小程序-wxml语法

    2024-03-11 09:52:04       50 阅读
  3. Keepalived工具的基本介绍(原理:VRRP协议)

    2024-03-11 09:52:04       41 阅读
  4. MongoDB聚合运算符:$dayOfYear

    2024-03-11 09:52:04       48 阅读
  5. selenium启用MS Edge浏览器/下载MS Edge WebDriver

    2024-03-11 09:52:04       43 阅读
  6. 嵌入式开发的3种架构

    2024-03-11 09:52:04       45 阅读
  7. 大数据开发(Spark面试真题-卷四)

    2024-03-11 09:52:04       47 阅读
  8. 新概念英语第二册 (75)

    2024-03-11 09:52:04       35 阅读