파일에서 최종 개행 문자의 emacs 표시를 어떻게 억제 할 수 있습니까?


11

vim의 단점 중 하나는 파일이 줄 바꿈 문자로 끝나는 경우 파일 끝에 빈 줄을 표시하지 않는다는 것입니다. 이런 식으로, 파일 줄 바꿈으로 끝나지 않으면 디스플레이는 모델 [noeol]라인 의 마커 만으로 동일 합니다.

반면 Emacs는 파일이 줄 바꿈으로 끝나는 경우 마지막 줄을 표시하고 그렇지 않으면 마지막 줄을 표시합니다.

이맥스의 행동은 근본적으로 더 합리적이지만 더 나쁘게는 전직에 익숙해졌습니다.

파일을 줄 바꿈으로 끝내야하지만 마지막 빈 줄의 표시를 억제하는 방법이 있습니까?

이맥스 개행 행동

스크린 샷은 세 개의 창을 보여줍니다 (너무 작은 경우 새 탭에서 이미지보기).

  1. 의 왼쪽에있는 큰 이맥스 창에서 hexl-mode파일 끝에 실제로 줄 바꿈이 있음을 보여줍니다 (0a, 커서가있는 위치).

  2. 비어있는 세 번째 줄에 커서가있는 오른쪽 상단의 이맥스 창.

  3. 마지막 텍스트 행에 커서가있는 오른쪽 하단의 Vim 창. 파일이 줄 바꿈으로 끝나더라도 커서가이 지점 아래로 이동할 수 없습니다 ( [noeol]vim 상태 표시 줄 에는 마커 가 없습니다 ).


줄 바꿈은 어떻게 표시됩니까? 일부 마이너 모드가 활성화 되었기 때문에 표시됩니까? 설정에서 마지막 개행을 표시하는 스 니펫을 넣는 것이 유용합니다. 이것의 스크린 샷도 유용합니다.
Kaushal Modi

2
"디스플레이"는 개행을 시각적으로 표현한다는 의미는 아닙니다. 단순히 커서를 해당 줄로 옮길 수 있음을 의미합니다.
sykora

재현 할 수 없음 : imgur.com/IAoV7p9 와 동일한 동작이며 emacs -Qinit 파일에있는 것이어야합니다.
T. Verron

아니면 기다리십시오 ... 회선이 존재하더라도 해당 회선으로 이동하고 싶지 않다는 것을 의미합니까? 나는 두 번째 @kaushalmodi, vim의 스크린 샷과 emacs 동작이 유용 할 것입니다.
T. Verron

3
@sykora 최소한의 스크린 샷 을 사용하십시오 . 이 많은 스크린 샷 과잉 및 중복 빈 공간은에 무슨 일이 일어나고 있는지보고 너무 작은 이후, 거의 쓸모 미리보기를 렌더링하는, 그것은 필요 이상 훨씬 더 큰 만드는. 스크린 샷을 찍을 때 내용물에 맞게 창 크기를 조정하십시오.
lunaryorn

답변:


1

이를 구현하기 위해 끔찍한 제안을 하겠습니다 .

(defun make-eof-intangible ()
  (interactive)
  (add-hook 'post-command-hook (lambda ()
                                 (when (and (equal (point) (point-max))
                                            (looking-back "\n"))
                                   (backward-char))) t t))

(전역 적으로 설정하면 일이 심각하게 엉망이 될 수 있으므로 로컬 후크를 사용하고 있으므로 버퍼별로 활성화하는 것이 좋습니다.)


1

이것들은 아마도 정확히 원하는 것이 아니지만 유용 할 수 있습니다.

  • linum-mode모든 버퍼에서 부 모드를 사용하고 (global-linum-mode t)있습니다 (init 파일에 설정 되어 있음). 끝에 줄 바꿈 문자가있는 줄의 줄 번호 만 표시합니다.

  • 당신이 좋아하는 또 다른 것은 enabled입니다 whitespace-mode. 기본적 $으로 빈 줄에 회색 기호가 표시되어 어떤 줄이 비어 있는지 볼 수 있습니다. 참조 여기 이맥스 위키 페이지를 .

  • 비슷한 방법으로 설정 indicate-empty-lines하는 t마지막 줄이 어디를 표시합니다 (참조 여기에 부가 지표에 대한 설명서를 ).

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