2010-10-18 16 views
11

Macintosh'tayım ve kabuğum için "terminal" kullanıyorum. Herhangi bir pencereden metin kopyaladığımda (farenin sağ tuşuyla farenin sağ düğmesiyle -> kopyala) ve sonra (sağ fare tuşu -> yapıştır) metnini emacs çalıştıran bir terminale yapıştırıyorum, macun gibi davranmaz. Bunun yerine, metin girmek veya yazmak gibidir. Metin girintili olduğunda sorun oluşur. Emacs, otomatik girintisini üst üste getiriyor, bu yüzden basamaklı bir merdiven benzeri bir görünüm elde ediyorum. Sadece gerçek bir "macun" olmasını istiyorum, böylece kopyalanan her şey tam olarak olduğu gibi ortaya çıkıyor. Bunu işe almak için bir şeyi nasıl değiştireceğinizle ilgili herhangi bir fikir var mı?Macintosh'taki emacs içine metin yapıştırma

(defun pt-pbpaste() 
    "Paste data from pasteboard." 
    (interactive) 
    (shell-command-on-region 
    (point) 
    (if mark-active (mark) (point)) 
    "pbpaste" nil t)) 

(defun pt-pbcopy() 
    "Copy region to pasteboard." 
    (interactive) 
    (print (mark)) 
    (when mark-active 
    (shell-command-on-region 
    (point) (mark) "pbcopy") 
    (kill-buffer "*Shell Command Output*"))) 

(global-set-key [?\C-x ?\C-y] 'pt-pbpaste) 
(global-set-key [?\C-x ?\M-w] 'pt-pbcopy) 

Kullanım C-x C-y yapıştırmak ve C-x M-w kopyalamak için:

+0

Bunu çalışmasını bekliyoruz emin değilim. Bir metin terminalinde "yapıştır" yoktur. Terminal.app, panodaki tüm karakterleri yazarak yapıştırma işlemini gerçekleştirir. Yapıştırmanın farklı çalışmasını istiyorsanız, bir metin terminalindeki programları çalıştırmayın. – Ken

cevap

18

bu deneyin.

+0

+ 1 Bu harika çalışacak, keşke böyle düşünürdüm;) – ocodo

+0

Doğru cevap olarak işaretlenmiş olmalı – bge0

2

Özel komutları yapılandırmayı gerektirmeyen hızlı ve kirli bir çözüm için, pbpaste numaralı çağrıyı geçerli arabelleğe eklemek için bir önek argümanıyla shell-command'u çalıştırabilirsiniz. Böylece

:

C-u M-! pbpaste <RET>