我是靠谱客的博主 大气心情,最近开发中收集的这篇文章主要介绍vim 的 global 命令global命令介绍命令行模式下的global命令Vim global命令使用技巧,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

global命令介绍

global 命令的执行原理和执行流程是:global 命令会在指定的 range 范围内,标记所有匹配 pattern 的文本行,并对匹配的行逐行执行 Ex 命令。

Vim global命令形式为 :[range]g[lobal][!]/{pattern}/[cmd]

用于指示Vim在 [range] 界定范围内对 (不) 匹配模式 {pattern} 的文本行执行 Ex 命令 [cmd]。

range                 表示操作范围,Vim :global 命令的默认作用范围是整个文件 (用%表示)

!                         表示反转 :global 命令的行为,将在没有匹配到指定模式的行上执行 [cmd]

pattern            指定 :global 命令要匹配的目标模式,若将该域留空,Vim会自动使用当前(最近一次)的查找模式

cmd                     除 :global 命令之外的任何 Ex 命令,Vim缺省使用 :print 命令 (缩写 :p)

命令行模式下的global命令

Vim 命令行模式下的 global命令 (缩写形式 :g) :

可用于在某个指定模式的所有匹配行上运行可执行的 Ex 命令,这里提到的指定模式便可以使用正则表达式。

例如

可以在 Vim 中执行命令 :g/^s*$/d 来删除 Vim 当前打开文件中的所有空白行;

如果要删除以 // 开头的所有行,可以执行命令 :g/^//.*$/d

Vim global命令使用技巧

删除含有含有指定字符串的行

命令行模式下执行

:g/STRING/d

使用 global 删除空白行

匹配空白行的正则表达式可以用 ^s*$ 表示

(^ 表示行首,$ 表示行尾,s 表示任何空白字符,包括空格、制表符、换页符等,* 表示匹配零次或多次)。

因此,vimi命令模式下,使用 global 命令删除Vim打开文件中所有空白行的命令为 :g/^s*$/d

shell命令删除空白行

Linux系统下存在不少使用 shell 命令删除文件空白行的方法。例如,cat -s test.txt 可将 test.txt 文件中的连续空白行替换为一个空白行。而 grep -v '^s*$' test.txt 命令可用于过滤 test.txt 文件中的所有空白行。

在 Vim 的命令行模式中,在命令前加一个 ! 前缀 (参见 :h :!) 就可以调用外部的shell程序。

例如,如果想在Vim内部查看当前目录下的所有文件,可以在Vim命令行模式下运行命令 :!ls

因此,可以在Vim命令行模式下执行 :%!grep -v '^s*$' 命令来删除Vim当前打开文件中的所有空白行。

使用替换命令substitute删除Vim文件空白行

Vim命令行模式下的 :substitute 命令 (缩写形式 :s) 可以将指定的字符替换成其他目标字符,其命令格式为 :[range]s/源字符串/目标字符串/[option]

删除空白行可以理解为一种替换类型的操作。为了在全文范围内替换(删除)所有空白行,可以使用

 :%s/^s*$n//g 命令。

空白行用  ^n*$表示;

最后

以上就是大气心情为你收集整理的vim 的 global 命令global命令介绍命令行模式下的global命令Vim global命令使用技巧的全部内容,希望文章能够帮你解决vim 的 global 命令global命令介绍命令行模式下的global命令Vim global命令使用技巧所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部