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. A Child's History of England.33

    To strengthen his power, the King with great ceremony betrothed his eldest daughter Matilda, then a ...

  2. day22面向对象编程思想

    day22面向对象编程思想 1.面向过程 面向过程: 核心是"过程"二字 过程的终极奥义就是将程序流程化 过程是"流水线",用来分步骤解决问题的 面向对象: 核 ...

  3. Java 监控基础 - 使用 JMX 监控和管理 Java 程序

    点赞再看,动力无限.Hello world : ) 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码网站 已经收录,有很多知识点和系列文章. 此篇文 ...

  4. 零基础学习java------39---------json格式交互,Restful(不懂),静态资源映射,SSM整合(ssm整合思想,application.xml文件详解(声明式事务管理),)

    一. json格式交互(知道) 1 . 回顾ajax基本语法 $.ajax({ url:"", // 请求的后台路径 data:{"":"" ...

  5. 零基础学习java------31---------共享单车案例,html快速入门(常见标签,get和post的区别)

     一 .单车案例 二. HTML快速入门 红字表示要掌握的内容 超文本标记语言,此处的标记指的即是关键字,其用处是用来写页面(展示数据). 语法:(1)./当前目录:../ 父级目录 (2)注释符号: ...

  6. Kotlin 学习(1)

    本文出自链接:https://www.jianshu.com/p/ef9584a8ebf8 Kotlin的插件安装: Settings->Plugins->Browse Repositor ...

  7. 11-如何通过newman生成不同类型的测试报告

    postman生成测试报告需要一个插件:newman ,并且这个插件需要先安装 . 安装步骤: 安装nodejs: newman是由nodejs开发,所以要先安装它的运行环境,下载地址:http:// ...

  8. 3.5 Rust Generic Types, Traits, and Lifetimes

    Every programming language has tools for effectively handling the duplication of concepts. In Rust, ...

  9. Logback设置保留日志文件个数

    Logback日志文件占用存储空间太多,设置保留文件个数,清理之前的文件. 主要由如下三个参数配合使用 maxHistory ,可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件,,例如设置 ...

  10. GO 定时器NewTimer、NewTicker使用

    package main import ( "fmt" "sync" "time" ) /** *ticker只要定义完成,从此刻开始计时, ...