Difference between revisions of "Shell"

From WikEmacs
Jump to navigation Jump to search
(compilation shell minor mode should be enabled by default !)
Line 1: Line 1:
'''Shell-mode''' gives access to a shell in a normal emacs buffer, meaning you can move around and edit it as usual. A drawback is that you can not launch programs like htop or other ncurses ones.
+
'''Shell-mode''' gives access to a shell in a normal emacs buffer, meaning you can move around and edit it as usual. A drawback is that you can not launch programs like htop or other ncurses ones, like you would in term-mode.
  
 
= Usage =
 
= Usage =
Line 5: Line 5:
 
{{Command|shell}}
 
{{Command|shell}}
  
Look at the menu: you have several key to interact with the shell. Some of them are:
+
Look at the menu: you have several keys to interact with the shell. Some of them are:
  
 
* {{Keys|M-p}} previous input of command line
 
* {{Keys|M-p}} previous input of command line
* {{Keys|C-c r}} go to beginnig of output (useful when you have a large output and want to read through the beginning)
+
* {{Keys|C-c r}} go to beginning of output (useful when you have a large output and want to read through the beginning)
* {{Keys|C-c-p}} go to beginnig of previous output group
+
* {{Keys|C-c-p}} go to beginning of previous output group
 
* {{Keys|C-c-c}} send the '''C-c''' command to the shell
 
* {{Keys|C-c-c}} send the '''C-c''' command to the shell
 +
* {{Keys|C-c-o}} delete the output of last command
  
 
To launch a shell in the current buffer, have a look to '''shell-here''': https://github.com/ieure/shell-here (available through ELPA).
 
To launch a shell in the current buffer, have a look to '''shell-here''': https://github.com/ieure/shell-here (available through ELPA).
Line 36: Line 37:
 
      
 
      
 
     (add-hook 'shell-mode-hook (lambda () (goto-address-mode )))  
 
     (add-hook 'shell-mode-hook (lambda () (goto-address-mode )))  
 +
 +
 +
== Make file paths clickable ==
 +
 +
Every line representing a path to a file will be colorized and made clickable, so that you can jump to that file and that line, like in compilation-mode (specially useful when compiling a program or running tests):
 +
 +
    (add-hook 'shell-mode-hook 'compilation-shell-minor-mode)
  
  

Revision as of 14:22, 6 January 2014

Shell-mode gives access to a shell in a normal emacs buffer, meaning you can move around and edit it as usual. A drawback is that you can not launch programs like htop or other ncurses ones, like you would in term-mode.

Usage

M-x shell

Look at the menu: you have several keys to interact with the shell. Some of them are:

  • [M-p] previous input of command line
  • [C-c r] go to beginning of output (useful when you have a large output and want to read through the beginning)
  • [C-c-p] go to beginning of previous output group
  • [C-c-c] send the C-c command to the shell
  • [C-c-o] delete the output of last command

To launch a shell in the current buffer, have a look to shell-here: https://github.com/ieure/shell-here (available through ELPA).

Customisation

More colors

If you have bad colors in the output, try using ansi-mode:

    (require 'ansi-color)
    (defun colorize-compilation-buffer ()
    (toggle-read-only)
    (ansi-color-apply-on-region (point-min) (point-max))
      (toggle-read-only))
      (add-hook 'compilation-filter-hook 'colorize-compilation-buffer)

You can highlight some text based on regexp (useful to see "OK" or warnings):

      (add-hook 'shell-mode-hook (lambda () (highlight-regexp "\\[OK\\]" "hi-green-b")))


Make URLs clikable

   (add-hook 'shell-mode-hook (lambda () (goto-address-mode ))) 


Make file paths clickable

Every line representing a path to a file will be colorized and made clickable, so that you can jump to that file and that line, like in compilation-mode (specially useful when compiling a program or running tests):

   (add-hook 'shell-mode-hook 'compilation-shell-minor-mode)


See also

shell-pop to pop up and pop out a shell buffer window easily (installable via ELPA).