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行的所有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行行首的//

    提示:绝大多数的替换都用最上边的两种替换,下边的两个例子比较特殊,以后用到照着写就好。

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

  1. 『学了就忘』vim编辑器基础 — 97、vim使用技巧

    目录 1.在vim中导入其他文件内容或命令结果 (1)导入其他文件内容 (2)在vim中执行系统命令 (3)导入命令结果 2.设定快捷键 3.字符替换 4.多文件打开 vim使用技巧,就是vim编辑器 ...

  2. 『学了就忘』vim编辑器基础 — 94、vim编辑器介绍

    目录 1.vim编辑器简介 2.vim的工作模式 (1)命令模式 (2)输入模式 (3)最后行模式(末行模式) 1.vim编辑器简介 vim是一个全屏幕纯文本(绘个表格或者插个图片就不要想了)编辑器, ...

  3. 『学了就忘』vim编辑器基础 — 95、命令模式中的相关命令

    目录 1.移动光标操作 2.删除或剪切操作 3.复制操作 4.撤销操作 5.替换操作 6.补充一个知识点 命令模式中的命令主要取代的是Linux系统中鼠标的操作. vim编辑器的快捷键一般都集中在命令 ...

  4. 『学了就忘』Linux服务管理 — 75、Linux系统中的服务

    目录 1.服务的介绍 2.Windows系统中的服务 3.Linux系统中服务的分类 4.独立的服务和基于xinetd服务的区别 5.如何查看一个服务是独立的服务还是基于xinetd的服务 (1)查看 ...

  5. 『学了就忘』Linux用户管理 — 52、用户组管理相关命令

    目录 1.添加用户组 2.删除用户组 3.把用户添加进组或从组中删除 4.有效组(了解) 1.添加用户组 添加用户组的命令是groupadd. 命令格式如下: [root@localhost ~]# ...

  6. 『学了就忘』Linux权限管理 — 54、sudo授权

    目录 1.什么是sudo授权 2. sudo授权说明 3.sudo命令的使用 示例1 示例2 示例3 1.什么是sudo授权 在Linux系统中,/sbin/和/usr/sbin/两个目录中的命令只有 ...

  7. 『学了就忘』Linux权限管理 — 56、不可改变位权限(chattr)

    目录 1.命令格式 2.查看文件系统属性chattr权限 3.示例 文件系统属性chattr权限,也叫不可改变位权限,该权限没有风险,但是他能限制root用户. 1.命令格式 [root@localh ...

  8. 『学了就忘』Linux文件系统管理 — 64、磁盘配额的配置步骤

    目录 1.手工建立一个5GB的分区 2.建立需要做限制的三个用户 3.在分区上开启磁盘配额功能 4.建立磁盘配额的配置文件 5.开始设置用户和组的配额限制 6.启动和关闭配额 7.磁盘配额的查询 8. ...

  9. 『学了就忘』Linux系统定时任务 — 89、任务调度工具anacron

    目录 1.任务调度工具anacron介绍 2.新旧版本Linux中anacron工具的区别 3./etc/cron.{daily,weekly,monthly}目录说明 4.anacron命令 5./ ...

随机推荐

  1. jmeter+ant输出测试报告

    jmeter自己本身可以输出html测试报告的,不过这种自带的测试报告特别简陋,如下图所示,一般我们是不看这种的. 我们可以使用ant来输出更高效.更直观的测试报告. 首先下载安装ant, 我用的是a ...

  2. C/C++ Qt 数据库QSql增删改查组件应用

    Qt SQL模块是Qt中用来操作数据库的类,该类封装了各种SQL数据库接口,可以很方便的链接并使用,数据的获取也使用了典型的Model/View结构,通过MV结构映射我们可以实现数据与通用组件的灵活绑 ...

  3. c#Gridview添加颜色

    e.Row.Cells[1].ForeColor = System.Drawing.Color.Blue;

  4. Spark基础:(二)Spark RDD编程

    1.RDD基础 Spark中的RDD就是一个不可变的分布式对象集合.每个RDD都被分为多个分区,这些分区运行在分区的不同节点上. 用户可以通过两种方式创建RDD: (1)读取外部数据集====> ...

  5. Java实现 HTTP/HTTPS请求绕过证书检测

    java实现 HTTP/HTTPS请求绕过证书检测 一.Java实现免证书访问Https请求 创建证书管理器类 import java.security.cert.CertificateExcepti ...

  6. Spring中的InitializingBean与DisposableBean

    InitializingBean顾名思义,应该是初始化Bean相关的接口. 先看一下该接口都定义了哪些方法: public interface InitializingBean { void afte ...

  7. react-native安卓运行报错:The number of method references in a .dex file cannot exceed 64K.

    错误原因:App里面方法数超过64K解决方法:在android/app/build.gradle中添加implementation 'com.android.support:multidex:1.0. ...

  8. 基于spring sringmvc mybatis 做的导入导出

    导入 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww ...

  9. Ajax异步更新网页(使用原生JavaScript)

    一.页面代码 <!DOCTYPE html> <html> <head> <title>MyHtml.html</title> <me ...

  10. 【Spark】【设置】关闭INFO提示

    目的:关闭INFO提示 方法:通过修改配置文件实现 操作文件:Hadoop/conf/log4j.properties.template 操作1:复制模板文件使用 cp $SPARK_HOME/con ...