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

标签 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,/}/-1sort

或者,使用默认快捷键:

:+,/}/-sort

假设光标位于结束}:

:?{?+1,.-1sort

或更短:

:?{?+,-sort

假设光标位于{}之间:

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

或更短:

:?{?+,/}/-sort

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

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

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

关于vim - 在 vim 中对括号内的行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49295843/

相关文章:

退出一个缓冲区时,vim语法关闭了吗?

vim - 在 vim 中禁用单个文件的 pylint

vim - 有没有办法让vim识别文件名末尾的行号?

linux - Linux下如何将文件格式转换为utf-8?

git - 如何在 Git Bash 中找到 Vim 的绝对路径?

bash - 没有扩展的 shell 脚本的 ctags

vim - vim中的C,cc和S命令有什么区别

vim - 使用命令在两个 .virmc 设置之间切换?

vim - 如何在Vim中顺序执行多个全局命令? (错误: "Cannot do :global recursive")

vim - 如何在可视模式下在外部过滤器命令中使用vim变量?