emacs에 대한 eshell 프롬프트 기능을 사용자 정의 할 때 기능 상실


1

많은 화면 공간을 차지하기 때문에 명령 줄에서와 같이 eshell 프롬프트에서 현재 작업 디렉토리를 억제하고 싶었습니다. C-h vi를 사용 하여 기본값이 다음인지 확인하십시오.

Value:
(lambda nil
  (concat
   (eshell/pwd)
   (if
       (=
        (user-uid)
        0)
       " # " " $ ")))

그리고 내에서 이것을 이것으로 변경하려고했습니다 .emacs.

(setq eshell-prompt-function
      (lambda () "> "))

그러나 위의 작업을 수행하면 특정 키가 손상됩니다. 예를 들어, 더 이상 M-p이전 명령을 탐색하는 데 사용할 수 없으며 C-c C-a기본 프롬프트에서와 같이 입력하는 명령의 시작을 가리 키지 않습니다. 왜 이런 일이 일어나고 있으며 그 주위에 방법이 있는지 궁금합니다.

감사

답변:


1

eshell-bol은 eshell-skip-prompt 기능을 사용하여 프롬프트를 무시합니다. 프롬프트 대신 $ 대신>로 끝나도록 변경 했으므로 eshell-prompt-regexp의 값을 변경해야합니다. ^>작동하도록 변경 해야합니다.

eshell-prompt-regexp is a variable defined in `em-prompt.el'.
Its value is "^[^#$
]* [#$] "

Documentation:
A regexp which fully matches your eshell prompt.
This setting is important, since it affects how eshell will interpret
the lines that are passed to it.
If this variable is changed, all Eshell buffers must be exited and
re-entered for it to take effect.

You can customize this variable.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.