Questions tagged [shell-command]

is for executing shell commands from Emacs (the default key binding is `M-!`). Shell output is shown in the echo area if it fits, in buffer `*Shell Command Output*` otherwise. Emacs comes with many supporting facilities for executing shell commands, including interactive execution, selective execution on a region, history cycling, directory tracking, connecting to serial ports, emulator options, and specifying remote hosts.

Filter by
Sorted by
Tagged with
14
votes
2answers
25k views

“cannot set terminal process group” error when running bash script

I have the following two lines of code in my init.el file: (setq shell-file-name "bash") (setq shell-command-switch "-ic") I tried executing the following script to get a list of executables using ...
13
votes
3answers
3k views

Persistent shell-command history

When I run shell-command in a new session I do not have access to the history of commands from the last session. How can I have that?
13
votes
1answer
3k views

Execute external script upon save when in a certain mode?

When I'm in org-mode, I want Emacs to execute a bash script I wrote whenever I hit C-x s to save. The script automatically syncs the file I am saving to my Raspberry Pi. It expects the file name as ...
9
votes
2answers
212 views

How to run a previous unique command in an Emacs shell (without repeats)?

In Emacs shell, is there a command similar to M-p but which would skip repeated commands? That is, it would go to the next different command. Similar to regular Linux terminal. So if I were to run: ...
9
votes
2answers
994 views

Run ssh-add from Emacs and enter a passphrase

I want to call the ssh-add shell command. So I invoke M-x shell-command RET, and in the minibuffer, I type: ssh-add .ssh/id_rsa The only thing I get is: ssh_askpass: exec(/usr/bin/ssh-askpass): No ...
8
votes
2answers
858 views

Applying a timeout on call-process/shell-command?

In some cases, when delegating work to an external process, it's useful to set a timeout on the command to prevent Emacs from hanging indefinitely. Unfortunately, the following does not work. (with-...
8
votes
2answers
585 views

xclip hangs shell-command

I like to use the xclip utility to capture the output of commands on the clipboard. However, when I try to use it with shell-command it seems to hang. In a "normal" shell I can run a command such as ...
7
votes
4answers
4k views

Get output of external command in the buffer

How do I get the output of (shell-command "df") (or some other more complex command, that I don't want to retype often) in the current buffer? I run it by typing C-c p after it, but then it opens ...
7
votes
1answer
549 views

How can I add default shell commands for various file types?

When I use ! on a *.tar.bz2 file in Dired, I'm presented with the following prompt: ! on WANem_3.0_Beta2.tar.bz2: {3 guesses} [bunzip2 -c * | tar xvf -] -!- How can I add similar functionality for ...
6
votes
1answer
2k views

Why Emacs overrides my PATH when it runs bash?

Why do (shell-command-to-string "echo $PATH") and echo $PATH in eshell differ from echo $PATH from ansi-term and gnome terminal in Ubuntu? Some paths are missing from (shell-command-to-string "echo $...
6
votes
1answer
888 views

Key binding with an argument

Say I have a shell command foo that I want to bind to a key. I could do for example: (global-set-key (kbd "C-c f") (lambda () (interactive) (shell-command "foo"))) I would like to be able to pass an ...
5
votes
1answer
7k views

How do i change the default shell for shell-command

I am having an issue with one of the plugins i am running because its trying to use fish and does not like the parameters. Is there a way i can change emacs to use bash for any plugins that use shell-...
5
votes
2answers
90 views

How to pipe large files through fold before opening?

On a regular basis I need to open files that have really long lines, which unfortunately causes emacs to grind to a halt. My understanding is that this is a long-term issue with the renderer. I've ...
5
votes
1answer
250 views

Output to magit-process

When I run built-in magit commands, they output to the magit-process buffer. How can I do the same with a custom magit command that generates shell output?
5
votes
1answer
121 views

Send content of region or current line to a tmp file, then execute shell script with filename as argument

I am transitioning to Emacs with evil-mode after years of Vim. For work reasons I have to use a GUI statistics program (Stata) frequently. This program does not integrate well with external editors. ...
5
votes
1answer
1k views

Run elisp when `async-shell-command` is done

I want to run some Elisp when my command executed by async-shell-command terminates. How can I do this? Does it have completion hooks?
5
votes
1answer
1k views

Executing commands through shell-command (what is the PATH used)?

If I do: (getenv "PATH") I get a list of colon-separated directories, including: /Users/michaeln/Library/Haskell/bin If I look at the exec-path variable, I see a list including the same ...
5
votes
1answer
733 views

Differences between cmdproxy.exe and cmd.exe

What is the difference between: (call-process "cmdproxy" nil "foo" nil "/c" "dir") (call-process "cmd" nil "foo" nil "/c" "dir") ? I seem to get exactly the same results in Emacs 25.1 on ...
5
votes
1answer
249 views

Asynchronous version of shell-command-on-region?

I have a problem which is very similar to this one. I have some text that I'd like to listen to with macOS's say utility. Unfortunately, Emacs locks up when I use shell-command-on-region because it is ...
5
votes
1answer
537 views

Send input to multiple buffers simultaneously

Is there something like multiple-cursors, but that would send input into multiple buffers at once? Use case: I want to send the same shell commands to a number of virtual machines and see the output ...
4
votes
2answers
1k views

Why is there a newline in the result of `shell-command-to-string`?

It seems that emacs appends a newline to the return value for shell-command-to-string. For example, the return value for (shell-command-to-string "pwd") is: "/path/to/directory " While the return ...
4
votes
1answer
330 views

How to mix eshell and elisp code

If I'm in eshell I can run elisp commands cause I'm in an elisp runtime (mapcar (lambda (x) (* x 3)) (list 1 2 3)) (3 6 9) I can also run "shell" commands such as git status. But what if I wanted to ...
4
votes
1answer
219 views

How to make “shell-command-on-region” display output as a message on a non-zero exit code?

I'd like to replace my selection with the output of a program, an annoyance is - when there is an error, the error replaces my text. Is there a way to check the exit code and only replace the text if ...
4
votes
1answer
1k views

Can't run Python shell in Emacs 24.4 due to a space in the path

When I try to start a Python shell in Emacs 24.4.1 running on Windows, I get an error "invalid argument" when Emacs tries to spawn the process. This is occurring because Python is installed under c:\...
4
votes
1answer
211 views

Refresh `async-shell-command` buffer

When I run a command with async-shell-command, sometimes I would like to quickly rerun the command. I can do this by running async-shell-command again and using M-p to cycle backward through history, ...
4
votes
2answers
948 views

Using `emacsclient` as `git config core.editor` and invoking `git commit` as `shell-command` in Emacs?

I am trying to use Emacs 25.1.1 (graphical version, Windows 10) as both the primary editor and the editor for git operations. In my workflow, I invoke git through M-x shell-command. I tried the ...
3
votes
1answer
1k views

How to run sudo commands using shell-command?

When I run any sudo command using shell-command—for example, (shell-command "sudo ls")—I get the following error: sudo: no tty present and no askpass program specified How can I get around this? I'm ...
3
votes
1answer
364 views

Set default-directory relative to the place an Elisp function is defined

I have some custom elisp functions that need to run shell scripts using shell-command. I would like to use a relative path to the script, e.g.: (shell-command "./run.sh") rather than an absolute one:...
3
votes
2answers
853 views

Shell Command with bash script and arguements

I have a bash script which Sweaves .Rnw files into pdf's. sweave_to_pdf ~/Foo.Rnw I am wanting to write a emacs function to invoke this script on the current buffer. So far I have this: (defun ...
3
votes
1answer
558 views

Almost working smoothly attempt to get terminal Emacs to copy to clipboard

I'm running this emacs GNU Emacs 25.2.2 (x86_64-pc-linux-gnu) of 2017-09-22, modified by Debian directly in a Gnome terminal by calling emacs, which is actually a link to /etc/alternatives/emacs. ...
3
votes
1answer
775 views

Run elisp from command line in running emacs

How can I execute elisp in the currently running emacs from the command line? The following command echoes 'hi' but doesn't set 'abc in the emacs instance. emacsclient --no-wait --eval '(message "hi"...
3
votes
1answer
83 views

Show top of *Async Shell Command* buffer

Is there a way to get to the top of a buffer that is not necessarily active? What I want to do is run a shell command on the word at point and then show the top of the output in the *Async Shell ...
3
votes
0answers
284 views

Shutting down computer from emacs killing gracefully emacs itself

I am using EXWM on Arch as my windows manager. Substantially my startx launches exec dbus-launch --exit-with-session emacs so I am running only emacs and living inside it. I would like to define a ...
3
votes
1answer
219 views

Define the window location of the output of shell command

I use M-! to run the command shell-command. The output will open the buffer in a new window at the bottom. Can I configure it to appear on the right?
3
votes
0answers
520 views

Emacs on Windows: `shell-command` hangs when process wants input

I am using Emacs on Windows 8. Some processes when run through shell-command will request interactive input, notably commands like git push (which will ask for user name and password). Sometimes I ...
2
votes
4answers
771 views

Command to Run (Eval) “Hello World” in ELISP on Eshell?

I am new to Emacs and ELISP A file (message "Hello World") saved as hello.el. Now, how to run (evaluate) this file on Eshell? ~/Documents $ ....... hello.el
2
votes
1answer
622 views

Append shell-command output to named buffer

In my init file I have a function that runs a shell-command everytime I open emacs. I rarely need to look at the out put of this command, so having it pop up in the *Shell Command Output* buffer every ...
2
votes
1answer
335 views

call-process and Hunspell (in Emacs 24.4)

I am having problems running ezwinports Hunspell 1.3.2-3 in Emacs 24.4.1 for Windows. When calling ispell-buffer with debug, I see the following functions are called. ispell-buffer -> ispell-...
2
votes
1answer
199 views

Making custom shell command function have popup buffer showing std-out

I'm customizing spacemacs for my workflow. I'm new to elisp and can't figure out how to do this after looking at other functions in .el files and other posts. Basically, I wrote an elisp function ...
2
votes
1answer
515 views

How to open system's command line at the directory of the current buffer?

Is there any easy way to open the system command line interface (e.g., cmd in Windows) at the directory containing the current buffer (if any)? Note that M-x shell open a command line interface within ...
2
votes
1answer
3k views

Trying to run a linux program in Emacs: command not found

I have a pdflatex program located in /usr/local/texlive/2014/bin/i386-linux/pdflatex I added it's folder to $PATH both in .bashrc and .bash_profile: PATH=$PATH:/usr/local/texlive/2014/bin/i386-...
2
votes
1answer
125 views

Using replace-regexp with a shell command

I'm trying to format some text that matches a regexp using an external shell command. I've been able to use C-u M-| successfully on a region, but I can't figure out how to do that within replace-...
2
votes
2answers
278 views

Make shell-command / async-shell-command respect carriage return?

Say I have a simple perl program: for my $i (0..10) { print "$i\r" } print "\n" Now if I run the program through shell-command, instead of getting a single line with 10, I will see the ...
2
votes
0answers
15 views

Exec a external shell command that have external read input - ex:cookiecutter

As the examble like cookicutter, it have a read input in itself that we must type if we use it in normal terminal. $> #comment: this is normal terminal emulator $> cookiecutter $HOME/...
1
vote
2answers
260 views

What does the (interactive …) form mean?

I want to write a function that will write the output of wc -l <file-name> next to each file in dired mode. I got to this point: (defun my-dired-insert-add-wc (beg end) (save-excursion (...
1
vote
2answers
238 views

Split command line into a list of arguments

How do I take a string giving a shell command line such as: "program arg1 arg2 \"long argument with spaces\" arg\\\"3" and turn it into a list of unquoted arguments like: ("program" "arg1" "arg2" "...
1
vote
1answer
78 views

Is there a package to send a piece of text to shell and get the result back?

I want to know if there is a package to send a piece of text to shell commands like sed, awk or other text processing utilities and then get the result back to emacs? Thanks.
1
vote
1answer
133 views

How to use Emacs to open an eshell from Terminal at a specific path

By default, if I invoke emacs from terminal by typing $ emacs C:\users a directory-like environment opens. Then if I do M-x eshell, an eshell environment opens at this path. My question is how to ...
1
vote
1answer
38 views

How to call Elisp functions from my own implementation of a shell?

I'm writing my own shell which can handle most of the GNU/Linux system calls now. So I was wondering if I could make this shell call Elisp functions too. Is it possible to do so? Is so, how do I get ...
1
vote
1answer
176 views

How to make *Shell Command Output* buffer scroll to the end?

I often execute shell commands via M-! and their output is then shown in the buffer *Shell Command Output*. How can I make this buffer display the end (rather than the beginning) so that I can see ...