2015-04-22 1 views

Répondre

1

L'aide pour cette commande indique que la sortie est envoyée à un tampon nommé *Shell Command Output*, en supposant que la commande n'a pas &. Si tel est le cas, ce morceau de code fera ce que vous voulez:

(defun do-shell-and-copy-to-kill-ring (command &optional arg file-list) 
    (interactive 
    (let ((files (dired-get-marked-files t current-prefix-arg))) 
    (list 
     (dired-read-shell-command "! on %s: " current-prefix-arg files) 
     current-prefix-arg 
     files))) 
    (dired-do-shell-command command arg file-list) 
    (with-current-buffer "*Shell Command Output*" 
    (copy-region-as-kill (point-min) (point-max)))) 

Pour les commandes async, vous devez attendre pour eux et regarder dans *Async Shell Command* tampon.

+0

Merci! J'ai utilisé ceci pour câbler votre solution dans ma configuration: (defun my-dired-mode-keys() "Modifier les keymaps utilisées par' dired-mode '. " (local-set-key (kbd" Cc d ")' do-shell-and-copy-to-kill-ring)) (ajout de hook 'dired-mode-hook' my-dired-mode-keys) – user1011471