문제

HEXL 모드를 사용하여 텍스트 파일에서 특수 숯을 수동으로 제거하고 HEXL 모드에서 무엇이든 삭제하는 방법을 보지 않으려 고합니다.

내가 정말로 원하는 것은 캐리지 리턴을 제거하고 라인 피드 문자를 유지하는 것입니다. HEXL 모드가 올바른 방법입니까?

도움이 되었습니까?

해결책

이것에 대한 Hexl-Mode가 필요하지 않습니다. ^J ^m의 글로벌 검색 및 replace가 저를 위해 작동합니다. :) 그런 다음 파일을 저장하고 버퍼를 죽이고 파일을 다시 방문하여 창이 새 파일 모드 (Unix vs DOS)를 표시합니다.

다른 팁

교체를 찾을 필요가 없습니다. 그냥 사용하십시오.

M-x delete-trailing-whitespace

파일 인코딩을 설정할 수도 있습니다

C-x RET f unix

죄송합니다. 그 ^j ^m은 문자 그대로 두 문자로 입력해야합니다. 사용 c-q c-j, c-q c-m 교체 문자열의 경우 사용하십시오 c-q c-j.

명령 줄 도구도 있습니다 UNIX2DOS/DOS2UNIX 그것은 라인 엔딩을 변환하기 위해 구체적으로 존재합니다.

DOS 인코딩 된 파일이 UNIX 인코딩으로 변경되기를 원한다고 가정하면 MX Set-Buffer-File-Coding-System (CX Ret F)을 사용하여 코딩 시스템을 "UNIX"로 설정하고 파일을 저장하십시오.

캐리지 리턴을 제거하려면 (보통 ^M) 그리고 라인 피드를 떠나십시오. 전환이없는 파일 만 방문 할 수 있습니다.

M-x find-file-literally /path/to/file

캐리지 리턴이있는 파일은 일반적으로 DOS 모드로 표시되므로 (캐리지 리턴 숨기기). 모드 라인이 표시 될 수 있습니다 (DOS) 왼쪽에.

일단 당신이 그 일을 한 후에 ^M 나타나고 어떤 캐릭터처럼 삭제할 수 있습니다.

Hexl-Mode를 사용할 필요가 없습니다. 대신에:

  • 당신에게 그 ^m을 보여주는 방식으로 파일을 엽니 다. 위의 MX Find-File-Literally/Path/To/File을 참조하십시오. Xemacs에서는 Cu CX CF를 수행하고 이진 인코딩을 선택할 수도 있습니다.
  • 교체하려는 문자열을 선택하고 MW를 사용하여 복사하십시오.
  • m-% (쿼리 교체)를하고 cy를 사용하여 복사하려는 것을 붙여 넣습니다.
  • 대체품으로 프롬프트되면 입력하십시오
  • 가능한 언론! 이제 모든 발생을 대체합니다

요점은 교체하려는 것을 입력하는 방법을 사용하지 않더라도 언제든지 선택/복사 할 수 있다는 것입니다.

(HEXL 모드) 문자 삭제. 나는 항상 그것들을 공백이나 다른 캐릭터로 변환하여 일반 텍스트 편집기로 전환하여 삭제했습니다.

에서 http://www.xsteve.at/prg/emacs/xsteve-functions.el:

;02.02.2000
(defun xsteve-remove-control-M ()
  "Remove ^M at end of line in the whole buffer."
  (interactive)
  (save-match-data
    (save-excursion
      (let ((remove-count 0))
        (goto-char (point-min))
        (while (re-search-forward (concat (char-to-string 13) "$") (point-max) t)
          (setq remove-count (+ remove-count 1))
          (replace-match "" nil nil))
        (message (format "%d ^M removed from buffer." remove-count))))))

이것을 당신에게 추가하십시오 .emacs 그리고 그것을 통해 실행하십시오 M-x xsteve-remove-control-M 또는 더 쉬운 키에 바인딩하십시오. 그것은 그것을 제거 할 것이다 ^M모든 모드에서 s.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top