Emacs 구성: 단축키를 사용하여 코드 포맷하기

3318 단어 소프트웨어
  • 앞말
  • 준비
  • Astyle 소개
  • 원리
  • 코드 구현
  • 코드 해석
  • 주장

  • 전언


    모두가 알다시피,emacs는 매우 자유롭고, 많은 설정을 추가할 수 있다.
    프로그래머로서 자신의 코드를 엉망진창으로 축소시키려 하지 않을 것이다. 그러나 때때로 몇 개의tab을 두드리는 것은 매우 짜증스럽다. 그러면 Emacs를 설정해서 우리가 단축키로 코드를 자동으로 포맷할 수 있도록 할 수 있을까?
    물론

    준비 작업

  • Emacs, 버전 22.0 이상
  • Astyle 및 Emacs 호출을 위해 실행 가능한 파일이 들어 있는 디렉토리를 오류 변수에 추가했습니다
  • Astyle 소개


    Emacs 자체의 코드 축소 기능이 이상적이지 않기 때문에 우리는 제3자의 Astyle을 빌려 코드를 포맷한다.
    Astyle은 소스 오픈 프로그램입니다.astyle 를 사용하여 코드를 포맷할 수 있습니다.
    또한 Atyle에는 --style=, 구체적인 도움말 옵션 사용astyle -h 등 다양한 옵션이 있습니다.

    의 원리


    Lisp 함수를 사용하여 현재 편집 중인 파일의 이름을 가져옵니다.Astyle 포맷 코드를 호출합니다.

    코드 구현

    (let ((style "google"))
     (setq format-command (format "astyle --style=%s" style)))
    
    (global-auto-revert-mode t)
    
    (defun format-code ()
     "Format current buffer"
     (interactive)
     (let ((file (buffer-file-name)))
      (save-excursion
        (shell-command-to-string (format "%s %s" format-command file))
        (message "Code formatted"))))
    
    (global-set-key "\C-f" 'format-code)
    
     (provide 'init-astyle)

    코드 해석

    format-command에는 Astyle 옵션이 포함됩니다.(global-auto-revert-mode t) 모드는 Emacs로 하여금 디스크 파일이 바뀐 후에 캐시 영역을 자동으로 업데이트하게 할 수 있다. 그렇지 않으면 수정할 것인지 물어볼 수도 있어 비교적 번거롭다.format-code는 포맷 함수입니다. (interactive) 옵션은 함수를 버튼에 연결시키기 위해 (buffer-file-name) 현재 캐시에서 편집한 파일의 파일 이름을 되돌려주고 shell-command-to-string 함수는 셸 명령을 실행할 수 있습니다.(global-set-key) 바인딩 키에 사용됩니다.

    성명


    인용 전재에 반대하지 않지만 출처를 밝혀 주십시오.코드는 자신의emacs 설정으로 복사할 수 있습니다.

    좋은 웹페이지 즐겨찾기