vIM에서 JSON 들여쓰기를 수정하는 방법
vim에서 JSON의 기본 들여쓰기는 다음과 같습니다.
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
하지만 내가 기대하는 것은:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
구글을 검색하여 vim-json 플러그인을 몇 개 시도했지만 모두 이 문제를 해결하지 못했습니다.
더 쉬운 방법은 외부 명령어를 선택 항목에 대한 필터로 사용하는 것입니다.
- 선택하다
- 유형
:!python -m json.tool
권장되는 방법은 Romainl입니다.단, 경우에 따라서는 JSON 텍스트를 버퍼 내에 들여쓰기 할 필요가 있습니다.json
파일 형식다음 명령을 사용합니다.
command! -range -nargs=0 -bar JsonTool <line1>,<line2>!python -m json.tool
그냥 뛰어!:JsonTool
현재 라인이 예쁘게 인쇄됩니다.범위도 지정할 수 있습니다.
:JsonTool
:'<,'>JsonTool
:10,25JsonTool
python이 없거나 순수 vim 솔루션을 선호한다면 Tim Pope의 jdaddy 플러그인에 관심이 있을 것입니다.Jdaddy는 JSON 텍스트 개체를 제공합니다.aj
그리고.ij
인쇄 JSON 포맷(예:gqaj
.
예를 들어 python이 있는 경우 다음과 같은 방법으로 콘텐츠를 python의 json 툴로 전송할 수 있습니다.
:%!python -m json.tool
가지고 계신 경우jq
(source)를 사용할 수 있습니다.명령어 모드에서 사용할 수 있습니다.
:%!jq .
python -m json.tool
는 JSON 오브젝트속성의 위치를 정렬합니다.노드가 설치되어 있는 경우 다음 기능만 사용할 수 있습니다.
function FormatJSON(...)
let code="\"
\ var i = process.stdin, d = '';
\ i.resume();
\ i.setEncoding('utf8');
\ i.on('data', function(data) { d += data; });
\ i.on('end', function() {
\ console.log(JSON.stringify(JSON.parse(d), null,
\ " . (a:0 ? a:1 ? a:1 : 2 : 2) . "));
\ });\""
execute "%! node -e " . code
endfunction
매핑처f-j
.vimrc로
nmap fj :<C-U>call FormatJSON(v:count)<CR>
탭에 여러 공간을 전달할 수도 있습니다. 지정하지 않으면 2가 기본값입니다.
4fj
저의 완전한 .vimrc는 https://github.com/botverse/.dotfiles/blob/master/.vimrc에 있습니다.
gg=G
vim을 사용하는 경우 필요합니다.
다음은 Ruby의 예입니다.
:%! ruby -rjson -e "print JSON.pretty_generate(JSON.parse(ARGF.read))"
(https://gist.github.com/zinovyev/c4b6ec3c24670278adfebfb9ecced84b)
이 스테이트먼트를 에 추가합니다./etc/vim/vimrc
:
autocmd Filetype json setlocal ts=2 sw=2 expandtab
이러한 파일의 탭 동작을 정의하는 것 외에 공백 탭이 2개 있는 json 프레젠테이션을 강제합니다.
python을 사용하여 json 형식을 지정할 수 있습니다.
:%!python -m json.tool
이외에도 다음과 같은 몇 가지 다른 도구를 사용할 수 있습니다.jsbeautify
,prettydiff
,prettier
,jq
그리고.fixjson
.
상세한 것에 대하여는, https://medium.com/@codevalues/how-to-a-json-with-line-using-vim-7f9d1ec550dc 를 참조해 주세요.
언급URL : https://stackoverflow.com/questions/16620835/how-to-fix-json-indentation-in-vim
'programing' 카테고리의 다른 글
jHipster 샘플 앱에 자체 서명된 SSL 인증서를 추가하는 방법 (0) | 2023.04.01 |
---|---|
배열을 useEffect 종속성 목록으로 전달하는 중 (0) | 2023.04.01 |
BrowserRouter와 history.push()가 있는 라우터 (0) | 2023.04.01 |
d3.contract 축의 날짜 처리 (0) | 2023.03.27 |
Zend Framework가 AJAX 응답을 전송할 때 보기/레이아웃을 렌더링하지 않도록 하려면 어떻게 해야 합니까? (0) | 2023.03.27 |