在vim中对括号内的行进行排序

时间:2018-03-15 09:36:19

标签: vim

我想按字母顺序对括号内的所有行进行排序(例如在CSS文件中很有用)

现在我正在做:

vi{ :sort 输入

但我更喜欢si{在括号内排序)。有什么方法可以达到这个目的吗?

示例:

当前状态(光标位于括号内的任何位置)

.selector {
    width: 100vw;
    border: 1px solid black;
    display: flex;
    color: blue;
}

预期输出

.selector {    
    border: 1px solid black;
    color: blue;
    display: flex;
    width: 100vw;
}

1 个答案:

答案 0 :(得分:2)

假设光标位于开头{

:.+1,/}/-1sort

或使用默认快捷键:

:+,/}/-sort

假设光标位于结束}

:?{?+1,.-1sort

或更短的:

:?{?+,-sort

假设光标位于{}之间:

:?{?+1,/}/-1sort

或更短的:

:?{?+,/}/-sort

您可以像这样映射最后一个:

nnoremap siB :?{?+,/}/-sort<CR>

或按照:help :map-operator创建运算符。