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

使用Linux中的 v i m 编辑器

配置文件时Linux操作系统的显著特征之一,其作用有点类似Windows中的注册表,只不过注册表是几种管理,而配置文件是分散自由的管理。下面给大家介绍Linux字符操作界面中的文本编辑器——vi,以便更好的管理和维护系统中的各种配置文件。

vi编辑器的工作模式有三种,不同的模式中能够对文件进行的操作也不相同。

1、命令模式:启动vi编辑器后默认进入命令模式。该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作。

2、输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改或添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“——INSERT——”的状态提示信息。

3、末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换、等操作。处于末行模式时,vi编辑器的最后一行会出现冒号 “ :”提示符。
使用Linux中的  v  i  m  编辑器

vi的使用格式为:vi 文件名

在打开的文件 “命令模式” 中移动的光标的方法很多,如:
1、page down、page up分别是向上或向下翻页;
2、上下左右四个方向键也可以用来移动光标;
3、按 “home” 键可以快速跳转到本行的行首;
4、按 “end” 键可以快速跳转到本行的行尾;
(以上一些在输入模式中一样通用)
5、如果想要跳转到文件内容中的第10行,可以直接输入数字 “10” 后按回车键,即可跳转到文件中的第10行。(我们可以在末行模式中执行:“set nu” 即可显示行号,执行:
“set nonu” 即可取消显示行号。)
使用Linux中的  v  i  m  编辑器

复制、粘贴和删除

1、删除操作:
按 x 键或 delete 键删除光标处的单个字符。
使用按键命令 dd 删除当前光标所在的整行内容。

2、复制操作:
使用按键命令 yy 复制当前整行的内容到剪贴板。

3、粘贴操作:
在 vi 编辑器中,前一次被删除或复制的内容将会保存到剪切板缓冲区中,按
“p”键即可将缓冲区中的内容粘贴到光标位置处之后,按 “P” 键则会粘贴到光标位置之前。

查找文件中的内容

在命令模式中,按 / 键后可以查找指定的字符串,从当前的光标处开始向后进行查找,完成查找后可以按 n 在不同的查找结果中进行选择。
使用Linux中的  v  i  m  编辑器

撤销编辑及保存和退出

在对文件内容进行编辑时,有时候要对一些失误的编辑操作进行撤销,这时可以使用按键命令 u U 键。其中 u 键命令用于取消最近一次的操作,并恢复操作结果,可以多次重复按 u 键恢复已进行的多步操作; U 键命令用于取消对当前行所做的所有编辑。

当需要保存当前文件内容并退出 vi 编辑器时,可以使用按键命令 ZZ 。

末行模式中的基本操作

在 末行模式 中输入 w 可以保存当前文件内容 ,如果要另存为其他文件,那么 w 后面加路径和文件名。
使用Linux中的  v  i  m  编辑器

在末行模式中输入:
q:退出
wq或x:保存并退出
q! :强制退出(就是不保存退出)
r 其他文件:读取其他文件中的内容,并复制到当前光标所在位置
还可以在末行模式中替换文件中的字符:
使用Linux中的  v  i  m  编辑器
使用Linux中的  v  i  m  编辑器
% :表示在整个文件中进行查找并替换。
5,15:表示在5--15行进行查找并替换。
/g :为可选,表示对替换范围每一行的所有匹配结果都进行替换,省略 /g 的话将只替换每行中的第一个匹配结果

转载于:https://blog.51cto.com/14154700/2348003

相关文章:

  • Chrome 72 禁止第三方程序代码注入
  • python博客
  • windows2012服务器中安装php7+mysql5.7+apache2.4环境
  • Python 基础起步 (十) 什么叫函数?
  • mysql innodb 索引使用指南
  • linux命令行模式下输入Ctrl+s后界面锁定,假死。
  • CLR的执行模型(1):将源代码编译成托管模块
  • 聊聊flink的TableFactory
  • SpringAOP源码分析总结
  • mongodb分片
  • 某些编程语言更容易出错?研究人员提出质疑
  • 通过npm或yarn自动生成vue组件
  • EOS是什么
  • 互联网大厂Java面试题:使用无界队列的线程池会导致内存飙升吗?
  • App Store 隐私政策网址(URL)
  • 【Leetcode】101. 对称二叉树
  • 345-反转字符串中的元音字母
  • echarts花样作死的坑
  • ECMAScript6(0):ES6简明参考手册
  • fetch 从初识到应用
  • IOS评论框不贴底(ios12新bug)
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • java小心机(3)| 浅析finalize()
  • js学习笔记
  • maya建模与骨骼动画快速实现人工鱼
  • Median of Two Sorted Arrays
  • Object.assign方法不能实现深复制
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • scrapy学习之路4(itemloder的使用)
  • spring + angular 实现导出excel
  • Zsh 开发指南(第十四篇 文件读写)
  • 电商搜索引擎的架构设计和性能优化
  • 多线程事务回滚
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 给第三方使用接口的 URL 签名实现
  • 基于Android乐音识别(2)
  • 简单基于spring的redis配置(单机和集群模式)
  • 通过几道题目学习二叉搜索树
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 用简单代码看卷积组块发展
  • No resource identifier found for attribute,RxJava之zip操作符
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • (3)llvm ir转换过程
  • (a /b)*c的值
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二)pulsar安装在独立的docker中,python测试
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (排序详解之 堆排序)
  • (转)http-server应用
  • (转)memcache、redis缓存
  • (转)visual stdio 书签功能介绍
  • (转)创业家杂志:UCWEB天使第一步
  • (轉)JSON.stringify 语法实例讲解
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况