Emacs(버전 24.1, 차이가 있다면)를 사용할 때, 마이너 모드에 의해 삽입된 자동 줄 바꿈을 모두 제거할 수 있는 방법이 있었으면 좋겠습니다 auto-fill
.
비활성화하면 auto-fill-mode
새 래퍼 삽입을 방지할 수 있지만 기존 래퍼를 억제하는 데는 아무런 영향도 미치지 않습니다.
내가 원하는 것을 할 수 있는 방법을 찾았지만 이것이 최선의 방법인지 궁금합니다. 여기에 설명하겠습니다. 내 문제를 더 잘 설명하는 데 도움이 되기를 바랍니다.
C-u 1000 C-x f
current-fill-column
: 임의로 큰 값으로 설정됩니다 .C-x h
: 버퍼의 모든 텍스트를 선택합니다.M-q
: 새 값에 따라current-fill-column
줄 바꿈을 다시 정렬합니다 . 값이 충분히 크면 내가 찾고 있는 동작이 시뮬레이션됩니다.M-x auto-fill-mode
: 자동 완성 모드를 비활성화합니다.
이것이 좋은 방법인지 아니면 더 좋은 방법이 있는지 알고 싶습니다.
답변1
다음을 검색하고 바꿀 수 있습니다.
M-%
(Prompt: Query replace: ) C-q C-j Enter
(Prompt: Query replace with: )Enter
Emacs는 이제 각 개행 문자를 아무것도 없는 것으로 대체하기 시작합니다. 모두 삭제하려면 을 누르세요 !
. 각 삭제를 확인하려면 y
필요에 따라 또는 키를 계속 누르세요.n
답변2
자동 완성을 통해 삽입된 줄 바꿈은 다른 방법(입력, 복사하여 붙여넣기, 검색 및 바꾸기 등)을 통해 삽입된 줄 바꿈과 다르지 않습니다. 설명에 따르면 원하는 것은 단일 줄 바꿈을 공백으로 바꾸고 여러 개의 연속 줄 바꿈을 그대로 두는 것입니다. 정규식 대체를 통해 이 작업을 수행할 수 있지만 수행한 것보다 훨씬 간단하지는 않습니다. M-x replace-regexp
(또는 M-%
)를 호출 \(.\)^J\(.\)
하여 \1 \2
( ^J
여기서 를 입력하여 삽입하는 리터럴 개행 문자는 어디에 있습니까 C-q C-j
? 행에 단일 문자가 포함되어 있으면 일부 개행 문자가 누락될 수 있으므로 명령을 다시 실행하여 바꾸십시오.