Copyright (C) 2000-2012 |
GNU Info (emacs)Compilation ShellSubshells for Compilation ========================= Emacs uses a shell to run the compilation command, but specifies the option for a noninteractive shell. This means, in particular, that the shell should start with no prompt. If you find your usual shell prompt making an unsightly appearance in the `*compilation*' buffer, it means you have made a mistake in your shell's init file by setting the prompt unconditionally. (This init file's name may be `.bashrc', `.profile', `.cshrc', `.shrc', or various other things, depending on the shell you use.) The shell init file should set the prompt only if there already is a prompt. In csh, here is how to do it: if ($?prompt) set prompt = ... And here's how to do it in bash: if [ "${PS1+set}" = set ] then PS1=... fi There may well be other things that your shell's init file ought to do only for an interactive shell. You can use the same method to conditionalize them. The MS-DOS "operating system" does not support asynchronous subprocesses; to work around this lack, `M-x compile' runs the compilation command synchronously on MS-DOS. As a consequence, you must wait until the command finishes before you can do anything else in Emacs. Note: MS-DOS. automatically generated by info2www version 1.2.2.9 |