`
lantian_123
  • 浏览: 1365330 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

每日一Vim(28)全局命令

 
阅读更多

 

每日一Vim(28)全局命令

全局命令在Vim中有这举足轻重的作用,特别对于那些重复性的工作尤为有效,它能对匹配的所有行执行某个命令,先来看看它的语法:

:[range]global[!]/{pattern}/{command}

[range]指定作用范围,默认global命令作用于整个文件,不像:normal等命令,normal默认是作用于当前行。

{pattern}:对于range范围内的文本,如果匹配pattern,就会执行command,[!]:相当于取反(也可以用vglobal),也就是不匹配patten的行。

command默认是print,打印文本行。

举例:

  1. 实现Linux命令tac的功能(与cat对应的一个命令,反向输入文本行)
    :g/^/m 0 这里的^表示所有行(包括空行),.表示非空行,m 0表示将当前行移至第0行。这样就实现了tac的功能。

  2. grep:使用Linux的朋友对grep再熟悉不过了,它其实就是:g/re/p的缩写,re表示regular express,p表示print

  3. vred:删除不匹配re的行,v就是vglobal的缩写,比如删除所有不包含href的行::v/href/d

  4. 排序:对于下面的css片段:

    div{
        border:0;
        margin:0;
        padding:0;
        font-size:12px;
        font:inherit;
        vertical-align:baseline;
    }
    

    我们想把{}中的样式按照字母的顺序排列成如下:

    div{
        border:0;
        font-size:12px;
        font:inherit;
        margin:0;
        padding:0;
        vertical-align:baseline;
    }
    

我们可以使用命令::g/{/ .+1,/}/-1 sort,这个命令看起来很复杂,好像也不符合global的语法。其实对于global语法,可以扩展成::g/{pattern}/[range][cmd],就是说cmd前面还可以指定range.因此我们可以把上面的命令来做一次剖析:

.+1,/}/-1 sort 这个命令就相当于[range][cmd],这里的range范围为:当前行(.)的下一行(+1)直到(,)匹配(})的前一行(-1)。如此一来这条完整的命令就好解释了,表示{的下一行一直到}的上一行执行sort命令。

费了这么大心思就为了这么一小块代码排个序,看似有点不值,完全可以把大括号里面的内容选中后执行sort就得了嘛,干嘛这么费劲啊,你可别忘了,global的厉害,它可以作用于这个文件,如果css文件有上百行,甚至千行,如果使用V模式执行sort麻烦可大了。

转载请注明出处,谢谢合作!作者---zhijun

0
4
分享到:
评论
1 楼 mengjie133233 2013-04-18  
期待 写一篇关于 vim中特殊符号实用的文章,比如这篇文章中的 {pattern}中出现的一些匹配行 或者 特殊模式的符号

相关推荐

    VIM命令VIM命令VIM命令

    VIM工具命令的使用。VIM工具命令的使用。VIM工具命令的使用。

    VIM命令总结VIM命令总结

    VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结

    Vim文件编辑命令

    Vim文件编辑命令

    vim最全命令表(加重点)

    ### vim最全命令表(加重点) #### 一、打开文件操作 - **vi**: 进入vi编辑器,但不读取任何文件。 - **vifilename**: 打开并编辑指定名称的文件。 - **vifilename.filename**: 打开多个文件,依次进行编辑。 - **...

    vim常用命令总结

    ### vim常用命令总结 #### 一、概述 `vim`是一款功能强大的文本编辑器,在Linux环境中广泛使用。本文档旨在总结`vim`编辑器中常用的命令,这些命令可以帮助用户高效地进行文本编辑工作。总结包括查找命令、修改...

    linux下vim命令详解

    宏命令是Vim中一项非常有用的功能,允许用户录制一系列命令并在以后重新执行它们。这对于批量处理相似任务特别有效。 - **录制宏**:在正常模式下,使用`:qx`开始录制宏,其中`x`是用于存储宏命令的寄存器。例如,`...

    Vim 常用命令

    由于其独特的操作模式和丰富的命令,Vim成为了许多程序员和系统管理员钟爱的编辑器之一。下面详细介绍一些常用的Vim命令,帮助用户更高效地使用这一强大的工具。 首先,进入Vim的基本命令是`vim [filename]`,这会...

    vim 命令大全

    ### Vim命令大全与新手入门指南 #### 一、Vim简介与强大之处 Vim,全称Vi IMproved,是一款源自Unix系统下的Vi编辑器的高级版本,它不仅继承了Vi的强大功能,还在此基础上增加了许多改进和扩展,使之成为当今最...

    vim常用命令.txt

    `vim`支持命令模式、插入模式以及可视模式等多种编辑方式,并且可以通过一系列丰富的命令来高效地进行文本编辑工作。本文将围绕提供的文件中的内容,对`vim`的常用命令进行详细解析。 #### 二、具体知识点解析 ###...

    linux vim 命令 总结

    Linux下的ViM编辑器是一款强大的文本编辑工具,其全称为Vi Improved,是经典的Vi编辑器的增强版本。ViM在shell环境下使用,适用于系统管理和日常编程任务。通过掌握ViM的基本命令和操作模式,可以极大地提升Linux...

    一张图记住 Vim 常用命令

    本来不算写 Vim 使用教程的,因为我想网上应该会有很多,然后我去搜了一下看到别人写的好丑好乱啊,于是... 跳至指定行4、Last line mode下命令简介A) 列出行号B) 跳到文件中的某一行C) 查找字符D) 保存文件E) 离开 Vim

    Vim常用命令详细汇总(全)

    vim常用命令 我汇总的一些vim常用的指令和按键操作,和一些NERDTree菜单插件的命令,尤其是NERDTree,这个vim插件装上之后,感觉完全可以把vim当IDE来用,实在是我辈码农的装逼利器。 1. 功能指令 按键 解释 ...

    vim 命令 键盘图

    `vim命令图解.png`可能是详细解析各种Vim命令的图表,这些命令包括文本对象选择(如aw - 一个单词,ip - 一个句子),可视模式(`v`,`V`,`Ctrl + v`分别对应字符、行、块选择),以及文本操作(`.`重复上一次动作...

    vim命令操作大全

    本图片包含大量的常用vim使用命令和操作,而且对所使用的命令进行了分类,方便查阅

    Linux的vim命令合集

    在Linux操作系统中,`vim`(Vi Improved)是一款强大的文本编辑器,被广泛用于创建、修改和查看文本文件。这个“Linux的vim命令合集”包含两个文档,旨在帮助学习者深入理解和掌握`vim`的基本操作和高级特性。以下是...

    linux的vim编辑器命令大全

    - **进入vim编辑器**:可以通过命令 `vim 文本名` 来打开一个已存在的文件或者创建一个新的文件进行编辑。 - 如果文件已经存在,则vim将加载该文件到编辑器中;如果文件不存在,则会在指定位置创建该文件。 - **不...

    Linux&vim常见命令.zip

    本文将详细讲解Linux系统的基本命令以及vim编辑器的使用,旨在帮助初学者快速掌握这两个核心概念。 首先,让我们了解Linux的基础知识。Linux是一种开源的操作系统,它的设计目标是提供一个免费、灵活且强大的平台。...

    VIM命令大全图集

    VIM(Vi IMproved)是一款强大的文本编辑器,它在UNIX、Linux以及Windows等操作系统上广泛使用。VIM提供了一套高效且灵活的命令行操作,使得程序员和系统管理员能够快速地编辑和处理文本文件。VIM命令大全图集包含了...

Global site tag (gtag.js) - Google Analytics