博客
关于我
vi使用时的注意事项
阅读量:324 次
发布时间:2019-03-04

本文共 1770 字,大约阅读时间需要 5 分钟。

1. vi 的基本概念

vi 可以分为三种操作状态:命令模式(Command mode)插入模式(Insert mode)底线命令模式(Last line mode)。每种模式有不同的功能,理解它们的区别对使用 vi 是非常重要的。

(1) Command mode

在 Command mode 下,您可以控制屏幕光标的移动,字符或光标的删除,移动复制某段文本及进入 Insert mode,或者切换到 Last line mode。

(2) Insert mode

在 Insert mode 下,您可以输入文字数据。要切换到 Insert mode,只需在 Command mode 下按下 iao 键。

  • i:插入,从光标所在位置开始输入文字。
  • a:插入,光标所在位置的下一行开始输入文字。
  • o:插入,光标所在位置的新行开始输入文字。

(3) Last line mode

在 Last line mode 下,您可以执行文件操作,如存储文件、离开编辑器或设置编辑环境(如寻找字符串、列出行号等)。


2. vi 的基本操作

(1) 如何进入 vi?

在终端或 shell 提示符下输入以下命令即可进入 vi:

vi testfile

进入 vi 后,默认处于 Command mode。如果想输入文字,需切换至 Insert mode。

(2) 如何切换至 Insert mode 编辑文件?

在 Command mode 下,按下以下任一键即可进入 Insert mode:

  • i:插入从光标所在位置开始输入文字。
  • a:插入,光标所在位置的下一行开始输入文字。
  • o:插入,光标所在位置的新行开始输入文字。

(3) 如何离开 vi 及存文件?

在 Command mode 下,执行以下命令即可离开 vi:

  • :w filename:将文章存入指定文件。
  • :wq:存入文件后离开 vi。
  • :q!:强制离开 vi,放弃编辑。

3. Command mode 功能键列表

(1) 常用移动光标键

  • h, j, k, l:左、下、上、右移动一格。
  • Ctrl+B/Ctrl+F:屏幕往后/前移动一页。
  • Ctrl+U/Ctrl+D:屏幕往后/前移动半页。
  • 0:移到当前行开头。
  • G:移到当前文件末尾。
  • w:移到下一个单词开头。
  • e:移到下一个单词结尾。
  • b:移到上一个单词开头。
  • $:移到当前行末尾。
  • ^:移到当前行第一个非空字符。
  • #:移到特定列位置(如 #51 表示第 51 列)。

(2) 删除文字

  • x:删除光标后一个字符。
  • #x:按次数删除后续字符(如 6x 删除 6 个字符)。
  • X:删除光标前一个字符。
  • #X:按次数删除前面字符(如 20X 删除 20 个字符)。
  • dd:删除当前行。
  • #dd:按次数删除行(如 6dd 删除 6 行)。

(3) 复制

  • yw:将光标处到末尾复制到缓冲区。
  • p:将缓冲区内容粘贴到光标位置。
  • yy:复制当前行。
  • #yy:按次数复制行(如 6yy 复制 6 行)。
  • ap:将缓冲区内容粘贴。

(4) 取代

  • r:替换光标处的字符。
  • R:替换直到按回车。

(5) 复原

  • u:撤销上一次操作。
  • ::重复上一次操作。

(6) 更改

  • cw:更改光标处的字符到末尾。
  • c#w:按次数更改字符(如 c3w 更改 3 个字符)。

(7) 跳至指定行

  • Ctrl+G:显示光标所在行的行号。
  • #G:跳至指定行(如 15G 跳至第 15 行)。

4. Last line mode 下指令简介

在 Last line mode 下,输入以下命令:

(1) 列出行号

  • set nu:在每行前添加行号。

(2) 跳至指定行

  • #:输入行号后按回车跳至该行。

(3) 寻找字符串

  • /关键字:按 / 输入要寻找的字符串,按 n 往下寻找。
  • ?关键字:按 ? 输入要寻找的字符串,按 n 往上寻找。

(4) 取代字符串

  • $s/原字符串/替换字符串/g:按次数替换字符串。
  • %s/原字符串/替换字符串/c:替换时需确认。

(5) 存文件

  • w:存入当前文件。
  • #w filename:存入指定文件(如 #30w 存入第 30 行到 filename)。

(6) 离开

  • q:离开 vi。
  • qw:离开时存入文件。
  • q!:强制离开 vi。

转载地址:http://djwh.baihongyu.com/

你可能感兴趣的文章
ntpdate同步配置文件调整详解
查看>>
NTPD使用/etc/ntp.conf配置时钟同步详解
查看>>
NTP及Chrony时间同步服务设置
查看>>
NTP服务器
查看>>
NTP配置
查看>>
NUC1077 Humble Numbers【数学计算+打表】
查看>>
NuGet Gallery 开源项目快速入门指南
查看>>
NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
查看>>
nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
查看>>
Nuget~管理自己的包包
查看>>
NuGet学习笔记001---了解使用NuGet给net快速获取引用
查看>>
nullnullHuge Pages
查看>>
NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
查看>>
null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外)
查看>>
Number Sequence(kmp算法)
查看>>
Numix Core 开源项目教程
查看>>
numpy
查看>>
Numpy 入门
查看>>
NumPy 库详细介绍-ChatGPT4o作答
查看>>
NumPy 或 Pandas:将数组类型保持为整数,同时具有 NaN 值
查看>>