VIM编译器的使用(详解)

目录:

  • Vim编译器模式介绍
  • Vim编译器模式间切换
  • Vim编译器的常规操作
  • 模式中基本操作
  • Vim知识补充
  • vi练习

1、文本编译器的概述:

文本编译器的作用:

  • 创建或修改文本文件
  • 维护Linux系统中的各种配置文件

Linux中最常用的文本编译器:

  • vi:类Unix系统中默认的文本编译器
  • Vim:vi编译器的增强版本,习惯上也称为vi。

Vim常用工作模式:
命令模式输入模式末行模式、可视模式、替换模式

命令模式:这是Vim启动后的默认模式

  • 光标移动、字符串查找以及删除、复制、粘贴文件内容等相关操作
    在这里插入图片描述
    插入模式:

  • 用来输入文本

  • 进入Vim编译器后,按a或者i等就可进入插入模式
    在这里插入图片描述
    可视模式:

  • 主要用来选择复制区块文本

  • 在命令模式下,使用v或者V键就可以进入可视模式
    在这里插入图片描述
    末行模式:

  • 主要用来设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作

  • 在命令模式下,输入:号之后就进入了末行模式
    在这里插入图片描述
    替换模式:

  • 一种特殊的输入模式

  • 每个输入的字符都会覆盖文本中已经存在的字符

  • 在命令模式下,按”R”就可以进入替换模式
    在这里插入图片描述

2、切换工作模式

在这里插入图片描述

3、常规操作

1、从命令模式进入插入模式
在这里插入图片描述
2、退出Vim编译器的方法
在这里插入图片描述

4、模式中基本操作

1、命令模式中的基本操作

  • 1、光标移动
    在这里插入图片描述
  • 2、删除、复制、粘贴
    在这里插入图片描述
  • 3、文件内容查找
    在这里插入图片描述
  • 4、撤销编辑
    在这里插入图片描述
  • 5、重复操作
    按.键

2、末行模式中基本操作

  • 1、文件内容替换
    在这里插入图片描述
  • 2、打开新文件或读入其他文件内容
    在这里插入图片描述
  • 3、撤销和另存为
    在这里插入图片描述
  • 4、多文件操作
    格式:vi 文件1 文件2 文件3
    在这里插入图片描述
    补充(重要):
    Vim -o 文件1 文件2 上下打开两个文件
    Vim -O 文件1 文件2 左右打开两个文件
    文件之间的光标跳转,使用ctrl+w组合键
  • 5、行号显示
    -
    3、可视模式中基本操作
  • 可视模式中的复制、删除等
    在这里插入图片描述

5、Vim知识补充

  • vim -p 以标签页形式打开多个文件
    :tabnew 增加一个标签
    :tabc 关闭当前的tab
    :tabo 关闭所有其他的tab
    :tabs 查看所有打开的tab
    :tabp 或gT 前一个
    :tabn 或gt 后一个

  • 多行缩进----------V 行可视模式
    (先按大写V,然后选择需要缩进的行,最后按>)
    选中多行
    向右缩进>
    向左缩进<

  • 在VIM界面,执行shell命令:
    进行末行模式,!命令

6、vi练习

  • 编辑文本文件/home/text/file1,分4行输入bbb bbb bbb、 ddd ddd ddd、aaa aaa aaa、ccc ccc ccc。保存不要退出;
  • 在末行模式下打开一个新文件/text/file2;
  • 在file2中输入内容为eee eee
    eee在这一行内容之后,将file1的内容读入到file2中,接着在命令模式下按照abcde的显示顺序调整每行的位置,最后保存退出;
  • 同时编辑file1和file2,接着从file1切换到file2,然后再快速切换回来,接着将file2的内容读到file1内容的末尾,显示文件file1内容的行号,复制3到6行到file1内容的末尾;
  • 利用替换命令将全文的每行第一个ccc都替换为333;
  • 将全文中所有aaa都替换为111,撤销行号,最后不保存退出;
[root@rhel1 ~]# vi /home/text/file1

bbb bbb bbb 
ddd ddd ddd
aaa aaa aaa
ccc ccc ccc
~                                                                                                                                                                                                                                                                                       
~                                                                                                                                      
-- INSERT --
[root@rhel1 ~]# vi /home/text/file1

bbb bbb bbb
ddd ddd ddd
aaa aaa aaa
ccc ccc ccc
~                                                                                                                                                                                                                                                                                      
~                                                                                                                                                                                                                                                                                     
:e /text/file2
[root@rhel1 ~]# vi /home/text/file1


~                                                                                                                                                                                                                                                                                                                                                                                                               
~                                                                                                                                            
"/text/file2" [New File]
[root@rhel1 ~]# vi /home/text/file1

eee eee eee
~                                                                                                                                                                                                                                                                                    
~                                                                                                                                            
:r /home/text/file1
[root@rhel1 ~]# vi /home/text/file1

eee eee eee
bbb bbb bbb 
ddd ddd ddd
aaa aaa aaa
ccc ccc ccc                                                                                                                                          
~                                                                                                                                            
~                                                                                                                                            
"/home/text/file1" 4L, 49C
[root@rhel1 ~]# vi /home/text/file1
# 在命令模式下使用复制、粘贴、删除等操作
aaa aaa aaa
bbb bbb bbb 
ccc ccc ccc
ddd ddd ddd
eee eee eee
~                                                                                                                                            
~                                                                                                                                            
:wq
[root@rhel1 ~]# vim /home/text/file1 /text/file2
2 files to edit

bbb bbb bbb
ddd ddd ddd
aaa aaa aaa
ccc ccc ccc
~                                                                                                                                                                                                                                                                                      
~                                                                                                                                            
"/home/text/file1" 4L, 49C  
[root@rhel1 ~]# vim /home/text/file1 /text/file2
2 files to edit

bbb bbb bbb
ddd ddd ddd
aaa aaa aaa
ccc ccc ccc                                                                                                                                        
~                                                                                                                                            
:n
[root@rhel1 ~]# vim /home/text/file1 /text/file2
2 files to edit

aaa aaa aaa
bbb bbb bbb
ccc ccc ccc
ddd ddd ddd
eee eee eee                                                                                                                                
~                                                                                                                                            
"/text/file2" 6L, 62C  
[root@rhel1 ~]# vim /home/text/file1 /text/file2
2 files to edit

aaa aaa aaa
bbb bbb bbb
ccc ccc ccc
ddd ddd ddd
eee eee eee                                                                                                                                
~                                                                                                                                            
:N
[root@rhel1 ~]# vim /home/text/file1 /text/file2
2 files to edit

bbb bbb bbb
ddd ddd ddd
aaa aaa aaa
ccc ccc ccc                                                                                                                                   
~                                                                                                                                            
"/home/text/file1" 4L, 49C    
[root@rhel1 ~]# vim /home/text/file1 /text/file2
2 files to edit

bbb bbb bbb
ddd ddd ddd
aaa aaa aaa
ccc ccc ccc                                                                                                                                   
~                                                                                                                                          
:r /text/file2
[root@rhel1 ~]# vim /home/text/file1 /text/file2
2 files to edit

bbb bbb bbb
ddd ddd ddd
aaa aaa aaa
ccc ccc ccc
aaa aaa aaa
bbb bbb bbb 
ccc ccc ccc
ddd ddd ddd
eee eee eee
~     
"/text/file2" 6L, 62C           
[root@rhel1 ~]# vim /home/text/file1 /text/file2
2 files to edit

  1 bbb bbb bbb
  2 ddd ddd ddd
  3 aaa aaa aaa
  4 ccc ccc ccc
  5 aaa aaa aaa
  6 bbb bbb bbb
  7 ccc ccc ccc
  8 ddd ddd ddd
  9 eee eee eee                                                                                                                           
~                                                                                                                                            
:set nu         

复制3到6行到file1内容的末尾(在命令模式下,3G跳到第3行,再4yy从当前行复制4行,G跳到尾部,再p复制。)

[root@rhel1 ~]# vim /home/text/file1 /text/file2
2 files to edit

  1 bbb bbb bbb
  2 ddd ddd ddd
  3 aaa aaa aaa
  4 ccc ccc ccc
  5 aaa aaa aaa
  6 bbb bbb bbb
  7 ccc ccc ccc
  8 ddd ddd ddd
  9 eee eee eee
 10 aaa aaa aaa
 11 ccc ccc ccc
 12 aaa aaa aaa
 13 bbb bbb bbb                                                                                                                                   
~                                                                                                                                            
4 more lines          
[root@rhel1 ~]# vim /home/text/file1 /text/file2
2 files to edit

  1 bbb bbb bbb
  2 ddd ddd ddd
  3 aaa aaa aaa
  4 ccc ccc ccc
  5 aaa aaa aaa
  6 bbb bbb bbb
  7 ccc ccc ccc
  8 ddd ddd ddd
  9 eee eee eee
 10 aaa aaa aaa
 11 ccc ccc ccc
 12 aaa aaa aaa
 13 bbb bbb bbb                                                                                                                                   
~                                                                                                                                            
:1,13 s/ccc/333

在这里插入图片描述

[root@rhel1 ~]# vim /home/text/file1 /text/file2
2 files to edit

  1 bbb bbb bbb
  2 ddd ddd ddd
  3 aaa aaa aaa
  4 ccc ccc ccc
  5 aaa aaa aaa
  6 bbb bbb bbb
  7 ccc ccc ccc
  8 ddd ddd ddd
  9 eee eee eee
 10 aaa aaa aaa
 11 ccc ccc ccc
 12 aaa aaa aaa
 13 bbb bbb bbb                                                                                                                                   
~                                                                                                                                            
:1,13 s/aaa/111/g

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值