때때로 나는 들여 쓰기 수준으로 들여 쓰기되지 않은 코드로 작업해야합니다 .Vim은 일반적으로 파일에 무언가를 복사 / 붙여 넣은 후에 (레벨 당 4 칸)으로 설정했습니다. 나는 보통으로 할 수 있도록 <<
하고 >>
. 문제는 다음 들여 쓰기 수준으로 넘어 가지 않고 단지 4 개의 공백을 더하거나 빼는 것입니다.
이런 코드가 있다면
if condition:
do this
do that
일 >>
에 대한 것은 do that
에서 발생합니다
if condition:
do this
do that
나는 이것에 가고 싶어
if condition:
do this
do that
위 줄의 들여 쓰기를 쉽게 일치시키는 것 외에도 4 줄을 추가하지 않고 다음 수준의 들여 쓰기로 건너 뛰기를 원합니다.
이것은 들여 쓰기와 관련하여 .vimrc에있는 것입니다.
:set tabstop=4 shiftwidth=4 expandtab
>>
그리고 <<
당신이 원하지 않는 들여 쓰기를 각각 추가하고 제거하십시오. 당신이 원하는 것은 "포맷팅"입니다 ==
.
:nnoremap >> ^i<tab><esc>
탭 동작을 원한다면 매핑 할 수도 있습니다>>
@romainl
—
Dumitru
==
은 위의 줄 수준으로 점프합니다. 좋은 것은 알고 있지만, 그것은 것 내가 원하는 내가 관심이. 질문에 추가로 모든 경우에없는 일이다에 대한 >>
및 <<
에 들여 쓰기 / dedent까지 그 방향으로 경계에서 shiftwidth의 다음 배수 .
아니,
—
romainl
==
사용 중 하나 equalexpr
또는 equalprg
주어진 라인을 포맷합니다.
filetype plugin indent on
당신에.vimrc
, 파일 형식 (및 플러그인) 들여 쓰기 관련 규칙이 적용됩니다. 즉 , 편집 할 때 실제로tabstop
값 이 무엇인지 (set tabstop?
다른 설정과 동일) 확인하고 'after'파일에 줄을 추가하여 값을 변경하십시오. stackoverflow.com/a/159066/5000478