您的位置:首页 > 其它

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

2021-12-28 13:26 281 查看

[toc]

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
显示。

如下图所示:

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

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

  • 在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行行首的
    //
    。 提示:绝大多数的替换都用最上边的两种替换,下边的两个例子比较特殊,以后用到照着写就好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: