Emacs의 모드 라인 강화

요 전날 Emacs의 검색 기능 강화에 대해 "Emacs 보완 및 검색을 초강화"에서 썼습니다.
다음은 Emacs의 시인성을 강화해 나가고 싶습니다.

우선은 Mode Line편입니다! (그 중 Buffer편도 쓰고 싶습니다)

기본 설정



우선 smart-mode-line 를 도입합니다!smart-mode-line 는, 특히 Mode Line용으로 여러가지 lisp를 쓰지 않아도 좋은 느낌에 Mode Line을 보기 쉽게 & 사용하기 쉽게 해 주는 package입니다!
(defvar sml/no-confirm-load-theme t)
(defvar sml/theme 'dark) ;; お好みで
(defvar sml/shorten-directory -1) ;; directory pathはフルで表示されたいので
(sml/setup)

Emacs에서 package를 계속 추가하면, 발동하고 있는 Minor Mode가 많아져 버려, Mode Line이 더러워져 버립니다
그래서 diminish 로 Minor Mode명이 표시되고 있는 부분을 보기 쉽게 합니다
(require 'diminish)
(eval-after-load "company" '(diminish 'company-mode) "Comp") ;; 自分でMinor Mode名を定義
(eval-after-load "ivy" '(diminish 'ivy-mode)) ;; 非表示設定(この例だとivyがMinor Mode欄から消える)

또한 다음은 아마 필수 설정입니다.
(column-number-mode t) ;; 列番号の表示
(line-number-mode t) ;; 行番号の表示

여기까지 이런 느낌의 외형이 될 것 같아요



총 행 수 표시



current buffer의 총 행 수를 표시합니다.
어쨌든 있으면 편리합니다!
(require 'total-lines)
(global-total-lines-mode t)
(defun my-set-line-numbers ()
  (setq-default mode-line-front-space
        (append mode-line-front-space
            '((:eval (format " (%d)" (- total-lines 1))))))) ;; 「" (%d)"」の部分はお好みで
(add-hook 'after-init-hook 'my-set-line-numbers)



Mode Line을 빛나게 한다



조금 재미있는 개조
Emacs가 벨소리를 내는 설정은 끊고 있다고 생각합니다만, 이번은 그 부분을 조금 바꿉니다.
아래의 설정에서 Emacs가 bell 소리를 내는 대신 Modeline을 보라색으로 일순간 빛나게합니다!
( "mode-line-bell""Emacs Wiki" 참조)
;; エラー音を鳴らなくする(多分みんなやってる)
(setq ring-bell-function 'ignore)

;; mode line を flash!!
(setq ring-bell-function
      (lambda ()
        (let ((orig-fg (face-background 'mode-line)))
          (set-face-background 'mode-line "purple4")
          (run-with-idle-timer 0.1 nil
                               (lambda (fg) (set-face-background 'mode-line fg))
                               orig-fg))))

또, 이하를 추기하면 save 성공시에 녹색으로 빛납니다!
제대로 save 할 수 있었는지 확실히 봐 알게 되므로 추천입니다!
;; save時にmode line を光らせる
(add-hook 'after-save-hook
      (lambda ()
        (let ((orig-fg (face-background 'mode-line)))
          (set-face-background 'mode-line "dark green")
          (run-with-idle-timer 0.1 nil
                   (lambda (fg) (set-face-background 'mode-line fg))
                   orig-fg))))



Stopwatch 보기



한 가지 더 재미있는 기능을 추가합시다.
여러분 「자신이 어느 정도 시간 작업하고 있었는지」라든가 「그리고 얼마나 집중해서 작업해야 할까」라고 생각하고 있으십니까?
그럴 때 축일 시계를 보거나 작업 시간을 메모하는 것은 귀찮습니다만, 이 기능을 사용하면 그 근처의 효율 개선을 할 수 있습니다! (cf. Emacs에서 포모도로 기술 )

github 에 있는 졸작 stopwatch.el(제작에 있어서 @syohex 씨의 mode-line-timer.el 를 참고로 했습니다)
이것을 사용하면 아래와 같이 Mode Line 최좌단에 증분 타이머가 표시됩니다!



또한 MacOS 용이지만 설정 한 시간에 Notification이 날 수 있습니다.



사용법은
1. ~/.emacs.d/stopwatch/stopwatch.el 를 copy
2. init.el 에 다음의 코드를 기술
3. Emacs에서 M-x stopwatch-start4. Notification을 날리고 싶은 분은 M-x stopwatch-notification-time 로 설정!
5. pause와 stop도 마찬가지로 M-x stopwatch-pause , M-x stopwatch-stop
;; init.elに記述
(add-to-list 'load-path "~/.emacs.d/stopwatch")
(require 'stopwatch)

결론



여러분의 Mode Line 설정도 꼭 가르쳐 주세요!
그럼 또!

좋은 웹페이지 즐겨찾기