В Emacs, как вставить имя файла в команду оболочки?

18
задан Community 23 May 2017 в 11:47
поделиться

3 ответа

(define-key minibuffer-local-map
  [f3] (lambda () (interactive) (insert (buffer-name))))

Редактирование:

, Как указано в разделе комментария и в другом месте, вышеупомянутый фрагмент кода не работает. (Извините, я должен был протестировать его перед регистрацией.:) Были отправлены некоторые меры; вот другой:

(define-key minibuffer-local-map [f3]
  (lambda () (interactive) 
     (insert (buffer-name (window-buffer (minibuffer-selected-window))))))

Относительно завершения имени файла при издании shell-command, возможно, этот клудж работал бы (это работает на меня на Emacs 23.0.60):

(require 'shell)
(define-key minibuffer-local-map (kbd "C-i") 'comint-dynamic-complete)
10
ответ дан 30 November 2019 в 09:03
поделиться

Вот то, как зафиксировать решение huaiyuan:

(define-key minibuffer-local-map [f3]
  (lambda() (interactive) (insert (buffer-file-name (nth 1 (buffer-list))))))

, вероятно, необходимо добавить своего рода проверку ошибок в случае, если "другой" буфер не имеет никакого набора имени файла и (буферного имени файла) ноль возвратов.

7
ответ дан 30 November 2019 в 09:03
поделиться

Я подчинюсь huaiyuan о точно, что Вы спросили, но Вы могли также проверить Пропускающий текст посредством команды оболочки в Emacs как возможный альтернативный подход.

2
ответ дан 30 November 2019 в 09:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: