gVim中格式化部分json string(也可以整个文件)

背景:在Vim中时不时会把工作中需要的json内容copy进来查看,可是json内容是一行string,比如{"Name":"abc","Author":"athor","Data":{"subsdiary":"HM","Title":"Engineer","Carrer":["a","b"]}}

        (1)很难看,若是人来格式化,浪费时间,

        (2)而且我希望一个在一个文件中对比几个json。

         虽然Vim默认支持后缀是".json"的文件,但并不支持一个文件中只有几行是json的情况。

方案:用外部工具jq 。有人正好本地安装有Python3,那也有另一个Vim plugin完成相同任务。但我的开发是不涉及任何python,而且并不想为了这个目的单独安装Python3,并且jq更小巧,所以还是jq更对我的胃口。

准备步骤:

          1. 下载jq到本地,并解压到特定目录。我解压后的文件是jq-win64.exe. (我的OS是Win10 64bit)

          2. 配置OS的path,能搜索到刚解压的folder

          3.  启动gVim(若下载前打开了,请关闭重新打开。)

           4: Vim的command line mode中输入!jq-win64,如果弹出console窗口显示jq内容,那就准备好了。(!表示在shell中执行命令)

                     

执行:

         1. gVim中输入{"a":1}

         2. Vim的command line mode中输入1!jq-win64 回车 。

                       

             这里1表示我只想格式化第1行的json string。

              格式化1到最后一行,用1,$!jq-win64。

              格式化当前cursor所在行以及之后5行,用 .,.+5!jq-win64(range的概念参考这里)

          任务完成!

改进:

     当然,这个的缺点是要输入文件名jq-win64,太长。可以自定义一个command,参考这里,它定义了一个FormatJSON命令,command FormatJSON %!jq .。根据Vim的help描述,自定义command用:com[mand][!] [{attr}...] {cmd} {rep}。

      这里FormatJSON就是{cmd}, %!jq就是{rep}。作者用的jq文件名就是jq。

 

参考:

 https://vi.stackexchange.com/questions/5835/how-to-run-bash-command-over-current-file-and-replace-buffer-with-result

在Vim,你可以通过编写或修改`.vimrc`文件来实现Verilog的高亮显示,如果你是在使用gvim并且想要对SystemVerilog(sv)文件进行高亮,你可能需要安装一些插件或编写特定的脚本来处理sv文件的语法高亮。这里提供一个简单的例子,说明如何修改Vim的配置文件来实现基本的语法高亮。 1. 首先,确保你的gvim支持Verilog语法高亮。如果支持,它通常也会支持SystemVerilog,因为SystemVerilog是Verilog的一个超集。 2. 打开你的`.vimrc`文件。如果你还没有这个文件,可以在gvim运行`:e ~/.vimrc`命令来创建和编辑它。 3. 在`.vimrc`文件,你需要指定使用Verilog的语法文件。这通常已经默认启用,但如果你需要手动指定,可以添加如下命令: ``` syntax on filetype plugin indent on ``` 4. 接下来,你可以使用`:setfiletype`命令来将特定文件扩展名关联到Verilog语法文件: ``` setfiletype verilog ``` 5. 如果你希望针对`.sv`文件扩展名使用Verilog的语法高亮,你可以添加一个自动命令来检测`.sv`文件并设置其文件类型为Verilog: ``` au BufNewFile,BufRead *.sv setf verilog ``` 这个自动命令表示每当创建新文件或读取新文件时,如果文件名符合`*.sv`模式,那么就设置文件类型为`verilog`。 6. 如果你的gvim版本不支持`setfiletype`命令,你可以尝试使用Vim的旧方法: ``` au BufNewFile,BufRead *.sv set syntax=verilog ``` 这将会为所有`.sv`文件设置Verilog语法高亮。 请注意,上述步骤假设你已经安装了Vim或gvim,并且已经包含了Verilog的语法高亮支持。如果上述方法不起作用,可能需要安装额外的插件,比如`verilog_systemverilog`插件,或者进行更复杂的配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值