2014-02-21 2 views
0

을 표시하는 모드 라인에 문제가 있지만,
'(:eval (last-dir default-directory))

Error during redisplay: (eval (last-dir default-directory)) signaled (void-function last-dir) [594 times]
가 어떻게 제대로하십시오 작업을 얻을 수있는 메시지 버퍼에서 이것을 보여주고있다? 어떻게 파일 크기를 모드 라인에 넣을 수 있습니까?이맥스 내 모드 온라인으로 내가 이것을 사용하고

(setq-default mode-line-format 
(list 
    " " 
    mode-line-buffer-identification 
    " │ " 
    "dir: " 
    '(:eval (last-dir default-directory)) 
    " │ " 
    ;; '%02' to set to 2 chars at least; prevents flickering 
    "%04l" 
    "," 
    "%02c" 
    " │ " 
    '(:eval (format-time-string "%H:%M")) 
    " | " 
    '(:eval (if (buffer-modified-p) "M" "-")) 
    '(:eval (if buffer-read-only "R" "-")) 
    '(:eval (if (window-dedicated-p (selected-window)) "D" "-")) 
    " │ " 
    mode-line-modes 
    )) 

답변

0

실제로 last-dir은 정의되지 않았습니다. 그것은 디렉토리 이름의 마지막 구성 요소를 추출하기위한 것입니까? 그렇다면, 당신은 대신을 사용할 수

(:eval (file-name-nondirectory (directory-file-name default-directory))) 
당신은`버퍼-size` 기능으로 파일 크기를 추가 할 수 있습니다 (:eval (format "%d" (buffer-size)))

이 모드 라인의 버퍼 크기를 포함하기로 %I를 사용 Iqbal Ansari's answer에 설명되어 있습니다.

+0

고맙습니다. 각자 앞에 ('eval'을 붙이면 버퍼 크기는 4 자리수가됩니다. 어떻게 'kb'또는 'mb'로 표시 할 수 있습니까? 부디? – boudiccas

1

버퍼 크기 (KB 또는 MB 기준)를 표시하려면 모드 행 형식에 "% I"을 추가하십시오. 설명서에서

% i - 버퍼 크기를 인쇄하십시오.

% I - % i과 (와) 같이 k, M, G 등을 사용하여 약어를 지정하십시오.

그래서V채널을, 당신은

(setq mode-line-format '((:eval (file-name-nondirectory (directory-file-name default-directory))) ", file is of size %I")) 

난 당신이 모드 라인 형식의 문서를 읽을 것을 권장 할 수있는 디렉토리의 이름으로 모드 라인을 얻을 수 및 버퍼 사이즈하기 mode-line-formatRET은 모드 라인을 포맷하는 데 사용할 수있는 다양한 옵션을 설명합니다.