博客
关于我
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/

你可能感兴趣的文章
nodejs连接mysql
查看>>
NodeJs连接Oracle数据库
查看>>
nodejs配置express服务器,运行自动打开浏览器
查看>>
NodeMCU教程 http请求获取Json中文乱码解决方案
查看>>
Nodemon 深入解析与使用
查看>>
NodeSession:高效且灵活的Node.js会话管理工具
查看>>
node~ http缓存
查看>>
node不是内部命令时配置node环境变量
查看>>
node中fs模块之文件操作
查看>>
Node中同步与异步的方式读取文件
查看>>
node中的get请求和post请求的不同操作【node学习第五篇】
查看>>
Node中的Http模块和Url模块的使用
查看>>
Node中自启动工具supervisor的使用
查看>>
Node入门之创建第一个HelloNode
查看>>
node全局对象 文件系统
查看>>
Node出错导致运行崩溃的解决方案
查看>>
Node响应中文时解决乱码问题
查看>>
node基础(二)_模块以及处理乱码问题
查看>>
node安装卸载linux,Linux运维知识之linux 卸载安装node npm
查看>>
node安装及配置之windows版
查看>>