2013-02-21 4 views
4

나는 Emacs에서 ansi-term을 사용하며 거기에 몇 마디를 붙여 넣어야합니다. '붙여 넣기'는 마우스 중간 버튼에서만 작동합니다. C-x C-jC-c C-k을 사용하면 char runline run 사이를 전환 할 수 있지만 불편합니다. 나는 C-y 또는 C-c y을 사용하여 작업하는 것을 선호합니다. 온라인에서 검색했지만 해결책은 내 emacs에서 작동하지 않았습니다 .23.Emacs의 ansi-term에 단어 붙여 넣기

+0

내 의견을 한 다음에 않습니다. – snowgoose

+0

이 솔루션은 나를 위해 작동 발견 : [링크 : 다중 용어 붙여 넣기] (http://stackoverflow.com/questions/8729462/in-emacs-how-can-i-paste-into-multi-term) – snowgoose

답변

2

여기에는 두 가지 옵션이 있습니다. 하위 프로세스 또는 Emacs를 사용하십시오.

하위 프로세스 (아마도 readline을 사용하는 무언가)를 사용하려면 raw C-y 문자 만 보내면됩니다.

(define-key term-raw-map (kbd "C-k") 'term-send-raw) 
(define-key term-raw-map (kbd "C-y") 'term-send-raw) 

이어서 C-kC-y은 그들이 다른 단말에서와 같이 함수 단말기로 직접 전송 취득 (예를 들어, 각각의 라인과 십중팔구 단부 죽). 열등한 프로세스가 keypresses를 받고 해석하기 때문에, Emacs는 kill과 yanks와 아무런 관련이 없습니다.

Emacs의 kill ring을 사용하려면 term-paste을 사용하십시오.

(define-key term-raw-map (kbd "C-c C-y") 'term-paste) 

는 개인적으로, 나는 일반 단말기와 같은 term-mode 버퍼를 치료하기 위해 좋아, 내가 명령 줄을 편집하고있을 때 나는 보통/붙여 넣기 및 C-k/C-y을 복사하려면 마우스를 사용합니다.

FWIW, 내가 multiterm를 사용하고, 나는

(with-eval-after-load "multi-term" 
    (dolist 
    (bind '(("C-k"   . term-send-raw) 
      ("C-y"   . term-send-raw) 
      ("C-c C-y"  . term-paste) 
      )) 
    (add-to-list 'term-bind-key-alist bind))) 
+0

두 가지 문제가 있습니다 :'term-mode-map'은'term-raw-map'이어야하고'term-send-raw'는'term-paste'이어야합니다. 그렇다면'C-y' (그리고 OS X에 있다면's-v') 바인딩은 예상대로 작동 할 것입니다. – Andy

+0

다이빙하지 않고지도에 대해 옳은 것처럼 보입니다. 바인딩에 관해서는, 당신이 원하는 것에 달려 있다고 생각합니다. 나는 대답을 업데이트 할 것이다. – jpkotta