programing

ess-mode에서 emacs가 underbar를 <-로 바꾸는 것을 막는 방법

kingscode 2021. 1. 15. 08:26
반응형

ess-mode에서 emacs가 underbar를 <-로 바꾸는 것을 막는 방법


ess-mode"Emacs는 통계를 말합니다." 이 모드는 R 또는 Splus (두 개의 개별 통계 패키지) 용 프로그램을 편집하는 데 유용합니다.

내 버퍼에서 내가 입력 할 때 _마다 문자가로 대체되어 <-매우 실망 스럽습니다. 이 동작을 해제하는 emacs lisp 문이 있습니까?

emacs : 22.1.1 ess-mode 릴리스 (알 수 없음)


에서 ESS 설명서 ( "변경 / 새로운 5.2.0에서 기능"아래보기)

ESS [S] : 밑줄 ( "_")을 한 번 누르면 "<-"(이전과 같이)가 삽입됩니다. 밑줄을 두 번 누르면 리터럴 밑줄이 삽입됩니다. 이 스마트 한 동작을 중지하려면 ess-site가로드 된 후 .emacs에 "(ess-toggle-underscore nil)"을 추가하십시오.


기능이 유용하기 때문에. R에서 덜 사용하는 다른 키에 할당하면 자동으로 밑줄에서 할당이 해제됩니다. ";".emacs 파일에 다음 줄을 추가하여 개인적으로 할당 합니다.

(setq ess-smart-S-assign-key ";")

내 emacs 버전은 Vincent Goulet의 24.3 All-in-one 설치 파일입니다. (Windows 7에 설치됨)

도움이 되었기를 바랍니다

위의 emacs 25.2에서 편집 이 작동하지 않는 대신 .emacs 파일에 다음을 추가하십시오.

(setq ess-smart-S-assign-key ";")
(ess-toggle-S-assign nil)
(ess-toggle-S-assign nil)

에서 http://www.r-bloggers.com/a-small-customization-of-ess/ 하고 ( "<-"에 "_") 스마트 할당 키를 변경하는 방법 ESS에 바인딩

":"를 "<-"에 할당하고 밑줄 (밑줄) "_"을 "<-"에 할당하지 않으려면 .emacs에 다음을 입력합니다 (예, 반복되는 행이 정확함).

(setq ess-smart-S-assign-key ":")
(ess-toggle-S-assign nil)
(ess-toggle-S-assign nil)
(ess-toggle-underscore nil) ; leave underscore key alone!

나를 위해 작동하는 것 같고 훨씬 덜 장황한 최신 버전 (기본적으로 일반적인 밑줄을 유지하지만이 스마트 한 동작을 위해 자신의 키를 설정할 수 있습니다!) :

(global-set-key (kbd "C-;")  (lambda () (interactive) (insert " <- ")))
(ess-toggle-underscore nil)

대신 단축키 선택을 삽입하십시오 C-;.


Michał Marczyk 및 이 R 메일 링리스트 스레드가 제안한 것처럼 다음 행을 ~/.emacs다음에 추가하십시오 .

(ess-toggle-underscore nil)

그런 다음 그것을 다시로드 M-x load-file및 입력합니다 ~/.emacs.

그러나 파일을 다시로드하면 (예 : 다른 사용자 지정을 추가하는 경우) 원래 상태로 다시 전환됩니다. 따라서 두 번 토글하고 첫 번째는 기본값으로 강제합니다.

(ess-toggle-underscore t)
(ess-toggle-underscore nil)

즉, Drummermean의 솔루션이 더 좋지만 추가 ~/.emacs하고 두 번로드 하면 기본값으로 되돌아갑니다 . 따라서 먼저 토글을 기본값으로 강제하십시오.

(ess-toggle-underscore t)
(global-set-key (kbd "M--")  (lambda () (interactive) (insert " <- ")))
(ess-toggle-underscore nil)

나는 똑똑한 과제를 (Mac에서) Opt-[minus]좋아 하도록 묶었습니다 RStudio.


@mmorin 답변에 대한 후속 조치로. Rstudio에서와 동일한 방식으로 할당 연산자에 대한 키 바인딩을 설정하려면 .emacs파일에 다음을 추가 하십시오.

(ess-toggle-underscore t)
(ess-toggle-underscore nil)
(define-key ess-mode-map (kbd "M--") (lambda () (interactive) (just-one-space 1) (insert "<-") (just-one-space 1)))
(define-key inferior-ess-mode-map (kbd "M--") (lambda () (interactive) (just-one-space 1) (insert "<-") (just-one-space 1)))

참조 URL : https://stackoverflow.com/questions/2531372/how-to-stop-emacs-from-replacing-underbar-with-in-ess-mode

반응형