5

次のように適切にフォーマットされていない単純なjsonファイルがあります。

{ ID: '092558667',  
  NAME: 'Store Made',  
  PARENT_CATEGORY_ID: '692558669',  
  INCLUDED_IN_NET_SALES: '1' }  

フィールド名を二重引用符で囲むだけです。vimで私が得た最も近いものは、フィールド名とコロンを引用符で囲むことです-明らかに、コロンをラップせずに文字列を取得する方法を理解する必要があります。これが私が試みていることです:

:%s/[A-Z_]*:/"&"

クエリからコロンを除外すると、ファイル全体が選択されてしまいます。

4

2 に答える 2

8

キャプチャ グループを使用できます。

%s/\([A-Z_]*\):/"\1":/

すでに引用されているキーを適切に処理するには:

%s/"\?\([A-Z_]*\)"\?:/"\1":/
于 2013-09-30T16:29:49.157 に答える
3

わかりました、上記の情報で、私はこれになりました:

:%s/[ \t]\([A-Za-z_].*\):/"\1":/
  • 大文字と小文字をサポートしています
  • すでに引用されているフィールドをスキップします

これは補完と見なすことができるので、.vimrc の vim 補完ショートカット ctrl-x ctrl-j にマップしました (それらはすべて ctrl-x で始まります)。

:noremap <C-x><C-j> :%s/[ \t]\([A-Za-z_].*\):/"\1":/<CR>
于 2015-08-11T08:51:34.623 に答える