탭 표시 대신 vim에 ID 수준을 표시하는 방법은 무엇입니까?

탭 표시 대신 vim에 ID 수준을 표시하는 방법은 무엇입니까?

.vimrc거의 모든 단일 텍스트 편집기/IDE처럼 식별 블록을 쉽게 따라갈 수 있도록 수직선을 표시합니다 .

if(x == 1){
|   if( y == 1){
|   |   y();
|   }
}

이것을 더 유용하게 만들고 대신 식별 수준을 표시할 수 있는 방법이 있나요? 나는 이미 매우 낮은 대비 색상을 사용하고 있기 때문에 실제 코드와 혼동하지 않을 것입니다.

if(x == 1){
1   if( y == 1){
1   2   y();
1   }
}

내 작업에서 리팩토링해야 하는 몇 가지 미친 방법에서 내 중첩 수준을 찾는 데 정말 도움이 될 것입니다. 현재 해결 방법에는 수평 창을 사용하는 것이 포함되어 있어 블록이 이상해지기 시작할 때 위쪽 창을 그대로 두고 코드 변경을 위해 탐색하는 아래쪽 창을 그대로 둘 수 있습니다.

추신: 저는 이미 무지개 괄호 플러그인을 가지고 있습니다. 하지만 그런 것들은 더 이상 도움이 되지 않습니다.

답변1

귀하의 질문에 대해 의견을 제시할 담당자가 충분하지 않아 대신 답변을 게시하고 더 나은 내용을 찾으면 업데이트하겠습니다. 내 "답변"은 다음과 같습니다.

정확히 당신이 요구하는 것은 아니지만, 아직 ":set list"를 사용해 보셨나요? (비활성화하려면 ":set nolist"). 하드 탭(실제 탭 문자, 예: )인 경우 각 탭에 ^I이 표시됩니다 . ^I이렇게 하면 특정 줄의 탭 수를 시각적으로 확인하고 계산할 수 있습니다. 그렇기 때문에 귀하가 찾고 있는 형식, 즉 귀하가 질문에 제공/제안한 형식과 정확히 일치하지 않는다고 말하는 것입니다.

또한 FWIW는 덜 복잡한 코드(예: 수백 개의 LOC 및 최대 몇 개의 파일)를 작업할 때 사용하는 습관이 있었습니다. 수천에서 수백만 개의 LOC와 수백 개의 파일이 포함된 프로젝트 작업을 시작한 후에는 대괄호가 정렬되도록 사용하기 시작했습니다(귀하가 추구하는 것과 약간 동일한 아이디어, IMO). 이는 vim에서 괄호 사이를 이동할 때에도 정말 도움이 됩니다 . 나는 또한 일부 코드가 때로는 너무 길기 때문에 수평 창 분할을 사용합니다(자체 기능을 요구하는 등).
if(statement){
// code here...
}


if ( (complexStatement) )
{
// code here...
}

%

HTH

답변2

글쎄, 그것은 당신이 원하는 것을 정확히 수행하지 않습니다. 왜냐하면 이것은 불가능하기 때문입니다. 하지만 당신은 내다이나믹사인여백 열에 들여쓰기 수준을 표시하는 플러그인입니다. 설정 :let g:Signs_IndentationLevel=1하고 실행합니다 :Signs.

:h DynamicSigns.txt무엇을 할 수 있는지 알아보려면 의 도움말을 참조하세요 .

관련 정보