ProgramingTip

Vim에서 잘못된 인라인 자바 들여 쓰기를 어떻게 수정합니까?

bestdevel 2020. 11. 22. 20:20
반응형

Vim에서 잘못된 인라인 자바 들여 쓰기를 어떻게 수정합니까?


Vim에서 인라인 자바를 들여 쓰기가 제대로되지 않는 것입니다. 다음을 고려하세요 :

  $(document).ready(function() {

  // Closing brace correctly indented
    $("input").focus(function() {
      $(this).closest("li").addClass("cur-focus");
    }); // <-- I had to manually unindent this

  // Closing brace incorrectly indented
    $("input").blur(function() {
      $(this).closest("li").removeClass("cur-focus");
      }); // <-- This is what it does by default. Argh!

  });

Vim은 두 번째 경우에 닫는 중괄호를 자동으로 들여 쓰기를 주장하는 것입니다. 전체 파일을 다시 들여 쓰는 경우에도 마찬가지입니다. 첫 번째 경우에서 볼 수있는 것보다 표준적인 JS 들여 쓰기 스타일을 사용하여 자동으로 들여 쓰기를 수행해야합니까?


대부분의 배포이고 버그가없는 Javascript로보기 쓰기는 Preston Koprivica의 펼쳐 집니다. 제안 된 답변에있는 소위 OOP 배포에는 심각한 버그가 있고 대괄호가있는 코드를 들여 쓰지.


JavaScript 들여 쓰기 사용 : Preston Koprivica의 Javascript 들여 쓰기 (HTML 들여 쓰기 포함) . oligofren 의 헤즈 업에 감사드립니다 -그에게 찬성표주세요 .


한 펼쳐지는 jQuery에서 자주 사용되는 클로저 구문의 언급 된 내용을 언급합니다.

$(function() {
  // only one level of indentation, not two
});

이 펼쳐지는 나에게 더 잘 작동합니다 : http://www.vim.org/scripts/script.php?scriptid=2765


2009 년의 답변의 대부분은 솔직히 구식입니다.

vim-javascriptPreston의 광범위한보다 훨씬 최신이며 최신 입니다.

Vundle을 아직 사용하지 않았다면 설치가 조금 더 복잡 하지만 대안의 문제로 고통받지 않는을 구석으로 같습니다.


설정의 일부 조합은 VIMRC 파일에 있어야합니다.

syntax on 
set syn=auto 
set showmatch 
filetype on 
filetype plugin on 
filetype indent on 
set tabstop=4 
set softtabstop=4 
set shiftwidth=4 
set expandtab

나는 이와 같은 문제가 있었다. 이 모든 자바 읽어 들여 쓰기 중 최고입니다 :

http://www.vim.org/scripts/script.php?scriptid=1840

IndentAnything이 필요합니다.

http://www.vim.org/scripts/script.php?scriptid=1839

추가 보너스로 Javascript 블록을 꽤 예쁘게 만드는이 들여 쓰기를 작성했습니다. 기본적으로 기본 html indenter (Javascript 블록 내에서는 IndentAnything)를 사용합니다.

http://gist.github.com/371902


여기에 올 누군가 경우 https://github.com/pangloss/vim-javascript 에서 vim-javascriptpangloss지금까지 나를 도왔습니다. 즉 Vim 7.4. 그리고 oligofren과 Charles Roper의 위의 솔루션은 믿을 수 있습니다.


구문 파일에 Java 스크립트에 대한 들여 쓰기가 좋다고 가정하고 블록을 시각적으로 강조 표시하고 =를 누릅니다. 이것은 자바에서 작동하므로 자바 스크립트에 대해 반쯤 괜찮은 일을 할 것으로 기대합니다. 결과는 아마도 tabstop, expandtab 및 shiftwidth 설정에 따라 달라질 수 있습니다.

gq도 유용합니다. 줄을 들여 쓰지 않고 형식을 지정합니다.


자바 스크립트에 특화된 플러그인을 설치할 필요가 없으며, 들여 쓰기를위한 내장 Vim 옵션을 배울 수 있습니다. 빔은 꽤 많은 옵션을 가지고 있으며, 들여 쓰기 스타일 중 일부는 좋아하는 cindent, smartindent그리고 indentexpr자신의 옵션이 있습니다.

cindent또는 smartindent또는을 사용하고 있는지 확인하려면 indentexpr다음을 실행하십시오.

:set cindent?
:set smartindent?
:set indentexpr?

이름에도 불구하고 cindentC 프로그램에만 적용되는 것이 아니라 Javascript를 포함하여 거의 동일한 구문을 공유하는 여러 프로그래밍 언어에 적용 할 수 있습니다. :help C-indenting이것 대한 문서를 살펴보십시오 . 특히 이와 같은 선으로 설정을 조정할 수 있습니다 . :help 'cinoptions'및을 참조하십시오 :help cinoptions-values. 다음은 구성의 예입니다.

:au FileType js,javascript setlocal shiftwidth=2 softtabstop=2 cinoptions=j1,J1,(1s " see help cino-j cino-J cino-(

참고 URL : https://stackoverflow.com/questions/620247/how-do-i-fix-incorrect-inline-javascript-indentation-in-vim

반응형