当前位置 博文首页 > 文章内容

    『学了就忘』vim编辑器基础 — 96、末行模式中的相关命令

    作者:shunshunshun18 栏目:未分类 时间:2021-12-28 14:32:13

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    vim编辑器中常用的末行模式命令。

    1、在文档中显示行号

    • : set nu:显示行号。
    • : set nonu:取消行号。

    一旦退出文档,再打开行号就没有了。(文章最后第8点,有解决。)

    2、是否显示文档内容相关颜色

    • : syntax on:显示颜色。
    • : syntax off:关闭颜色。

    说明:

    是否依据语法显示相关的颜色帮助。在vim中修改相关的配置文件或Shell脚本文件时(如前面示例的脚本/etc/init.d/sshad),默认会显示相应的颜色,用来帮助排错。如果觉得颜色产生了干扰,则可以取消此设置。

    3、是否将查找的字符串高亮显示

    设置是否将查找的字符串高亮显示。默认是set hlsearch高亮显示。

    • : set hisearch:高亮显示。
    • : set nohlsearch:不高亮显示。

    注意:

    当你在命令模式的时候,输入/进入末行模式搜索关键字的时候,如果搜索到匹配的内容,关键字会自动高亮显示。你关闭文件,再进入文件后,之前被搜索的关键字依旧被高亮显示。你再打开其他的文件,如果该文件也有之前搜索的关键字,依然会被高亮显示。
    我们可以用: set nohlsearch取消高亮,在set hisearch开启来解决一直高亮的问题。但是我们一般不这样用,我们通常输入/进入末行模式,胡乱打一个确保没有的关键字,这样高亮的信息就关闭了。

    4、是否显示右下角的状态栏

    设置是否显示右下角的状态栏。默认是set ruler显示。

    如下图所示:

    image

    • : set ruler:显示。
    • : set noruler:不显示。

    提示:14,8表示,光标在当前文档的第14行,第8个字符上。

    5、是否在左下角显示如"--INSERT--"之类的状态栏

    设置是否在左下角显示如--INSERT--之类的状态栏。默认是set showmode显示。

    • : set showmode:开启显示。
    • : set noshowmode:关闭显示。

    一般都开始显示。

    6、是否显示隐藏字符

    设置是否显示隐藏字符(Tab键用^I表示,回车符用$表示)。
    默认是nolist。如果使用set list显示隐藏字符,类似cat -A 文件名

    • : set list:显示隐藏字符。
    • : set nolist:不显示隐藏字符。

    补充:

    Windows系统下的回车符在Linux系统中是用^M$符号显示,而不是用Linux系统的回车符$显示。这样会导致Windows系统下编辑的程序脚本,无法在Linux系统中执行。这时可以通过命令dos2unix,把Windows格式转为Linux格式,当然反过来unix2dos命令就是把Linux格式转为Windows格式。这两个命令默认没有安装,需要手工安装才能使用。

    提示:

    如果文档是在Windows系统中编辑的,在Linux系统中用vim编辑器打开,vim编辑器会自动把回车符这样的隐藏符号转换过来。

    7、vim支持更多的设置参数

    可以通过:set all进行查看。

    8、vim编辑器配置文件

    大家会发现,这些设置参数都只是临时生效,一旦关闭文件再打开,又需要重新输入。如果想要永久生效,需要手工建立vim的配置文件~/.vimrc(在家目录下创建一个.vimrc文件,既然在家目录,说明只对用户个人有用),把你需要的参数写入配置文件就永久生效了。

    执行如下命令:[root@localhost ~]# vim .vimrc

    然后在文件内输入:

    set nu
    syntax off
    set hisearch
    set ruler
    set showmode
    set list
    等等。。。。。。
    

    保存即可,之后在打开任何文件,都自动生效。

    9、查找

    • /查找内容:从光标所在行向下查找。
    • ?查找内容:从光标所在行向上搜索。
    • n:下一个。
    • N:上一个。

    10、替换

    1. :1,10s/old/new/g:替换1到10行的所有oldnew
      注:
      • 1,10s表示第一行到第十行,s代表替换。
      • /old/new表示把old换成new
      • g表示范围内替换所有。(如果不加g,只会替换范围内第一个old
    2. :%s/old/new/g:替换整个文件的oldnew
      %表示范围是整篇文档。

    替换字符串,举几个例子:

    • 在shell中#开头是注释,那我是否可以注释文件的前10行呢?手工一个一个注释很麻烦,如何进行批量替换。
      :1,10s/^/#/g:注释1到10行。
      提示:^正则表达式表示行首,把行首变成#
      :1,10s/^#//g:取消注释。
      提示:^#意思是把行首的#去掉。正则表达式是包含匹配,如果只写#,表示1到10行所有的#都去掉。
    • 在C语言,PHP语言等大多数语言中,是使用//开头作为注释的,用vim来写这些程序语言脚本,如何批量加入//注释。
      :1,10s/^/\/\//g:1到10行,行首加入//
      提示:把行首^替换成\/\/(双斜杠 //),\符号在命令行中代表换行,\符号在字符串中代表转义符。(转义符就是把有特殊含义的字符转换成普通的字符串符号。)
      :1,10s/^\/\///g:取消1到10行行首的//
      提示:绝大多数的替换都用最上边的两种替换,下边的两个例子比较特殊,以后用到照着写就好。
    bkbky