Vim이 최대 텍스트 너비를 80 대신 79로 설정하는 이유는 무엇입니까?


13

Vim의 일부 기본값에 대해 약간 당황합니다. 특히, 대한 gq{motion}, 있다고한다

[...]
If the 'textwidth' option is 0, the formatted line
length is the screen width (with a maximum width of
79).

80대신 최대 너비를로 설정하면 더 의미가 있어야한다고 생각했습니다 .

누군가 나에게 이것을 밝힐 수 있습니까? 뭔가 빠진 것 같아요.


1
글쎄, 80시작하는 것은 꽤 임의적 인 "표준"이다. 왜 안될까 79? 이제 열 너비의 터미널 79에 줄을 배치 80하면 오른쪽에 약간 더 많은 공간이 생겨 가독성 향상 될 수 있습니다 . github.com/vim/vim/blob/…
romainl

2
아마도 80열 전체 터미널에서 마지막 열이 줄 바꿈 기호로 예약되어 있습니까? 그럼에도 불구하고 줄 번호가 있으면 분명히 하나 이상의 열을 사용합니다. 그래도 여전히 의아해합니다. 또한, 연결된 코드 79에서 최대 값을 사용할 수 있습니까? 내가 읽은 것을 이해하지 못했을 수도 있습니다.
Atcold

3
... 또는 당신은 설정 textwidth하고 끝낼 수 있습니다.
VanLaser

13
80은 기존 하드웨어 터미널과 MS DOS (텍스트 모드) 화면의 열 수입니다. tw=79대신 tw=8080 열 터미널을 인쇄 여분의 줄 바꿈에 80 자 라인을 표시하기 때문이다.
사토 카츠라

7
줄 바꿈이 항상 추가됩니다. 80 자 너비의 터미널에서 81 번째 문자 인 경우 전체 행 다음에 빈 행이 표시됩니다.
사토 카츠라

답변:


7

79 원래 선택되었다 이유인지 나는 어떤 증거가 없지만, 한 가지 이유 떠나 당신이 사용하는 경우 때문에 그 가치가있다 'list'위해 포함 된 값 eol'listchars'다음 listchar의 디스플레이가 80 문자 -의 원인이됩니다 80 자 너비의 터미널에서 다음 줄로 줄 바꿈하는 길이 줄.

줄 길이가 79자인 경우 80 번째 열에 줄 끝이 들어 가지 listchar않아도됩니다.


나는 그것을 얻지 못했습니다. 어디에서 사용해야 'list'합니까? 무엇을해야합니까?
Atcold

@Atcold 일반적으로 보이지 않는 (예 : 줄 끝) 문자를 화면에 표시하는 옵션입니다. 참조 :help 'list'하거나 실행하려고 :set list행동에서 볼 수 있습니다.
Rich

:set list많이하지 않습니다. 나는 내가이없는 내기 eollistchars. 이것이 79문자 뒤에있는 이유는 확실하지 않습니다 . @ sato-katsura가 의견에서 가장 좋은 답변을 가지고 있다고 생각합니다.
Atcold

eol'listchars'기본적으로 있지만 물론 구성에서 무언가가 제거되었을 수 있습니다. 나는 특히 이것이 79가 원래 선택된 역사적인 이유라고 믿을 이유가 없다고 대답했다. 나는 왜 그것이 계속해서 좋은 가치를 지니고 있는지 다른 이유를 제시하고 있습니다.
Rich

@Atcold. 줄 바꿈은 기본적으로 표시되지 않으므로 추가 문자를 예약하는 것은 의미가 없습니다.
Christian Brabandt

6

이 "default" 는 해당 섹션에 설명 된대로 gqand gw명령 및 자동 형식 에만 적용됩니다 . 디폴트 값은 textwidth또한 0이며, :right그리고 :center기본적으로 80, 79 없다.

79가 선택된 이유는 vi에서 직접 보류가 될 수 없으며 gq, vi gw에는 자동 형식이 없기 때문입니다. 이것은 대부분 추측이지만 자동 형식의 79 기본값은 vi의 기존 자동 줄 바꿈과의 일관성을 위해 선택되었다고 생각합니다. 이 부과 gqgw부작용이고; 그렇지 않으면 80이 선택되었을 것으로 예상 할 수 있습니다.

vi (및 vim if textwidth=0)에서 텍스트는 창 너비 빼기에서 자동 줄 바꾸기를 시작합니다 wrapmargin. 그러나 인 경우 wrapmargin=0자동 줄 바꿈이 수행되지 않습니다. 이는 80 자 제한으로 ADM-3A를 사용하고을 (를) 사용하는 경우 wrapmargin=1자동 줄 바꿈을 사용하는 최대 너비는 79입니다.이 동작의 단점은 커서가 다음 캐릭터는 포장 위치를 ​​결정하기 전에있을 것입니다. 물론 vi와 vim은 커서를 다음 줄에 놓을 수 있습니다 (매우 긴 단어를 입력 할 때 관찰 됨). 추가 열을 남기는 것이 조금 더 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.