linux系统中vi/vim文本编辑器的使用简介

1. vi/vim简介

​ vi/vim 是linux系统中最基本的编辑器,类似于windows系统中的记事本,几乎所有的linux开发版本都内置了vi/vim文本编辑器。vim是vi的增强版本,具有编程能力,可以实现代码高亮的功能。而linux系统最核心的思想就是**“一切皆文件”**,即在linux系统中,所有的设备、硬件、用户等等都以文件的形式进行存储。在使用linux系统时,最重要的工作就是要修改以及设置一些软件的配置文件,这些工作往往在命令行中进行,所以我们至少要掌握一种命令行编辑器的用法(本文主要介绍vim)。

虽然绝大多数的linux发行版本都内置的vi/vim编辑器,但不是所有,在开始使用之前一定要确保您的电脑安装了vim,如果没有安装可以执行下面的命令进行安装:

$ sudo apt install vim

2. vim的使用

2.1 vim的三种模式

首先先来介绍一下vim的三种模式:

  • 一般命令模式(command mode):可以对文本进行复制、粘贴、删除,使用vim打开一个文件时默认进入一般命令模式。
  • 编辑模式(insert mode):可以对文本进行编辑。
  • 命令行模式(command-line mode):读取、存储文件等。

三种模式之间的转换关系如图所示:

注意:编辑模式和命令行模式之间不能相互转换!!!

2.2 用vim编辑一个文件

  1. 在opt目录下新建一个名为Hello.java的文件;
$ cd /opt
$ touch Hello.java
  1. 用vim编辑器对Hello.java文件进行编辑;
$ vim Hello.java

输入上述代码之后敲回车,按下i 进入编辑模式,在左下角会有提示;

  1. 输入下面的代码;
public class Hello {public static void main(String[] args) {System.out.println("Hello!");}
}
  1. 按下esc退出编辑模式,输入:进入命令行模式,依次输入w q Enter进行保存退出;

  1. 编辑完成。

2.3 一般命令模式下的按键说明

下面介绍常用的一般命令模式下的按键:

命令 功能说明
0 数字0:移动到光标所在行的最前面字符
$ 移动到光标所在行的最后面字符
gg 移动到文件第一行
G 移动到文件最后一行
:n1,n2s/word1/word2/g n1,n2为数字:在n1行和n2行之间将word1替换为word2
:1,$s/word1/word2/g 在整个文档之间将word1替换为word2
:1,$s/word1/word2/gc 在整个文档之间将word1替换为word2,且在替换前提示用户确认是否替换
dd 删除光标所在的一整行
yy 复制光标所在的一整行
nyy n为数字,复制光标所在的向下n行
p与P p:将已复制的数据在光标下一行粘贴
P:将已复制的数据在光标的上一行粘贴
u 恢复上一个操作(撤销)

:1,$s/word1/word2/g命令为例进行演示,其他命令相同

  1. 用vim打开Hello.java文件
$ vim Hello.java
  1. 输入:进入命令行模式

  2. 输入1,$s/public/PUBLIC/g

  3. 此时就会发现文件中所有的public 变成了PUBLIC ,如图所示:

2.4 一般命令模式切换到编辑模式的可用按键

从一般命令模式进入编辑模式,可以通过下面的按键实现:

命令 功能说明
i与I 进入插入模式
i:从当前光标处插入
I:在目前所在行第一个非空格符处进行插入
a与A 进入插入模式
a:从当前光标处的下一字符处插入
A:在目前所在行最后一个字符处进行插入
o与O(字母) 进入插入模式
o:从当前光标的下一行处插入新的一行
O:从当前光标的上一行处插入新的一行
r与R 进入替换模式
r:只会替换光标所在的那一个字符一次
R:会一直进行替换,直到按下ESC为止

2.5 一般命令模式切换到命令行模式的可用按键

命令 功能说明
:w 将编辑的数据写入磁盘中
:q 退出vi/vim
:wq 保存后退出
:w! 强制写入(当文件为只读时1
:q! 强制退出(不保存)
ZZ 若文件没有修改则不保存退出,若文件已被修改过,则保存后退出

命令行模式的其他可用按键

命令 功能说明
:set nu 显示行号
:set nonu 取消行号

在vim中执行:set nu 如图所示:

3. vim的可视区块

当我们要处理的内容是一个区块时,可以利用vim的可视区块。例如,我们要处理下面这种格式的文件:

192.168.1.1  host1 net
192.168.1.2 host2 net
192.168.1.3 host3 net
192.168.1.4 host4 net
192.168.1.5 host5 net
192.168.1.6 host6 net
192.168.1.7 host7 net
192.168.1.8 host8 net
192.168.1.9 host9 net

如果我们想将host1~host9复制到net后面,可以在vim中进行如下的操作:

  1. 将光标移动到host1h处;

  2. 按住ctrl + v,可以看到左下角显示:

  1. 将光标移动到host11处,此时可以看到选中的部分已经反白;

  2. 将光标移动到底部,此时发现host1~host9全部反白;

  3. y复制反白范围;

  4. 最后将光标移动打第一行的最后,按下p,处理结果如图所示:

4. vim的关键字补全功能

vim编辑器也提供了特定语法的关键字补全功能2;以html文件为例:

  1. 创建一个名为test.html文件;

    $ touch test.html
    
  2. 用vim编辑器打开;

    vim test.html
    
  3. 假设文件中有以下代码:

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title>
    </head>
    <style></style>
    <body><form action="add" method="get">名称:<input type="text" name="fname"/><br>价格:<input type="text" name="fprice"/><br>库存:<input type="text" name="fcount"/><br>备注:<input type="text" name="remark"/><br><input type="submit" value="添加"/></form>
    </body>
    </html>
    
  4. style标签中想输入background-color,此时可以使用自动补全功能,在输入b后按ctrl+x后再按ctrl+o会出现关键字补全提示,如图所示:

5. 总结

以上简要介绍了vim编辑器的一些常用命令,以及对部分进行了演示,但vim的命令还有很多,可以去查找一些相关书籍。


参考文献:

《鸟哥的Linux私房菜》

《Linux就该这么学》


  1. :w!强制写入时到底能不能写入跟文件的权限有关 ,并不是一定会写入 ↩︎

  2. 注意一定要使用正确的扩展名,如*.html,否则无法出现任何关键字。 ↩︎

linux系统中vi/vim文本编辑器的使用简介相关推荐

  1. Linux系统学习关于Vim文本编辑器的使用介绍

    Day04 cippus vim 文本编辑器 vi [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8jFPKIO1-1669517913499)(F:\桌面\src=h ...

  2. Linux系统中退出vim的编辑器3种情况

    1.未修改退出 前提条件:打开的文本文件在内容上没有被改动过.按了Esc后再输入冒号,然后,我们输入"冒号",即":"(不需双引号),在下方会出现冒号,等待输入 ...

  3. linux中vim文本编辑器的默认模式是,Linux 下 vi/vim 文本编辑器超详细使用指南

    Linux下的编辑器最经常使用的就是vim或者vi文本编辑.vi 和vim 编辑器的区别是vim是vi的改进版本,在vi 编辑器的基础上上扩展了不少实用的功能. 大多数的linux/unix 发行版本 ...

  4. delphi中richedit中光标如何定位到最后_嵌入式开发之Linux系统中Vi编辑器的使用

    请大家关注点赞,已经完成物联网相关开发,会从硬件层,硬件中间层,传输层,软件中间件(物联网云平台),APP开发相关博文.首先从嵌入式开发博文开始!上一节关于<>.本节关于Linux系统中V ...

  5. Linux 下 vi/vim 文本编辑器超详细使用指南(转载)

    转载于 https://blog.csdn.net/kingmax54212008/article/details/54142633 Linux下的编辑器最常用的就是vim或者vi文本编辑.vi 和v ...

  6. Linux系统中VI或VIM输入时小键盘无法使用

    Linux系统中VI或VIM输入时小键盘无法使用 问题描述 在使用Xshell.Webshell或者PuTTY连接Linux服务器时经常会用到VIM对文件进行编辑.这是就会发现,小键盘无法使用.想输入 ...

  7. vi/vim文本编辑器的使用

    Vi/Vim文本编辑器的使用 vi/vim编辑器是所有Unix及Linux系统下标准的编辑器.vim是vi的一种升级. vi/vim三种模式 1.一般模式 启动vim后默认处于正常模式.不论位于什么模 ...

  8. Linux系统中vi命令失效

    Linux系统中vi命令失效的原因,一般是因为Linux系统的磁盘空间有的满了,需要对已满的磁盘进行清理.使用df命令进行查看.

  9. 【大数据前置基础】Linux系统中VI编辑器使用、文件目录操作、权限管理、Java安装

    VI编辑器使用.文件目录操作.网络配置.常用命令与shell编程 1 VI编辑器使用 2 文件目录的操作 2.1 ls 显示文件和目录列表 2.2 mkdir 创建目录 2.3 cd 切换目录 2.4 ...

最新文章

  1. Java常见面试题(持续更新)
  2. mysql免安装版5.7.7以后在windows上的那些操作(1)
  3. 小程序 const moment = require('moment')_小程序依赖分析实践
  4. glob在php中的意思,PHP函数glob介绍
  5. java做h5小游戏服务端_神藏西游H5游戏源码服务端+客户端+搭建教程
  6. C语言课程设计图形库
  7. 【python】python实现多线程并得到返回值
  8. 新浪微博PC端登陆js分析及Python实现微博post登陆
  9. oracle e18,ORACLE_10g_各版本下载地址大全
  10. 将PNG序列帧图片合成视频
  11. Triangle程序编译
  12. 毕业论文-马尔可夫随机场
  13. 为何Excel表格部分选项是灰色的,无法选择?
  14. 【Unity 3D 从入门到实战】Unity 3D 导航系统
  15. C4D模型工具—切割边
  16. Jmeter接口测试——使用教程(下)
  17. 嵌入式linux包含哪些内容
  18. CentOS服务器安装宝塔(图文详解)
  19. 3dmax 3dmax计算机要求 3dmax下载
  20. pixel2style2pixe环境配置([‘ninja‘, ‘-v‘] + no module named ‘fused’)

热门文章

  1. 幼儿园教师计算机运用论文,运用信息技术促进幼儿教师专业成长
  2. CNN中的translation equivariant和translation invariant
  3. 研二小硕的艰难实习路
  4. Chapter 7 (Symmetric Matrices and Quadratic Forms): The Singular Value Decomposition (奇异值分解, SVD)
  5. css文件应该放在哪?
  6. 网页.css的文件的写法
  7. 中国申请英国留学人数创新高,东伦敦成最受家长青睐“以房养学”地区
  8. 防御攻击高防服务器如何选择?
  9. AcWing 1309. 车的放置 (加法原理、乘法原理、组合数排列数的求法、乘法逆元)
  10. pixel 6手机连接wifi,网络受限