文本编辑器vi使用命令
使用对象:
用于编辑任何ASCII文本,对于编辑源程序尤其有用。可以对文本进行创建】查找、替换、删除、复制和粘贴等操作。
三种工作模式
- 命令模式:进入vi编辑器默认处于命令模式。命令模式下控制屏幕光标的移动,字符、字或行的删除,某区域的移动、复制等。在命令模式下,按冒号键【:】可以进入末行模式,按字母【a】键可以进入插入模式。
- 插入模式:只有在插入模式下,才可以进行文本编辑。在插入模式下按【Esc】键可以回到命令模式。
- 末行模式:将文件进行保存或退出vi编辑器,以可以设置编辑环境、替换字符或删除字符。在末行模式下按【Esc】键可以回到命令模式。
进入插入模式命令
| 命令 | 功能 |
|---|---|
| i | 从光标当前所在位置之前开始插入 |
| a | 从光标当前所在位置之后开始插入 |
| I | 在光标所在行的行首插入 |
| A | 在光标所在行的行末尾插入 |
| o | 在光标所在的行的下面新开一行插入 |
| O | 在光标所在的行的上面新开一行插入 |
| s | 删除光标位置的一个字符,然后进入插入模式 |
| S | 删除光标所在的行,然后进入插入模式 |
光标移动
| 命令 | 功能 |
|---|---|
| ↑键(向上箭头) | 使光标向上移动一行 |
| ↓键(向下箭头) | 使光标向下移动一行 |
| ←键(向左箭头) | 使光标向左移动一个字符 |
| →键(向右箭头) | 使光标向右移动一个字符 |
| k | 使光标向上移动一行 |
| j | 使光标向下移动一行 |
| h | 是光标向左移动一个字符 |
| l | 使光标向右移动一个字符 |
| nk | 使光标向上移动n行,n代表数字 |
| nj | 使光标向下移动n行,n代表数字 |
| nh | 使光标向左移动n个字符,n代表数字 |
| nl | 使光标向右移动n个字符,n代表数字 |
| H | 使光标移动到屏幕的顶部 |
| M | 使光标移动到屏幕中央 |
| L | 使光标移动到屏幕底部 |
| Ctrl+b | 使光标往上移动一页屏幕 |
| Ctrl+f | 使光标往下移动一页屏幕 |
| Ctrl+u | 使光标往上移动半页屏幕 |
| Ctrl+d | 使光标往下移动半页屏幕 |
| 0(数字0) | 使光标移动到所在行的行首 |
| $ | 使光标移动到光标所在行的行尾 |
| ^ | 使光标移动到光标所在行的行首 |
| w | 使光标跳到下一个字的开头 |
| W | 使光标跳到下一个字的开头,但会忽略一些标点符号 |
| e | 使光标跳到下一个字的字尾 |
| E | 使光标跳到下一个字的字尾,但会忽略一些标点符号 |
| b | 使光标移回到上一个字的开头 |
| B | 使光标回到上一个字的开头,但会忽略一些标点符号 |
| ( | 使光标移动到上一个句首 |
| ) | 使光标移动到下一个句首 |
| { | 使光标移动到上一个段落首 |
| } | 使光标移动到下一个段落首 |
| G | 使光标移动到文件尾(最后一行的第一个非空白字符处) |
| gg | 使光标移动文件首(第一行第一个非空白字符处) |
| space键(空格键) | 使光标向右移动一个字符 |
| Backspace键 | 使光标向左移动一个字符 |
| Enter键 | 使光标向下移动一行 |
| Ctrl+p | 使光标向上移动一行 |
| Ctrl+n | 使光标向下移动一行 |
| n分隔符 | 使光标移动到n个字符处,n代表数字 |
| nG | 使光标移动到n行首,n代表数字 |
| n+ | 使光标向下移动n行,n代表数字 |
| n- | 使光标向上移动n行,n代表数字 |
| n$ | 使光标移动到以当前行算起的第n行尾,n代表数字 |
命令模式命令
| 类型 | 命令 | 功能 |
|---|---|---|
| 删除 | x | 删除光标位置所在的字符 |
| X | 删除光标所在位置的前一个字符 | |
| nx | 删除光标所在位置的第n个字符 | |
| nX | 删除光标所在为主的前面n个字符,n代表数字 | |
| dd | 删除光标所在行 | |
| ndd | 从光标所在行开始删除第n行,n代表数字 | |
| db | 删除光标所在位置的前面一个单词 | |
| ndb | 删除光标所在位置的前面n个单词,n代表数字 | |
| dw | 从光标所在位置开始删除一个单词 | |
| ndw | 从光标所在位置开始删除n个单词,n代表数字 | |
| d$ | 删除光标到行尾的内容(含光标所在处字符) | |
| D | 删除光标到行尾的内容(含光标所在处字符) | |
| dG | 从光标位置所在行一直删除到文件尾 | |
| 复制和粘贴 | yw | 复制光标所在位置到单词尾的字符 |
| nyw | 复制光标所在位置开始的n个单词,n代表数字 | |
| yy | 复制光标所在行 | |
| nyy | 复制从光标所在行开始的n行,n代表数字 | |
| y$ | 复制光标所在位置到行尾内容或缓存区 | |
| y^ | 复制光标前面所在的位置到行首内容或缓存区 | |
| YY | 将当前行复制到缓冲区 | |
| nYY | 将当前开始的n行复制到缓冲区,n代表数字 | |
| p | 将缓冲区的内容写到光标所在的位置 | |
| 替换 | r | 替换光标所在处的字符,按【r】键以后输入要替换的字符 |
| R | 替换光标所到之处的字符,直到按下【Esc】键为止,【R】键之后输入要替换的字符 | |
| 撤销和重复 | u | 撤销上一个操作。按多次【u】可以执行多次撤销 |
| U | 取消所有操作 | |
| . | 再执行一次前面刚完成的操作 | |
| 列出行号 | Ctrl+g | 列出光标所在行的行号 |
| 保存和退出 | ZZ | 保存和退出 |
| ZQ | 不保存退出 | |
| 查找字符 | /关键字 | 先按【/】键,再输入想查找的字符,如果第一次查找的关键字不是想要的,可以一直按【n】键往后查找下一个关键字,而按【N】键则会往相反的方向查找。 |
| ?关键字 | 先按【?】键,再输入想查找的字符,如果第一次查找的关键字不是想要的,可以一直按【n】往前查找下一个关键字,而按【N】键会往相反方向查找 | |
| 合并 | nJ | 将当前行开始的n行进行合并,n代表数字 |
| J | 清除光标所在行与下一行之间的换行,行尾没有空格的话会自动添加一个空格 |
末行模式命令
| 类型 | 命令 | 功能 |
|---|---|---|
| 运行Shell命令 | :!command | 运行Shell命令,command代表命令 |
| :r!command | 将命令运行的结果信息输入到当前位置,command代表命令 | |
| :n1,n2w!command | 将n1到n2行的内容作为命令的输入,n1和n2代表数字,command代表命令 | |
| 查找字符 | :/str/ | 从当前光标开始往右移动到有str的地方,str代表字符 |
| :?str? | 从当前贵宾卡i是往左移动到有str的地方,str代表字符 | |
| 替换字符 | :s/str1/str2 | 将光标所在行第一个字符str1替换为str2,str1和str2代表字符 |
| :s/str1/str2/g | 将光标所在行所有的字符str1替换为str2,str1和str2代表字符 | |
| :n1,n2s/str1/str2/g | 用str2替换从第n1行到第n2行中出现的str1,str1和str2代表字符,n1和n2代表数字 | |
| :%s/str1/str2/g | 用str2替换文件中所有的str1,str1和str2代表字符 | |
| :.,$s/str1/str2/g | 将从当前位置到结尾的所有的str1替换为str2,str1和str2代表字符 | |
| 保持和退出 | :w | 保持文件 |
| :w filename | 将文件另存为filename | |
| :wq | 保持文件并退出vi编辑器 | |
| :wq filename | 将文件另存为filenam后退出vi编辑器 | |
| :wq! | 保存文件并强制退出vi编辑器 | |
| :wq! filename | 将文件另存为filename后强制退出vi编辑器 | |
| :x | 保存文件并强制退出vi编辑器,其功能和:wq!相同 | |
| :q | 退出vi编辑器 | |
| :q! | 如果无法离开vi,强制退出vi编辑器 | |
| :n1,n2w filename | 将从n1行开始到n2行结束的内容保持到文件filename中,n1和n2代表数字 | |
| :nw filename | 将第n行内容保持到文件filename中,n代表数字 | |
| :1,.w filename | 从第一行开始到光标当前位置的所有内容保持到文件filename中 | |
| :.,$w filename | 将光标当前位置到文件末尾的所有内容保持到文件filename中 | |
| :r filename | 打开另外一个已经存在的文件filename | |
| :e filename | 新建名为filename的文件 | |
| :f filename | 把当前文件改为filename文件 | |
| :/str/w filename | 将包含有str的行写到文件filename中,str代表字符 | |
| :/str1/,/str2/w filename | 将从包含有str1开始到str2结束的行内容写入到文件filename中,str1和str2代表字符 | |
| 删除 | :d | 删除当前行 |
| :nd | 删除第n行,n代表数字 | |
| :n1,n2 d | 删除从n1行开始到n2行为止的所有内容,n1和n2代表数字 | |
| :.,$d | 删除从当前行开始到文件末尾的所有内容 | |
| :/str2/,/str2/d | 删除从str1开始到str2为止的所在行的所有内容,str1和str2代表字符 | |
| 复制和移动 | :n1,n2 co n3 | 将从n1行开始到n2行为止的所有内容复制到n3行后面,n1、n2和n3代表数字 |
| :n1,n2 m n3 | 将从n1行开始到n2行为止的所有内容移动到n3行后面,n1、n2和n3代表数字 | |
| 跳到某一行 | :n | 在冒号后输入一个数字,再按回车键就会跳到该行,n代表数字 |
| 设置vi环境 | :set number | 在文件中的每一行前面列出行号 |
| :set nonumber | 取消在文件中的每一行前面列出行号 | |
| :set readonly | 设置文件为只读状态 |
摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著
文本编辑器vi使用命令的更多相关文章
- linux之文本编辑器vi常用命令
由于经常在linux下面文本操作,所以这里稍微系统的总结一下自己常用的vi命令 1.打开命令: vi+filename (还有各种打开的姿势,只不过我比较顺手这个) 2.退出命令: :q 退出而 ...
- linux使用文本编辑器vi常用命令
一:翻页 ctrl+u向上翻半页 ctrl+d 向下翻半页 ctrl+f/page up向上翻一页 ctrl+b/page on 向下翻一页 H光标移到当前页的第一个字符 M光标移到当前页的中 ...
- 文本编辑器 vi/vim 的使用
文本编辑器 vi/vim 一.启动与退出 1. vim 2. vim 文件名(可以是存在的文件,也可以是不在的文件) 3.退出 :q 或者:x 在非“插入”模式二.vi/vim的工作模式 1.正常 ...
- Linux常用命令汇总及使用方法(二)之文本编辑器VI
VI可能是在Linux中使用比较频繁的文本编辑器,如果不能熟练使用VI,在一定程度上会影响工作效率,所以在这里记录一下VI的常用命令及操作方式 在[root@test ~]# vi carrie.tx ...
- 快速上手Linux核心命令(六):Linux的文本编辑器vi和vim
@ 目录 前言 简介 小试牛刀 vi/vim 工作原理及三种模式 常用快捷键 命令行图解 前言 上一篇中已经预告,我们这篇主要说Linux中vi/vim 编辑器.它是我们使用Linux系统不可缺少的工 ...
- Linux 文本编辑器vi命令
1.Vim Vim 是一个功能强大的全屏幕文本编辑器,是 Linux/UNIX 上最常用的文本编辑器,它的作用是建立.编辑.显示文本文件. Vim 没有菜单,只有命令 2.Vim 工作模式 3.插入 ...
- part1:6-Linux文本编辑器vi
vi编辑器简介: vi是Linux系统的第一个全屏幕交互式编辑器:vim则是vi的升级版得到广大用户青睐. vim有三种工作模式:命令行模式.插入模式.底行模式 命令行模式常用功能键: yy:复制当前 ...
- Linux文本编辑器的常用命令
Vi文本编辑器 首先介绍命令模式,命令模式是在进入文本编辑器的时候的当前状态:输入模式(插入模式)是在插入文本时候按下的键,比如 大小 i 键,a键.o键:底行模式是在命令模式的状态直接输入冒号 & ...
- Linux学习笔记(4)-文本编辑器vi的使用
vi的三种编辑模式 命令模式(Command mode) 在此模式下可以控制光标的移动,可以删除字符,删除行,还可以对某个段落进行复制和移动 输入模式(Insert mode) 只有在此模式下,可以输 ...
- linux下的文本编辑器VI的使用命令
1. 移动光标 H #移到屏幕的左上角 M #移到屏幕的中间行开头 L #移到屏幕的最后一行 [ #移到文件开始位置 (双击) ] #移到文件结束位置(双击) :n #移到文件的第n行 Ctrl + ...
随机推荐
- Pinot2的无人机传感器和摄像头
目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 无人机传感器和摄像头在Pinot 2中得到广泛应用,其目的是为Pinot 2提供全面的传感器和 ...
- 人工智能政策@🤗: 回应美国国家电信和信息管理局 (NTIA) 关于人工智能问责制的评论请求
6 月 12 日,Hugging Face 向美国国家电信和信息管理局 NTIA 提交了一份关于 AI 责任政策的信息请求回应.在我们的回应中,我们强调了文档和透明度规范在推动 AI 责任过程中的作用 ...
- PostgreSQL 新手入门指引
自从MySQL被Oracle收购以后,PostgreSQL 逐渐成为开源关系型数据库的首选. 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作 ...
- Jmeter学习之七_使用influxdb2.7和grafana10进行Jmeter测试结果展示的方法
Jmeter学习之七_使用influxdb2.7和grafana10进行Jmeter测试结果展示的方法 摘要 前几天验证了 线程组内的-监听器 jp@gc 相关的组件 以及验证了 server-age ...
- Unity中的InitializeOnLoad特性:深入解析与实践
Unity中的InitializeOnLoad特性:深入解析与实践 在Unity开发过程中,我们经常需要在编辑器启动时或脚本重新编译后执行一些操作,例如初始化数据.注册事件等.这时,我们可以使用Ini ...
- AIGC:新AI时代,推动数字人进化的引擎
摘要:CV.NLP.大模型...AI技术的加持下,让数字人内外在更加生动真实.在未来的发展中,数字人的应用场景越来越广泛,并将发挥出重要的作用,让美好照进生活. 本文分享自华为云社区<AIGC: ...
- 每日一题:SpringBoot中支持的事务类型
以下是每种事务类型的作用.代码示例和对代码的解释: PROPAGATION_REQUIRED(默认): 作用:如果当前存在事务,则方法将在该事务中运行:如果不存在事务,则创建一个新的事务.适用于大多数 ...
- C语言循环坑 -- continue的坑
文章目录 前言 一.continue语法 1.continue的作用 2.语法 二.大坑项目 题目 分析 正确写法 三.进坑调试 第一种 第二种 总结 前言 在使用continue和break时,会出 ...
- 解决:ValueError: Cannot mask with non-boolean array containing NA / NaN values
错误原因:这里就是说,分组这一列里面,包含了非字符串的内容,比如数字.因为 .str.contains 的使用就要求这个字段必须是字符串,不能掺杂数字的. 解决方案: # 包含对应关系的所有行 dat ...
- protolator - Protobuf <==> json
github.com/hyperledger/fabric-config/protolator 是 Hyperledger Fabric 中的一个 Go 包,用于将 Protocol Buffers( ...