【问题标题】:Split one line object to multiline object将一个线对象拆分为多线对象
【发布时间】:2018-10-03 10:04:29
【问题描述】:

AtomVim 中是否有命令/快捷方式,所以如果我选择这个:

{ a: 1, b: 2, c: 3 } 

转换成这个?:

{ 
   a: 1, 
   b: 2, 
   c: 3 
} 

【问题讨论】:

标签: javascript vim atom-editor comma


【解决方案1】:

Pretty JSON 是一个可以为 Atom 安装的包,它可以做到这一点。

【讨论】:

【解决方案2】:

将光标置于{} 类型内:

va{:s/\({\|,\)/\0\r/g<Enter>f}i<Enter>

分解:

va{ 可视模式选择{} 中的所有内容,包括{} 本身

:s/\({\|,\)/\0\r/g&lt;Enter&gt; 搜索开头的 { 和任何 , 并将它们“替换”为那里的内容以及换行符。

f} 您的光标应该在最后一行,其中包含结束 }。将光标移到它上面。

i&lt;Enter&gt; 进入插入模式,光标位于} 之前并插入换行符。

这将适用于您作为示例显示的内容。如果您的实际输入包含任何带有{, 的字符串,这将中断。如果是这种情况,您可能需要比普通 vim 命令更复杂的东西。

【讨论】:

  • 需要注意的一点是,只有在线上只有一个 { 时才会按预期工作,因为 va{:s 不会只对视觉选择起作用,它会起作用在视觉选择的整个上。 vis.vim 插件可以让你只影响你选择的有限区域:github.com/vim-scripts/vis
【解决方案3】:

我的 splitjoin 插件可以在 Vim 中执行此操作,虽然它不适用于选择,但使用光标位置:https://github.com/AndrewRadev/splitjoin.vim

当然,如果您正在处理一个大的 JSON 文件,专用的 JSON 美化器将是重新格式化它的更可靠的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 2016-09-05
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多