VI 编辑器的使用

VI编辑器-概述

Visual Interface(可视化接口)

编辑

  • source insight
  • VC
  • getit – 记事本
  • vi
  • vim

类似 Windows 中的记事本,vi 是 Linux 中最基本的编辑器。但 vi 编辑器在系统管理、服务器配置工作中永远都是无可替代的。

  • VI 相对于记事本强大的不是一星半点

VIM 相对于 VI 做了哪些提升

  • VIM 支持多级撤销
  • VIM 可以跨平台运行
  • VIM 支持语法高亮
  • VIM 支持图形界面

熟悉 vi 的三种模式及模式切换命令

vi 有以下三种模式

  • Command Mode - 命令行摸式:用户在用 VI 编辑文件时,最初进入的为该摸式。可以进行复剩、粘贴等操作。
  • Insert Mode - 插入摸式:进行文件编辐,按 ESC 键可以回到命令行摸式。
  • Last Line Mode - 底行摸式:光标位于屏幕的底行。可以进行文件的保存、退出、查找、替换、列出行号等

vi 模式切换命令

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

熟练使用 vi 的拷贝和粘贴命令

命令功能
p 或 P(Put)从编辑缓冲区复制文本到当前光标位置(即粘贴)小写:粘贴至下一行、大写:粘贴至上一行
[N]x(Expurgate)删除从光标位置开始的连续 N 个字符(并复制到编辑缓冲区)
[N]yy(Yank)复制从光标位置开始的连续 N 行到编辑缓冲区
y0将光标至行首的字符拷入剪贴板
y$将光标至行尾的字符拷入剪贴板
[N]dd(Delete)删除从光标位置开始的连续 N 行(并复制到编辑缓冲区)
d0将光标至行首的字符剪切入剪切板
d$将光标至行尾的字符剪切入剪切板
dw将光标至 tab 处的字符剪切入剪切板
range y块复制,比如:20, 30y
range d块剪切

熟练使用 vi 的保存和退出命令

命令功能
:w(Write)保存文件,但不退出
:w (file)另存为 File 给出的文件名,不退出;一般不用
:!强制执行
:q(Quit)退出没有修改的文件(若文件被修改了而没有保存,则此命令无效)
:q!强制退出,且不保存修改过的部分
:x(Exit)保存文件并退出
:r (file)(Read)读入 File 指定的文件内容插入到光标位置
:ls列出打开的所有文件
:n切换到后一个文件
:N切换到前一个文件

熟练使用 vi 的光标命令

命令功能
x删除一个字符
r替换一个字符
R替换字符,遇到esc停止
b移动到单词的开头
e移动单词的结尾
cb删除光标前面的单词,进入插入模式
ce删除光标后面的单词,进入插入模式
[n]gg将光标移动到第 n 行
1G移动光标到文件的第 1 行(数字 1)
G移动光标到文件最后一行
u(Undo)取消上一次操作(即恢复功能)
0光标跳到行首
$光标跳到行尾
:N移动光标到第 N 行(N 待定)
:set number(:set nu设置显示行号
:set nonumber(:set nonu取消显示行号

熟练使用 vi 的查找命令

/string?string 向前、向后查找字符串(底行模式下)比如:/root

  • n 继续查找
  • N 反向继续查找
  • 支持正则表达式比如:/^the(以 the 开头)/end$(以 end 结尾)

熟练使用 vi 的替换命令

利用 :s 命令可以实现字符串的替代(底行模式下)

  • :[范围]s/str1/str2/
  • :[范围]s/str1/str2/g g 是全部的意思,如果没有,每一行只替换 1 个
  • :.,$s/str1/str2/g 范围是从当前行到文章末尾
  • :1,$s/str1/str2/g 范围是从第一行到文章末尾
  • :%s/str1/str2/g 全文替换(% = 1,$

vi 的文本编辑

  • TAB 键补全 int main(arg ...)

使用 vi 分析源代码

ctrl ]:vi 中定位定义

ctrl o:返回上一页

总结与思考

vi 的基本命令

  • 三种模式、 模式切换命令
  • 拷贝和粘贴命令
  • 保存和退出命令

建议尽可能多的学习、熟练关于 vi 编辑器使用的命令。

参考资料 vi 手册

主要讲了 vi 编辑器的光标命令、 查找命令、替换命令及复制和剪切命令

vi 编辑器是嵌入式 Linux 环境下开发人员每天工作都要使用的工具,建议多学习、熟练关于 vi 编辑器的使用命令

思考:

  • 利用 vi 编辑器, 如何进行替换操作?

思考

  1. 在 VI 编辑器中如果我们想将一个文件中的第 5 到第 30 行中的字符“abc”替换成“ABC”我们使用什么命令?

    :5,30s/abc/ABC/g

  2. 0x55 转化成二进制得到的结果为?在 ASCII 码表中字符 3 对应的是数值?

    0x55 = 0b1010101

    3 = 0b51

  3. 假如我们使用 VI 编辑器在 Hello.c 文件中编写了一段 C 程序且已经保存,如果我们想编译该 C 程序生成可执行文件 hello 应该输入什么命令?

    gcc -o hello hello.c

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值