微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Vim中对CSS文件进行字母排序

我得到一个CSS文件
div#header h1 {
    z-index: 101;
    color: #000;
    position: relative;
    line-height: 24px;
    margin-right: 48px;
    border-bottom: 1px solid #dedede;
    font-size: 18px;
}

div#header h2 {
    z-index: 101;
    color: #000;
    position: relative;
    line-height: 24px;
    margin-right: 48px;
    border-bottom: 1px solid #dedede;
    font-size: 18px;
}

我想要将{…}

div#header h1 {
    border-bottom: 1px solid #dedede;
    color: #000;
    font-size: 18px;
    line-height: 24px;
    margin-right: 48px;
    position: relative;
    z-index: 101;
}

div#header h2 {
    border-bottom: 1px solid #dedede;
    color: #000;
    font-size: 18px;
    line-height: 24px;
    margin-right: 48px;
    position: relative;
    z-index: 101;
}

我映射F7来做

nmap <F7> /{/+1<CR>vi{:sort<CR>

但是我需要一次又一次地按F7来完成工作。
如果CSS文件很大,这是耗时的很容易觉得无聊。
我想得到cmds管道。所以,我只按F7一次!
任何想法?谢谢!

:g#\({\n\)\@<=#.,/}/sort

说明:

g        " Work over the whole file running .,/}/sort on each line that matches
         " the pattern \({\n\)\@<=
#...#... " Delimiters: first bit is search pattern,second bit is what
         " to do on each matching line
\(       " Grouping,containing:
  {\n    " Open brace followed by new line
\)       " End of grouping
\@<=     " Negative look-behind,so match after the new-line,but make sure that
         " the match point is preceded by an open brace and a new-line

.,/}/    " From this line to the next closing brace...
sort     " Sort the lines

您当然可以将其映射到键盘快捷方式或将其转换为命令:

:nmap <F7> :g#\({\n\)\@<=#.,/}/sort<CR>

" Or:

:command! SortCSSBraceContents :g#\({\n\)\@<=#.,/}/sort

那么你可以简单地点击F7或运行:

:SortCSSBraceContents

原文地址:https://www.jb51.cc/vim/388088.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐