[개인 메모] 이맥스 환경 개선

5602 단어 Emacs
요즘 Emacs의 환경을 크게 바꿨기 때문에, 전단지의 뒷면으로 적어 둔다.

GUI Emacs로



지금까지 tmux에서 Emacs를 시작했지만 터미널의 Emacs에는 몇 가지 제약이있었습니다.
  • 사용할 수 없는 키 바인딩이 있음
  • 레이아웃이 자주 무너진다

  • 카와 Emacs 수 없습니다

  • 특히 레이아웃 무너지는 심각하고 magit의 커밋 트리가 일정한 조건에서 엉망이 되어 버리는 등 매우 스트레스 풀이었던 곳에 카와 Emacs

    패키지 관리를 el-get에서 straight.el+use-package로



    el-get에 대해서는 이전 기사도 쓰기 마음에 들고 사용하고 있었지만, 패키지의 인스톨과 설정이 다른 등 세세한 점에서는 불만이 있었다.

    straight.eluse-package 을 맞추어 사용하는 것으로 패키지의 인스톨로부터 설정까지 1개의 S식으로 완결한다고 하는 환경이 손에 들었다.
    물론 el-get을 채용했을 때 조건이었고,
  • 패키지 목록을 열거하면
  • 패키지가 없으면 자동으로 다운로드하여 설치합니다
  • 이미 설치된 경우 아무 작업도 수행하지 않음

  • 는 그대로이다.

    또한 el-get의 무렵부터 현안이었던 패키지에의 패치 맞추기에 대한 불만도 el-patch를 도입할 수 있어 깨끗하게 해결할 수 있었다.
    [Emacs] el-patch로 패키지에 패치하기

    init-loader로 부활합니다. el을 재구성



    init-loader의 구성도 개선되었다.

    기존에는 패키지를 여러 그룹으로 나누어 설정의 .el을 .emacs.d/init에 두고 거기에서 필요에 따라 .emacs.d/init-loader에 심볼릭 링크를 붙이고 그 심볼릭 링크를 init -loader로 읽는 것을 하고 있었다.

    그러나 그룹 나누기가 귀찮아지고 other.el이 비대화 해 갈거야, 심볼릭 링크 아무것도 의미 없어, 그리고 어떻게 할까라고 생각하고 있는 곳에서,

    init-loader가 필요합니까? 정말?

    이 기사를 읽고 한때는 init-loader 폐지하려고 생각했지만, 최종적으로 읽는 .el의 수를 대폭 줄임으로써 침착했다. (심볼릭 링크는 물론 폐지)
    원래 10 이상 있던 파일은 주로 이하의 4개가 되었다.
  • Emacs 표준 기능 설정
  • use-package 군
  • 자작 함수
  • OS 별 설정

  • 이 구성이라면 어떤 파일에 무엇이 쓰여 있는지 헤매는 것은 아니고, 반대로 있는 설정을 어디에 써야 할지 헤매는 것도 거의 없다. 패키지 목록을 보는 것도 간단하다.

    번외편: Conky에서 시간 표시



    Conky 자체는 Emacs와 아무것도 관계없는 것으로, 데스크탑상에 ​​시각이나 시스템 정보를 표시하는 앱이다.

    왜 여기에 소개하는가,
  • Emacs를 전체 화면 (F11)에서 사용하고 싶습니다
  • 전체 화면이라면 Gnome의 패널이 보이지 않아 시간을 모른다
  • 모드 라인의 시간은 확실히 오지 않는다

  • 그래서 Emacs의 윈도우를 투과시켜 Conky의 시각을 표시하게 했다.
    테마는 Conky-Vision . 이런 느낌



    투과 처리는 이하와 같다.

    $HOME/.emacs.d/init-loader/99-utils.el
    ;; transparency
    (defun toggle-transparency ()
      (interactive)
      (let ((alpha (frame-parameter nil 'alpha)))
        (set-frame-parameter
         nil 'alpha
         (if (eql (cond ((numberp alpha) alpha)
                        ((numberp (cdr alpha)) (cdr alpha))
                        ;; Also handle undocumented (<active> <inactive>) form.
                        ((numberp (cadr alpha)) (cadr alpha)))
                  100)
             '(100 . 100) '(90 . 90)))))
    (global-set-key (kbd "C-c C-t") 'toggle-transparency)
    (toggle-transparency)
    

    좋은 웹페이지 즐겨찾기