들여 쓰기와 vim 라인 랩


20

Vim / gvim은 다음과 같이 긴 줄을 감 쌉니다 :

000000000000000000000000000000000000|
00000000000000                      |
    11111111111111111111111111111111|
111111111111111111                  |
    22222222222222222222222222222222|
222222222222222222                  |
        3333333333333333333333333333|
3333333333333333333333              |

Vim이 다음과 같이 줄을 감쌀 수있는 방법이 있습니까?

000000000000000000000000000000000000|
 00000000000000                     |
    11111111111111111111111111111111|
     111111111111111111             |
    22222222222222222222222222222222|
     222222222222222222             |
        3333333333333333333333333333|
         3333333333333333333333     |

줄 바꿈 된 줄이 그 줄이 시작된 곳의 들여 쓰기를 약간 지나서 시작되기를 원합니다. (확실히 말하면 텍스트 너비가 아닌 랩에 대해 이야기하고 있습니다.)

코드 줄이 줄 바꿈으로 숨겨지지 않도록 줄의 줄 바꿈을 줄 바꿈으로 고려하고 싶습니다.

답변:


17

업데이트 : 이 기능 은 vim 7.4.338에 들어 갔지만 7.4.354 이상을 원할 것 입니다.


따라서 분명히 이것은 Vim 패치가 필요합니다 . 거기에있다 바츨라프 Smilauer에 의해 패치 2007 년 나는 다시에서 패치 업데이트 페도라 11에서 빔 7.2.148으로 작업에는하지만 일을 할 것처럼 보인다.


1
Fedora가 Vim에 대한 업데이트를 릴리스함에 따라 패치를 업데이트하고 있습니다. 최신 정보는 retracile.net/wiki/VimBreakIndent 를 참조하십시오 .
retracile

MacVim에서이 기능을 사용하는 방법을 설명 할 수있는 사람에게 보너스 포인트.
도넛

패치는 어디에 있습니까? 이 사이트는 내가 볼 수있는 링크가 없습니다
puk

@puk : 죄송합니다. 주요 소프트웨어 업그레이드로 일부 링크 위치가 변경되었습니다. 나는 그것들을 지금 고쳤다.
후회

1
오늘 (2014 년 6 월 25 일) 현재 침입 패치는 공식적으로 Vim 7.4의 일부입니다. 패치 338 및 345에 의해 추가됩니다.
Heptite

14

.vimrc에서 :

set wrap               " soft-wrap lines

" requires +linebreak compile-time option (not in the 'tiny' and 'small' builds); check your :version
set showbreak=----->   " prefix for soft-wrapped lines (no actual line break character)
"set linebreak          " soft-wrap lines only at certain characters (see :help breakat)

" If you like line numbers, you may want this instead:
"set number
"set showbreak=------>\  " line up soft-wrap prefix with the line numbers
"set cpoptions+=n        " start soft-wrap lines (and any prefix) in the line-number area

또는 :set showbreak=----->아무 세션 이나 입력 하십시오.

참고로, 나의 연구 내역 (Vim 6.2) : :help 'wrap'-> :help 'linebreak'-> ( :help 'showbreak'-> :help 'cpoptions', :help 'breakat')


매우 시원하지만 실제로 의미하는 것은 아닙니다. 당신은 내가 의도했던 것보다 조금 더 문자 그대로 가져갔습니다. 내가 명확히 할 수 있는지 볼 것이다.
2009

1

귀하의 질문에 대한 해결책은 다음 두 가지 매개 변수를 설정하여 얻을 수 있습니다 vimrc.

들여 쓰기가 같은 줄을 끊으려면 : set breakindent

소프트 줄 바꿈을 들여 쓰기위한 공간 : let &showbreak=' '

다음과 같이 작동합니다.

111111111111111|
 11111111111111|
 11111         |
222222222222222|
 222222222222  |
333333333333333|
 33333         |

0

당신이 찾고있는 완벽한 대답은 아니지만 여기에 vim의 적절한 들여 쓰기 부족을 피하기 위해 내가하는 일이 있습니다.

먼저, Nathanael Kane의 들여 쓰기 안내서 (선택 사항)를 다운로드 하여 탭 폭을 2 칸으로 설정할 수있는 지점까지 들여 쓰기 수준을보다 잘 표시하십시오!

둘째, 키 조합을 매핑하여 단어 줄 바꿈을 전환합니다. 'wrap'( 'w'는 절약)에 대해 'r'로 설정했습니다.

:noremap <leader>r :set nowrap! <CR>

그런 다음 나는 단어가 더 미학적으로 기쁘기 때문에 항상 줄 바꿈을하고 있으며, 줄을 편집해야 할 경우 빠르게 전환합니다.


0

현재 사용하고있는 "해결 방법"은 접두사에 고정되어 있지만 큰 들여 쓰기를하는 것입니다. 이 고정 된 들여 쓰기가 줄 바꿈 된 들여 쓰기보다 크면 좋습니다. 대부분의 경우입니다.

" 'showbreak'   : string to put before wrapped screen lines
set sbr=\ \ \ \ \ \ \ \ \ \ \ \ \ \|\ 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.