2011-07-27 5 views
4

의 내가 파일에이 텍스트 있다고 가정 해 봅시다 : 예를 들어, 내가 C-SPC를 사용하여 /home 텍스트를 선택하면패스 텍스트

, 전송하는 방법은
/home is where the heart is. 

이를 그것은 ls에, 그래서 결국 실행하면 ls /home? 이 작동하지 않습니다.

+1

+1 "이맥스에서 모든 것을 할 수 있습니다"태도! :-) –

+0

'M- |'는 현재 영역을 명령으로 파이프하는'shell-command-on-region'입니다. 그것은 작동하지 않습니다. Victor의 솔루션이 문제를 해결해야합니다. –

답변

5

필자가 아는 한, 이맥스에서 직접 할 방법이 없다.

(defun region-as-argument-to-command (cmd) 
    (interactive "sCommand: ") 
    (shell-command 
    (format 
    "%s %s" 
    cmd 
    (shell-quote-argument 
    (buffer-substring (region-beginning) 
         (region-end)))))) 
+0

또한'shell-quote-argument'를'format'의 두 번째와 세 번째 인수에 적용하고 싶다면 지역 텍스트에'; rm -rf /'가 포함되어있을 때 절대로이 함수를 호출하지 않도록주의하십시오. – Sean

+0

@Sean 좋은 지적. –

3

빅터의 대답은 당신이 묻는 질문에 대한 좋은 일이지만, 특정 경우에 당신은 M-x ffap을 (찾을-파일에서 포인트)를 사용하는 것이 좋습니다 :하지만 everyting는 elisp의 도움으로 가능합니다. 그러면 /home 디렉토리에 대해 dired 버퍼가 제공됩니다.

5

시도 M- |xargs ls. 즉, 선택된 영역에서 쉘 명령으로 "xargs ls"을 전달하십시오.

xargs을 참조하십시오.