2013-10-27 7 views
5

나는 vim이 긴 줄을 감싸고 싶지만, 중간에는 단어를 나누지 않기를 바란다. 이 게시물을 찾았습니다 : Word wrap in Gvim어떻게 공백에서만 vim break line을 만들 수 있습니까?

하지만 저에게는 적합하지 않습니다. formatoptions에 이미 l이 있고 linebreak를 사용할 수 있습니다. 당신이 볼 수 있듯이

:set formatoptions? 
formatoptions=lnq 

, 그것은 여전히 ​​분할 단어입니다 : http://i.imgur.com/ekJIHww.png

관련 도움말 페이지를 컨설팅 후, 나는 또한 \sbreakat을 설정했는데, 그 중 하나가 작동하지 않았다.

답변

8

당신이 알아 낸대로 'linebreak' 옵션 ('wrap' 켜짐)을 사용하면됩니다.

Vim이 화면에 맞는 마지막 문자가 아닌 'breakat'의 문자로 긴 줄을 감싸는 경우. 기본적으로

그리고 이후 'breakat'

은 (안 단어의 중간에) 예상대로 공간 및 탭과 일부 문장 부호 문자는,이 라인을 중단해야이 포함되어 있습니다. 'breakat'을 Vim 기본값으로 재설정하는 것이 좋습니다. 플러그인 또는 매핑으로 변경된 경우에 대비하십시오.

아, 그리고 'list'을 설정하지 않으면 이러한 기능이 혼합되지 않습니다. 모두 함께 지금

: 당신이 약 하드 바꿈 이야기하고 있는지 여부에 따라 다르다

:set nolist wrap linebreak breakat&vim 
+2

그래서 볼 수있는 탭과 소프트 라인 줄 바꿈 단어를 선택하지 않아도됩니까? 그것은 매우 이례적이고 좌절입니다. – Daniel

+1

@Daniel 제게 불평하지 마십시오! 이것은 실제로 to-do리스트에 오랫동안있었습니다 (': h todo'). 누군가 구현하기까지 시간이 걸릴 때까지는이 기능을 사용할 수 없습니다. – glts

1

- 개행 문자가 실제로 텍스트에 삽입 - 또는 유일한 방법에 영향을 미치는 소프트 LINEBREAK을, 텍스트가 화면에 표시됩니다.
나는 당신이 후자를 언급하고 있다고 생각합니다.
맞으면, :set list을 원할 것입니다 (아마도 vimrc에 set list을 추가하십시오).
게다가 단어 경계에서 디스플레이 (다시 : 실제 텍스트가 아닌 디스플레이 만)를 포장하면 list은 vim이 공백, 탭 및 (단단한) 개행과 같이 다양한 "보이지 않는"문자를 표시하도록합니다. listchars 변수 (자세한 내용은 :help listchars 참조); 단어 경계에서 부드러운 줄 바꿈을 원하지만 보이지 않는 문자는 원하지 않으면 아마도 목록 표시 줄을 아무 것도 설정하지 않아도됩니다.
개인적으로 때때로 가끔 목록을 활성화하고 싶지 않은 경우가 있습니다. :set nolist 회전이 꺼져 있습니다. :set list! 토글. (완전성을 위해 :set list?은 현재 사용 가능한지 여부를 알려줍니다.) 이들은 모두 표준 vim 규칙입니다.
너무 많이 타이핑하면 vimrc에 맞춤 키 매핑을 설정할 수 있습니다. 그러나 그것은 또 다른 질문입니다.

+0

나는 실제로 목록이 이미 설정되어있다 :'set listchars = tab :> -, trail : -'. '': nolist'를 설정할 때마다, 줄 바꿈이 더 이상 단어 중간에 있지 않아서, 저를 괴롭 힙니다.이전 대답은 두 가지가 호환되지 않는다고 언급했는데 이유를 모르겠습니다. – Daniel

+0

아, 맞아, 나쁘다, 미안하다. 단어 경계는'list'가 * en * abled 일 경우 디스플레이를 감싸는 목적으로 무시된다. 나는 그것도 이해하지 못한다. – Edward