【Linux】文本编辑器Vim[通俗易懂]

【Linux】文本编辑器Vim[通俗易懂]Linux文本编辑器Vim详细学习笔记

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

往期内容

Linux常用指令合集

Linux文本编辑器

Linux软件包管理

Linux用户管理

Linux权限管理

Vim常用操作

什么是Vim

Vim是一个全屏幕文本编辑器,是Linux/UNIX最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。

Vim没有菜单,只有命令。

Vim工作模式

在这里插入图片描述

如上图,vi+文件名进入文件,默认为命令模式。

[root@iZ2ze0xeiu8g6ub59nsq0bZ test]# vi ceshi

在命令模式下,所输入的字母都被当成命令,所以如果输入的字母并不是正确的命令,则需要继续输入。

若要进入插入模式,则需要输入命令i、a或o。

在这里插入图片描述

在命令模式下,若误删内容,可按u撤销删除。

在命令模式下按 可进入编辑模式,然后再输入想要执行的命令即可。

编辑模式的命令执行完后会自动恢复到命令模式。

下面再来详细介绍一下Vim的常用命令(命令模式下输入)

插入命令

a 在光标所在字符后插入
A 在光标所在行尾插入
i 在光标所在字符前插入
I 在光标所在行行首插入
o 在光标下插入新行
O 在光标上插入新行

定位命令

:set nu		设置行号
:set nonu	取消行号
gg			到第一行
G			到最后一行
nG			到第n行
:n			到第n行
$			移至行尾
0			移至行首

删除命令

x		删除光标所在处字符
nx		删除光标所在处后n个字符
dd		删除光标所在行,ndd删除n行
dG		删除光标所在行到文件末尾内容
D		删除光标所在处到行尾内容
:n1,n2d 删除指定范围的行

这里说一下最后一个命令

例如我要删除7-10行内容,可进行如下图操作

在这里插入图片描述

复制和剪切命令

yy		复制当前行
nyy		复制当前行以下n行
dd		剪切当前行
ndd		剪切当前行以下n行
p、P	    粘贴在当前光标所在行下或行上

替换和取消命令

r		取代光标所在处字符
R		从光标所在处开始替换字符,按Esc结束
u		撤销上一步操作
Ctrl+r	取消撤销

搜索和搜索替换命令

/string			搜索指定字符串
				搜索时忽略大小写:set ic

如下图,若要在文件中搜索关于ftp的内容,则输入/ftp再回车即可,按n切换到下一个含有该关键词的字符串。
在这里插入图片描述

搜出来的字符串是区分大小写的,若不区分大小写,则输入命令:set ic

在这里插入图片描述

全文替换指定字符串

:%s/原来字符串/替换后字符串/g

例如我要把文件中的ftp替换成study,操作如下图所示:

在这里插入图片描述

在一定范围内替换指定字符串

:n1,n2s/原来字符串/替换后字符串/g

例如我要把文件中40-50行的study替换成ftp,操作如下图所示:

在这里插入图片描述

保存和退出命令

:w		保存修改
:w name 另存为指定文件
:wq		保存修改并退出
ZZ		快捷键,保存修改并退出
:q!		不保存修改退出
:wq!	保存修改并退出(文件所有者及root可用)

这里说一下最后一个命令的作用

先查看一下,etc文件夹下services的权限

[root@iZ2ze0xeiu8g6ub59 /]# ll /etc/services
-rw-r--r--. 1 root root 670293 Jun  7  2013 /etc/services

可以发现,文件所有者是有写权限的,现在我们把写权限去掉

[root@iZ2ze0xeiu8g6ub59 /]# chmod 444 /etc/services
[root@iZ2ze0xeiu8g6ub59 /]# ll /etc/services
-r--r--r--. 1 root root 670293 Jun  7  2013 /etc/services

现在所有者没有写权限,那么如果要保存修改后的文件services,则需要输入:wq!强行保存修改。

在这里插入图片描述

Vim使用技巧

:r 	将某个文件导入到当前文件的光标所在位置

在这里插入图片描述

:!命令		可以在不退出Vim的情况下执行相应的系统命令

例如我在不退出Vim的情况下想知道命令mv的路径,则输入:!which ls即可,如下图。

在这里插入图片描述

上面两个命令的结合

如果我要将文件编辑结束时的时间导入到到文件中,则可以输入

:r !date

在这里插入图片描述

:map 快捷键 触发命令	#定义快捷键

来说说这个map如何使用,例如现在我要把光标所在行注释掉

在这里插入图片描述

一般来说可分为以下几步:

  1. 光标移到该行行首并进入插入模式,使用命令I
  2. 添加#注释
  3. Esc退出插入模式

如果要注释的行比较多,则会变得非常繁琐,下面我们输入命令,将Ctrl+P定义为以上几步的快捷键

在这里插入图片描述

现在只要在光标所在行输入Ctrl+p就能将该行注释

在这里插入图片描述

但如果我们定义的快捷键很多,记不住时,我们还可以用到替换,命令格式如下

:ab phone 12345678910	#在当前编辑文件下,我输入phone再回车就能变成电话号码

其实上面定义的快捷键或者是ab替换,都没有被系统保存下来,也就是说当我重新登录后就会失效。

那么我们需要将这些快捷键输入到每个用户的home目录下的配置文件里。

以root用户为例,创建一个配置文件.vimrc

[root@iZ2ze0xeiu8g6ub59 /]# vi /root/.vimrc

然后在配置文件中输入我们使用Vim时的一些常用命令和快捷键,保存即可。

在这里插入图片描述

笔记领取

Linux系列文章均已打包成PDF版本的笔记,关注公众号“大拨鼠Code”回复“Linux”领取,持续更新。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164522.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • /etc/sudoers文件解析

    /etc/sudoers文件解析CATALOG前言规则讲解第一部分A第二部分B第三部分C第四部分D第五部分E举例前言/etc/sudoers文件一般涉及到linux系统中关于sudo命令的权限配置问题。规则讲解sudoers文件的数据,每一行分为五个部分,我们用ABCDE来表示。一般情况下是:AB={©}{D}E且C与D是可以省略的,我们用大括号扩起来方便大家注意到,但真正书写命令的时候不需要打括号。第一个部分A代表授权使用sudo的用户或者组第二部分B代表允许授权用户在哪些主机上使用这些权利第三部分C代

    2022年6月20日
    106
  • ffmpeg 安装(支持h.265)

    ffmpeg 安装(支持h.265)安装FFMPEG需要的所有组件sudoapt-getupdatesudoapt-get-yinstallautoconfautomakebuild-essentiallibass-devlibfreetype6-dev\libsdl2-devlibtheora-devlibtoollibva-devlibvdpau-devlibvorbis-devl…

    2025年11月3日
    2
  • 用我的亲身经历来告诉你如何自学Java?

    用我的亲身经历来告诉你如何自学Java?在我的另一篇博文——【一年总结】记我的大一生活中,我其实已经谈过了我的大一经历,但是对于我自学Java的地方往往都是一笔带过的,因为那篇博文主要是想记录我那时所思所想,表达的主要是一种情感,而非“攻略”。所以我觉得我有必要另起一篇来专门讲讲我是如何一步一步自学Java的。

    2022年7月7日
    29
  • 计算机组成用变形补码运算,【学习计算机组成原理】补,原,移码的加减运算…

    计算机组成用变形补码运算,【学习计算机组成原理】补,原,移码的加减运算…文章目录补码的加减运算变补(求补)溢出判断采用变形补码原码的加减运算移码的加减运算补码的加减运算运算公式:[A+B]补=[A]补+[B]补(mode2n)[A-B]补=[A]补+[-B]补(mode2n)规则:加减运算统一,全用加法运算符号位和数值位参加运算变补(求补)这里引出一个概念,《变补》,根据上面A减B的补码等于A的补码加负B的补码,为了描述方便,也可以表述为A减B…

    2022年10月19日
    2
  • vs2019配置opencv什么版本_vs配置opencv

    vs2019配置opencv什么版本_vs配置opencv一、环境vs2019社区版、win1064位操作系统二、opencv配置步骤(共5步)1、下载OpenCV4.0.1,官网为opencv.org2、安装opencv,我的安装目录是D:\opencv-4.0.1-vc14_vc153、添加环境变量,在PATH中添加:D:\opencv-4.0.1-vc14_vc15\opencv\build\x64\vc15…

    2022年10月20日
    1
  • 数组的前缀和及查分数组

    数组的前缀和及查分数组1,前缀和主要适用场景是原始数组不会被修改的情况下,频繁查询某个区间的累加和。这里就不写前缀和的代码了,就是用一个数组记录下原有数组的前缀和。比如,prefix[i]就代表着nums[0…i-1]所有元素的累加和,如果我们想求区间nums[i…j]的累加和,只要计算prefix[j+1]-prefix[i]即可,而不需要遍历整个区间求和。(需要注意的是使用场景是频繁查询某个区间的累加和,而不需要对原始数组进行频繁修改)2,查分数组的主要适用场景是**频繁对原始数组的某个区间的元素进行增减。**比

    2022年6月11日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号