`
lantian_123
  • 浏览: 1360563 次
  • 性别: 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常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令

    VIM命令总结VIM命令总结

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

    vim的基本命令

    学习vim编辑器,第一步熟记vim的基本命令。linux开发必备。

    Vim文件编辑命令

    Vim文件编辑命令

    VIM常见命令总结vim常见命令总结

    VIM常见命令总结VIM常见命令总结

    VIM常用命令大全

    VIM常用命令大全VIM常用命令大全VIM常用命令大全VIM常用命令大全

    vim常用命令总结

    vim编辑器中常用的命令总结,以图片和树状结构的形式完美的总结了vim中常用命令。如:查找名,修改命令,删除命令

    vim最全命令表(加重点)

    搜集的非常全的一个vim编辑器使用命令表

    linux下vim命令详解

    linux下vim命令详解 高级一些的编辑器,都会包含宏功能,vim 当然不能缺少了,在 vim 中使 用宏是非常方便的

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

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

    vim命令操作大全

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

    Vim命令合集.docx

    在vim窗口中打开一个新文件 :open file 在新窗口中打开文件 :split file 切换到下一个文件 :bn 切换到上一个文件 :bp 查看当前打开的文件列表,当前正在编辑的文件会用[]括起来。 :args 打开远程文件,比如ftp或者...

    vim常用命令整理

    主要是整理了一些vim最常用的命令,基本够用了,整理成pdf,便于打印一份,放在手边

    Linux vim 常用命令

    VIM编辑常用命令详细解读,全面又简洁,目录清晰,偏于查找

    ubuntu and vim 命令大全

    ubuntu and vim 命令大全 ubuntu and vim 命令大全 ubuntu and vim 命令大全 ubuntu and vim 命令大全

    含有vim常用命令的桌面背景图片

    众所周知,vim是Linux下面最重要的编辑器了~ 而对vim命令的学习是学好vim的重中之重~这张壁纸上面集中了vim的一些常用命令, 把它当作的桌面背景,随时随地可以查看vim命令~

    vim命令图解 pdf

    vim 命令图解,linux里面的文本编辑器

    vim速查命令

    自己整理的关于超强编辑器gVim的命令速查一览表!

Global site tag (gtag.js) - Google Analytics