Вставьте слово в ANSI-термин на Emacs
Я использую ANSI-термин в Emacs и мне нужно вставить туда несколько слов. "Вставить" работает только с средней кнопкой мыши. Я знаю что с C-x C-j
а также C-c C-k
мы можем переключаться между char run
а также line run
, но это неудобно. Я предпочитаю использовать C-y
или же C-c y
сделать работу. Поиск в Интернете, но решения не работали с моим emacs23.
1 ответ
Здесь есть два варианта: использовать подчиненный процесс или 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-k
а также C-y
получать их напрямую в терминал, где они функционируют так же, как и в любом другом терминале (например, kill to end of line и yank соответственно). Поскольку подчиненный процесс получает и интерпретирует нажатия клавиш, Emacs не будет иметь ничего общего с убийствами и ударами.
Чтобы использовать Emacs's kill ring, используйте term-paste
,
(define-key term-raw-map (kbd "C-c C-y") 'term-paste)
Лично я люблю лечить term-mode
буферы, как обычные терминалы, поэтому я обычно использую мышь для копирования / вставки и C-k
/C-y
когда я редактирую командную строку.
FWIW, я использую мультитерм, и я делаю
(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)))