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

RHCSA的学习(4)

一、vi编辑器

(1)为什么学vi?

  • 所有的Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在;
     
  • 很多个别软件的编辑接口都会主动呼叫 vi (例如未来会谈到的 crontab, visudo, edquota 等指令);
  • vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;
  • 程序简单,编辑速度相当快速。

Vim的发布最早可以追溯到1991年,英文全称为:“Vi IMproved”,也就是对vi编辑器的提升版本,其中最大的改进当属对代码的着色功能,亦有些编程场景能够自动修正错误代码。

在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数。在日常工作中大家也肯定免不了要编写文档,这些工作都是通过文本编辑器来完成的。Vim之所以能得到广大厂商与用户的认可,原因在于Vim编辑器中设置了三种模式:命令模式、末行模式编辑模式(插入模式),每种模式别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。

(2)使用vi/vim编辑文件

#在每次运行Vim编辑器时,默认进入命令模式
[root@master ~]# vim /etc/passwd  也可以就输入一个 vim,也是默认进入命令模式
[root@master ~]# vim

1、vim三种模式的切换

特点区分(都是看最后一行底部):

  • 命令模式:没有任何信息或显示文件名和相关信息
  • 插入模式:最后一行显示  insert
  • 末行模式:最后一行显示  :

2、命令模式下的常用按键

(1)光标跳转按键

(2)复制、粘贴、删除

补充:

d + enter删除光标所在行以及光标下一行
删除光标所在字符
Ndd(例:3,5dd)删除光标行开始3-5行内容
dG删除光标所在行到文档尾
dgg删除光标所在行到文档首
s字符替换,替换光标所在字符
cc剪切光标所在行
ctrl  +   r 向右撤销

命令模式进入插入模式的方式

按esc键可从编辑模式切换到命令模式

命令模式进入插入模式的方式

按 : 或者 / 可从命令模式切换到末行模式。按esc键可从末行模式切换到命令模式。

3、末行模式

(1)查找关键字并替换

(2)保存退出

(3)其他操作

补充:

取消高亮显示:noh
跳转到第5行:5
将所有行的0字符替换出2: s/0/2/g

4、vim的拓展用法

(1)可视化模式

按Ctrl+v进入可视化模式
该模式下通过光标移动选择文本,选取后按 y 可以把文本提取到缓冲区(即复制),c 可以剪切。之后可以使用p在光标后粘贴,P粘贴在光标前

(2)多文档编辑

在打开一个文件的时候,输入 :sp /dir/file 可分屏显示另一个文件

光标在多个文件之间的切换按ctrl+w w

5、vim的配置文件

[root@master test]#vim /etc/vimrc
[root@master test]#vim ~/.vimrc
set hlsearch            "高亮度反白
set backspace=2      "可随时用退格键删除
set autoindent        "自动缩排
set tabstop=4        "缩进
set softtabstop=4   softtabstop是“逢4空格进1制表符”,前提是你tabstop=4
set shiftwidth=4     自动缩进空格长度
set mouse=a            "使用鼠标
set selection=exclusive
set selectmode=mouse,key
set ruler               "可显示最后一行的状态
set showmode            "左下角那一行的状态
set nu                  "可以在每一行的最前面显示行号啦!
set bg=dark             "显示不同的底色色调
syntax on               "进行语法检验,颜色显示

6、vim练习

(1)修改主机名

[root@localhost ~]# vim /etc/hostname

(2)设置登录欢迎语

[root@localhost ~]# vi /etc/motd
hello

(3)修改中断当前进程的快捷键

[root@localhost ~]# vi ~/.bashrc
stty intr "^b"
#中断当前进程的快捷键就会变成ctrl+b

http://www.lryc.cn/news/456369.html

相关文章:

  • linux-二进制工具
  • 《数据结构》学习系列
  • 沂机管理系统/data/Ajax.aspx接口存在SQL注入漏洞
  • JVM 内存模型与垃圾回收过程详解
  • python:PyPDF2 将多个图片转换为pdf,再合并成一个PDF文件
  • Python精选200Tips:186-190
  • C、C++常用数据结构:链表
  • 【devops】devops-ansible之剧本变量使用
  • 《Linux从小白到高手》理论篇:一文概览常用Linux重要配置文件
  • 采购管理流程:掌握最后阶段的关键要点
  • cherry-markdown开源markdown组件详细使用教程
  • Android SystemUI组件(10)禁用/重启锁屏流程分析
  • 【Geeksend邮件营销】外贸邮件中的一些常用语
  • 配置静态ip
  • [LeetCode] LCR170. 交易逆序对的总数
  • 大开眼界,原来指针还能这么玩?
  • 揭秘选择知识产权管理系统的常见误区,避免踩坑
  • 计算机组成原理之存储器的分类
  • Linux(不同版本系统包含Ubuntu)下安装mongodb详细教程
  • 如何扫描HTTP代理:步骤与注意事项
  • 【分布式微服务云原生】gRPC与Dubbo:分布式服务通信框架的双雄对决
  • Python | Leetcode Python题解之第450题删除二叉搜索树中的节点
  • [Linux]从零开始的网站搭建教程
  • 牛客——xay loves or与 __builtin_popcount的使用
  • Docker学习和部署ry项目
  • Linux中设置cd命令后直接显示当前目录下的所有文件
  • 【RTCP】报文学习笔记
  • Solidity优质例子(二)物流的增删改查智能合约(附truffle测试)
  • 对android binder的一些疑问及解答
  • 主流麦克风阵列有哪些?