2013-04-07 4 views
5

전체 버퍼를 표시하는 것과 동일한 기능을 설정하고 명령을 묻는 메시지를 표시하고 버퍼를 명령으로 파이프하고 출력으로 버퍼를 바꾸려면 C-u M-|을 실행하고 싶습니다. 그런 다음 shift-f5로 설정하십시오.버퍼에서 이맥스 셸 명령

(defun shell-command-on-buffer() 
    (interactive) 
    (mark-whole-buffer)) 

가 어떻게 나머지 작업을 수행 할 수 있습니다

는 난 단지까지이 같은있어?

답변

5

이 나를 위해 작동합니다

(defun shell-command-on-buffer (command) 
    (interactive "sShell command on buffer: ") 
    (shell-command-on-region (point-min) (point-max) command t)) 
+0

감사합니다. 이것은 나를 위해 새로운 버퍼를 열어 - 이상적으로 현재 버퍼를 대체하고 싶습니다. C-u M- | 않습니다. – teppic

+0

아, 죄송합니다. 제 초기 제안은 '쉘 - 명령 - 지역'과 동일한 C-u 행동을합니다. 귀하의 요청에 더 잘 답변하도록 편집 됨 – brontitall

+0

행운을 빕니다. 두려워요. 명령을 묻지 만 틀린 수의 오류를 제공합니다. – teppic

4

이 하나가 아닌 일반 미니 버퍼 역사의 '쉘 명령 "미니 버퍼 기록을 사용하는 장점이있다.

(defun shell-command-on-buffer() 
    (interactive) 
    (shell-command-on-region (point-min) (point-max) (read-shell-command "Shell command on buffer: ") t)) 
+1

read-shell-command는 버전 23.1에서 GNU Emacs에 대한 소개였습니다. 이전 버전과의 호환성이 필요하다면 이것을 사용하지 않거나 read-shell-command가 있는지 확인하기 전에 코드를 호출해야합니다. –