Con "in a terminal" presumo che tu intenda che stai utilizzando l'emulatore di terminale integrato di Emacs. Normalmente, l'emulatore di terminale trasmette la maggior parte delle chiavi esattamente come digitate nel processo shell. Digitare C-c C-j nel buffer del terminale per metterlo in uno stato in cui sono disponibili i normali binding di chiavi Emacs. Vedrai il cambio di riga della modalità da (Term: char run)
a (Term: line run)
.
Addendum:
testo Yanking senza uscire dalla modalità char è un po 'difficile; la funzione rilevante, tuttavia, è term-paste
(non yank
, che semplicemente inserisce il testo nel buffer del terminale senza inviarlo al processo inferiore). term-paste
invierà immediatamente il kill più recente al processo inferiore, ma non fornisce la fantasiosa funzionalità di yank a cui probabilmente sei abituato (come M-y per passare in rassegna le uccisioni precedenti). È possibile eseguire term-paste
come comando esteso: C-c M-x term-paste RET.
Probabilmente la soluzione più semplice è solo per andare temporaneamente in modalità di linea (C-c C-j) quando si ha qualcosa da incollare, e poi subito tornare in modalità char (C-c C-k). O ancora più semplice, resta sempre in modalità linea. Lo faccio spesso quando ho un terminale connesso a una sessione Oracle SQL * Plus. Raramente noto la differenza, ma ottengo ogni tipo di funzionalità di Emacs, come la possibilità di digitare M-p per scorrere una lunga istruzione SQL precedentemente digitata.
avrei assunto che si può sempre iniziare in modalità riga come questa:
(add-hook 'term-mode-hook 'term-line-mode)
... ma non funziona per me. Non so perché.
C'è un modo per far sì che l'emulatore di terminale accetti gli yanks senza che l'intero buffer sia modificabile? O c'è un modo per configurare l'emulatore di terminale per iniziare sempre con 'line run'. – hekevintran
Grazie per C-c C-j. Emacs è fantastico! – Raj