모든 창을위한 단일 모드 라인


9

모든 창에 대해 하나의 모드 줄 ( "상태 표시 줄"이라고도 함) 만 가질 수 있습니까?

이 단일 모드 행에 현재 선택된 버퍼에 대한 정보를 표시하고 싶습니다.


2
아마도 당신은 첨부 된 스레드에서 개념을 빌려서 모든 프레임의 맨 아래에 전용 모드를 보여주는 전용 창을 만들 수 있습니까? emacs.stackexchange.com/questions/7697/…
lawlist

확실히 당신은 프레임이 아닌 창문을 의미합니까?
abo-abo

잘 잡았습니다. 네, 창문을 의미합니다.
rgtk

답변:


8

단일 모델에 대한 솔루션이 없지만 다음 두 가지 가능한 대안 솔루션이 있습니다.

1. 활성 창에서만 모드 라인을 렌더링하십시오.

전력선을 사용하는 경우 모드 라인 형식을 다음과 같이 묶을 수 있습니다.

((:eval (when (powerline-selected-window-active) ...)))

그런 다음 mode-line-inactive얼굴 을 변경 하여 배경과 혼합하지만 여전히 다음과 같이 버퍼를 분리합니다.

(set-face-attribute 'mode-line-inactive nil
                    :underline t
                    :background (face-background 'default))

이것은 다음과 같습니다

여기에 이미지 설명을 입력하십시오

2. 사용 frame-title-format

귀하의 frame-title-formatGUI가 실행 할 때 프레임의 상단에 표시되는 결정합니다.

frame-title-format' like you would your모드 라인 형식을 설정하고 모드 라인 형식을 공백으로 설정합니다.


4

나는 마침내 이맥을 해킹하여 이것을 달성했다. 데모

https://github.com/amosbird/emacs/tree/onemodeline 에서 소스 코드를 얻을 수 있습니다 . 기본적으로 미니 윈도우의 헤더 라인을 사용하여 현재 버퍼의 모델을 렌더링합니다.


여전히 emacs 26.1에서 작동 / 작동합니까?
rien333

그렇습니다. 그러나이 방법은 실제로 매우 취약합니다. 미니 윈도우가 한 줄이되도록 하드 코딩 된 로직이 여전히 있습니다. 그러나 나는 그들을 모두 찾을 수 없었다.
Amos
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.