当前位置: 首页 > news >正文

vi 编辑器命令大全

  • vi是Linux中的文本编辑器
  • 设计的核心思想是:让程序员的手指始终在键盘的核心区域,就能完成所有的编辑操作。

基础操作

新建/打开

  • 打开/新建文件,vi 在后面跟上文件名:
    • 如果文件已经存在,会直接打开该文件
    • 如果文件不存在,会新建一个文件
    • vi test.c

打开定位到某行

  • 到打开一个文件,并定位到指定行:
    • vi 文件名 + 行数
    • 如果只带上+ 而不指定行号,会直接定位到文件末尾

文件异常处理

  • 如果vi异常退出(比如没保存就关闭了终端窗口),磁盘上可能会保存有交换文件
  • 下次再使用vi编辑文件时,会看到提醒信息,按下字母d删除交换文件即可

vi三种模式

命令行模式

  • 打开文件首先进入命令行模式
  • 可以通过命令,可以进行复制、粘贴、删除、定位等操作

插入模式

  • 也叫编辑模式,可以正常的编辑文字

底行模式

  • 光标位于屏幕的底行
  • 底行模式可以输入命令,进行文件的保存、查找、替换等
  • 要退出vi,返回到控制台,也是在底行模式下输入退出命令
  • 底行模式是vi的出口

常用命令

  • :q:(Quit)退出没有修改的文件(若文件被修改了而没有保存,则此命令无效)
  • :q!:强制退出,且不保存修改过的部分
  • :w:(Write)保存文件,但不退出
  • :x:(Exit)保存文件并退出 wq等价命令
  • :w File:另存为File给出的文件名,不退出
  • :r File:(Read)读入File指定的文件内容插入到光标位置
  • a``a:(Append)进入编辑状态,从当前光标之后的位置开始插入键盘输入的字符
  • i``I:(Insert)进入编辑状态,从当前光标之后的位置开始插入键盘输入的字符
  • o``O:(Open)进入编辑状态,并插入一新行,光标移到该新行的行首,以后键盘输入的字符将插入到光标位置
  • ESC:进入命令状态
  • :! Command:在vi中执行外部命令Command,按回车键可以返回vi继续工作

光标命令

移动光标

命令功能手指
h向左食指
j向下食指
k向上中指
l向右无名指

行内移动

命令功能
w向后移动一个单词
b向前移动一个单词
0行首
^行首,第一个不是空白字符的位置
$行尾

行数移动

命令功能
gg文件顶部(go)
G文件末尾
数字gg移动到数字对应行数
数字G移动到数字对应行数
:set nu设置显示行号
:set nonu取消显示行号

屏幕移动(浏览代码)

命令功能
ctrl + b向上翻页
ctrl + f向下翻页
H屏幕顶部
M屏幕中间
L屏幕底部

文本操作命令

文本选中

命令模式功能
v可视模式从光标位置开始按照正常模式选择文本
V可视行模式选中光标经过的完整行
  • esc可以放弃选中,回到命令行模式

文本删除/剪切

命令功能
[n]x删除光标所在字符
[n]dd删除光标所在行,可以ndd删除多行
  • 如果使用可视模式已选中了一段文本,d和x都可以删除选中文本
  • 命令d、x类似图形界面的剪切操作(ctrl + x)

文本复制、粘贴

命令功能
y复制
[n]yy复制一行,nyy复制多行
p粘贴
  • y0-将光标至行首的字符拷入剪贴板
  • y$-将光标至行尾的字符拷入剪贴板
  • d0-将光标至行首的字符剪切入剪贴板
  • d$-将光标至行尾的字符剪切入剪贴板
  • range y-块复制
  • range d-块剪切

撤销、恢复撤销

命令功能
u撤销上次命令
ctrl + r恢复撤销的命令

文本替换

命令功能模式
r替换当前字符命令模式
R替换当前行光标后的字符替换模式
  • R可以进入替换模式,替换完成后,按Esc可以返回命令模式
  • 替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改

文本查找

命令功能
/str查找str
n查找下一个
N查找上一个
  • 如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可

查找并替换

  • 需要在末行模式下执行:范围s/旧文本/新文本/g
    • s代表替换
    • g全部替换(默认换一行中的第1个)
  • 举例:
    • 10,20s/hello/HELLO/g 第10行到第20行
    • .,20s/hello/HELLO/g 当前行到第20行
    • 5,$s/hello/HELLO/g 第5行到最后一行
    • %s/旧文本/新文本/g 全文替换
  • 确认替换:%s/旧文本/新文本/gc
    • 会出现提示:
      • y-yes 替换
      • n-no 不替换
      • a-all 替换所有
      • q-quit 退出替换

分屏

命令功能
:sp[文件名]横向增加分屏
:vsp[文件名]竖向增加分屏
  • ctrl + h 光标到左边窗口
  • ctrl + l 光标到右边窗口
  • ctrl + j 光标到下面窗口
  • ctrl + k 光标到上面窗口
http://www.dtcms.com/a/580907.html

相关文章:

  • AI 预测 + 物联网融合:档案馆温湿度监控系统发展新趋势
  • Vue JSON结构编辑器组件设计与实现解析
  • 14_FastMCP 2.x 中文文档之FastMCP高级功能:MCP中间件详解
  • 软考中级软件设计师(下午题)--- UML建模
  • 机械臂时间最优规划
  • 【LeetCode刷题】两数之和
  • 10 月热搜精选
  • 郑州商城网站开发摄影网站源码 国外
  • Docker 加载镜像时报 no space left on device 的彻底解决方案
  • 5、prometheus标签
  • python+django/flask基于机器学习的就业岗位推荐系统
  • Mysql作业5
  • 为什么Vue 3需要ref函数?它的响应式原理与正确用法是什么?
  • STM32外设学习--TIM定时器--输入捕获---测频方法(代码编写)
  • 如何设置JVM参数避开直接内存溢出的坑?
  • (七)嵌入式面试题收集:8道
  • AI搜索营销破局:光引GEO多平台适配与实时优化引擎开发详解
  • 【有源码】基于Hadoop+Spark的起点小说网大数据可视化分析系统-基于Python大数据生态的网络文学数据挖掘与可视化系统
  • Windows10 wsl2 ubuntu22.04 docker安装
  • 使用docker-compose部署应用保姆级教程
  • 【Linux工具链】从跨平台适配到一键部署:yum多架构支持+Vim远程编辑+gcc交叉编译,解决多场景开发效率瓶颈
  • 简单做网站企业宣传视频制作免费模板
  • 西安SEO网站建设哪家好食品网站的网页设计
  • 网站开发公司哪家好嘉兴市建设工程监理协会网站
  • 天津做一个简单的网站首页wap门户网站源码
  • 热门软件排行榜泰州网站关键词优化
  • 怎么查询网站开发公司个人网站数据库大小
  • 营销型网站和传统网站区别ui设计技能就业培训
  • 威宁住房和城乡建设局网站wordpress is ssl
  • 网站域名缴费wordpress怎么改登陆地址