Linux文本编辑vim学习

今天开始全新的Linux命令学习,本篇博客开始学习vim编辑命令。

vim分为三个模式,命令模式,插入模式,编辑模式。首先通过vi命令加文件名打开一个文件。

打开文件后,进入的便是命令模式。

在这里插入图片描述
在此模式中直接敲相应的命令就可以实现控制。

当我们按:冒号就可以进入编辑模式

在这里插入图片描述
此时可以输入一串命令来进行操作。

按ESC可以退出编辑模式回到命令模式,当我们按i,a或o可以进入insert模式,也叫输入模式,插入模式可以直接修改文本内容。按ESC同样可以退出输入模式,回到命令模式。接下来将介绍一些常用命令。

插入命令

  • a:在光标所在字符后插入
  • A:在光标所在行尾插入
  • i:在光标所在字符前插入
  • I(大写i):在光标所在行行首插入
  • o:在光标下插入新行
  • O(大写o):在光标上插入新行
    这里就不一 一展示了,大家可以在去自己调试一下。

定位命令

有的命令是要用冒号:进入编辑模式的,大家要注意。

  • :set nu:设置行号
    在这里插入图片描述
  • :set nonu:取消设置行号
  • :n:到第几行
    在这里插入图片描述
  • gg:到第一行行首
  • G:到最后一行行首
  • $:移至行尾
  • 0:移至行首

删除命令

  • x:删除光标所在处字符

  • nx:删除光标所在处后n个字符
    在这里插入图片描述
    比如我想删掉第8行的2021,此时将光标移动到第八行第一个字符,由于算上自己一共是四个字符,所以直接4n就搞定了
    在这里插入图片描述

  • dd:删除光标所在行,ndd删除n行,其中光标所在行为第一行
    比如我想删掉8,9和10行,那么将光标移动到第8行,再敲命令3dd就可以了
    在这里插入图片描述

  • dG:删除光标所在行到文件末尾内容
    比如我想删除11行之后所有的内容,将光标放在12行,再敲dG就可以了。
    在这里插入图片描述

  • D:删除光标所在处到行尾内容
    比如我想删除第11行数字20之后的内容,将光标定位到20的后一个点,如果将光标指到0,会连0一起删除掉。然后敲D就可以了
    在这里插入图片描述

  • :n1,n2d:删除指定范围(n1到n2行)的行
    比如我想删除2,3行,那么我就可以先敲冒号进入编辑模式,再敲2,3d这个命令就可以了
    在这里插入图片描述

复制命令

  • yy:复制当前行
  • nyy:复制当前行以下n行
  • dd:剪切当前行
  • ndd:剪切当前行以下n行
  • p,P:粘贴在当前光标所在行下或行上
    这里可以结合dd和p命令实现剪切,举个例子,比如我想将4和5行移动到最后一行,先将光标移动到第4行,剪切两行,即2dd,然后将光标移动到最后一行再粘贴p即可。
    在这里插入图片描述

替换和取消命令

  • r:取代光标所在处字符
    比如我想将第三行的what的w变成大写W,将光标移动到w,进行替换即可。
    在这里插入图片描述

  • R:从光标所在处开始替换字符,按Esc结束。注意是替换,不是增加!
    比如我想将第2行的him替换成she,先将光标移动到h,然后开始替换,最后按Esc退出。
    在这里插入图片描述

  • u:取消上一步操作

搜索命令

  • /string:搜索指定字符串,搜索时区分大小写
    比如要搜索him,直接敲/him即可。按n可以切换到下一个him的位置。
    在这里插入图片描述

  • set ic:搜索时不区分大小写

  • set noic:取消搜索时不区分大小写

  • :%s/old/new/g:全文替换指定字符串,/g表示不询问,/c:询问确认
    比如我想将him替换成me,就要敲:%s/him/me/g
    在这里插入图片描述

  • :n1,n2s/old/new/g:在一定范围内替换指定字符串
    比如我想将只将第8行的test替换成TEST,那可以这样。
    在这里插入图片描述

保存退出命令

  • :w:保存修改
  • :w new_filename:另存为指定文件
    比如要另存为/tmp/save_test的文件,那么:w /tmp/save_test这样敲即可。
  • :wq:保存修改并退出
  • ZZ:保存修改并退出
  • :q!:不保存修改退出
  • :wq!:保存修改并退出(文件所有者及root可使用),可能出现的情况是某个文件的所属者权限没有写权限,当所属者使用vi命令时是可以进行编辑的,只不过当保存时会提示是否强行保存。

接下来说一下啊vim中一些常见的组合命令实现

  • :r!:导入命令执行结果
    比如我想将当前时间导入,就可以执行:r! date这个命令了
    在这里插入图片描述
    这个命令只要灵活运用是会有很多妙处的,大家可以灵活使用。

  • :!which:找到某个命令所在的位置
    比如编辑到一半的时候,突然想知道useradd命令的位置,那我可以这样
    在这里插入图片描述

  • map:快捷键触发器
    举个栗子,比如我想注释某行,如果要按照之前的命令,先移动到某行的第一个字符,然后进入输入模式,输入#后又要退出,很麻烦。通过使用map,可以把一系列的命令整合起来变成一个键。
    在这里插入图片描述
    这张图中看不清的蓝色符号是^P,但是并非这样输入的,该命令是这样的:map (Ctrl V + Ctrl P) I#<ESC>,这里的^P是先按Ctrl V再按Ctrl P的结果。按Ctrl V后确认要添加的快捷键,而Ctrl P就是快捷键,接下来是大写的i,回顾之前的知识,大写I表示在指在光标行行首插入,接下来#就是要插入的,最后<ECS>表示ECS键,即退出输入模式。
    在这里插入图片描述

  • :n1,n2s/^/#/g:连续行注释
    比如我想将8和9行都注释掉,可以执行这个命令:8,9s/^/#/g。其中这个命令的^表示行首。整个命令解读是,首先8,9s确定行,/^表示要替换的字符,由于我只是想插入#,因此确定行首^就可以了,无需替换。/#表示把之前的空替换成#,/g表示不用询问。
    在这里插入图片描述

  • :n1,n2s/^#//g:取消连续行注释

  • :n1,n2s/^//\/\/g:连续行//
    这里有个很有意思的符号 \——转义字符,本来/是起到分隔作用的,但是我要插入/,因此要把插入的/给转义掉。

  • :n1,n2s/\/\///g:取消连续行//

  • ab mail chenxuanqi6@163.com:当输入mail后,按空格或者回车变成chenxuanqi6@163.com

刚刚说的这些常用技巧,当退出编辑后便因为没有保存而失效,想要在某个用户中永久生效,要编写这么一个文件存储起来。

通常快捷命令都存放在/home/user/.vimrc
比如:/root/.vimrc
只需要在这个文件中把之前的技巧命令按行敲进去即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值