* Emacs Shell Ansi Colors @ 2008-09-28 19:27 Lorenzo Isella 2008-09-28 21:19 ` Thierry Volpiatto 0 siblings, 1 reply; 14+ messages in thread From: Lorenzo Isella @ 2008-09-28 19:27 UTC (permalink / raw) To: help-gnu-emacs Dear All, I often use M-x shell to open a shell within Emacs. Since I miss the colorized output, I tried to enable ansi-colors in my Emacs shell. After googling, I found suggestions along the lines of the link pasted below http://www.grokblok.com/articles/2007/12/13/emacs-shell-ansi-colors/ The problem is that I added those few lines to my .emacs file, but nothing changed. I had a look also at: http://www.emacswiki.org/cgi-bin/wiki/ansi-color.el but I did not copy the ansi-color.el file anywhere in my system (in case it matters, I am running emacs22 on a Debian testing box). I notice that issuing the command (within emacs shell): ls --color=yes give the nice colorized output I am looking for, hence I do not think there is any substantial problem by default, just it seems that my output is not colorized by default (though when I type M-x shell I read the message Loading ansi-color...done ). Can anyone help me out with this? Many thanks Lorenzo ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Shell Ansi Colors 2008-09-28 19:27 Emacs Shell Ansi Colors Lorenzo Isella @ 2008-09-28 21:19 ` Thierry Volpiatto [not found] ` <F725F550-369F-4C9A-BACA-D13E30D70FC2@Web.DE> 0 siblings, 1 reply; 14+ messages in thread From: Thierry Volpiatto @ 2008-09-28 21:19 UTC (permalink / raw) To: help-gnu-emacs Hi Lorenzo, Lorenzo Isella <lorenzo.isella@gmail.com> writes: > Dear All, > I often use M-x shell to open a shell within Emacs. Since I miss the > colorized output, I tried to enable ansi-colors in my Emacs shell. > After googling, I found suggestions along the lines of the link pasted > below > > http://www.grokblok.com/articles/2007/12/13/emacs-shell-ansi-colors/ > > The problem is that I added those few lines to my .emacs file, but > nothing changed. > I had a look also at: > http://www.emacswiki.org/cgi-bin/wiki/ansi-color.el > but I did not copy the ansi-color.el file anywhere in my system (in > case it matters, I am running emacs22 on a Debian testing box). > I notice that issuing the command (within emacs shell): > ls --color=yes > give the nice colorized output I am looking for, hence I do not think > there is any substantial problem by default, just it seems that my > output is not colorized by default (though when I type M-x shell I > read the message > Loading ansi-color...done ). > Can anyone help me out with this? > Many thanks Try that in your .emacs: ,---- | (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) | (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) `---- -- A + Thierry Volpiatto Location: Saint-Cyr-Sur-Mer - France ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <F725F550-369F-4C9A-BACA-D13E30D70FC2@Web.DE>]
* Re: Emacs Shell Ansi Colors [not found] ` <F725F550-369F-4C9A-BACA-D13E30D70FC2@Web.DE> @ 2008-09-29 10:48 ` Lorenzo Isella 2008-09-29 10:59 ` Thierry Volpiatto ` (4 more replies) 0 siblings, 5 replies; 14+ messages in thread From: Lorenzo Isella @ 2008-09-29 10:48 UTC (permalink / raw) To: Peter Dyballa; +Cc: help-gnu-emacs, Thierry Volpiatto 2008/9/29 Peter Dyballa <Peter_Dyballa@web.de>: > > Am 28.09.2008 um 23:19 schrieb Thierry Volpiatto: > >> ,---- >> | (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) >> | (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) >> `---- > > > For me > > (ansi-color-for-comint-mode-on) > > is enough ... > > -- > Greetings > > Pete > > There's no place like ~ > – (UNIX Guru) > > > > Hi, And thanks for your suggestions. I am puzzled since I gave both a try (actually one of them is precisely the same recommendation from the wiki page), but the problem stays the same. From the web http://www.emacswiki.org/cgi-bin/wiki/ansi-color.el I read ;;; Commentary: ;; This file provides a function that takes a string or a region ;; containing Select Graphic Rendition (SGR) control sequences (formerly ;; known as ANSI escape sequences) and tries to translate these into ;; faces. ;; ;; This allows you to run ls --color=yes in shell-mode. In order to ;; test this, proceed as follows: ;; ;; 1. start a shell: M-x shell ;; 2. load this file: M-x load-library RET ansi-color RET ;; 3. activate ansi-color: M-x ansi-color-for-comint-mode-on ;; 4. test ls --color=yes in the *shell* buffer ;; ;; Note that starting your shell from within Emacs might set the TERM ;; environment variable. The new setting might disable the output of ;; SGR control sequences. Using ls --color=yes forces ls to produce ;; these. ;; ;; If you decide you like this, add the following to your .emacs file: ;; ;; (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) ;; (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) So it looks like there could be a problem with the TERM environment variable (but do not ask me what this stands for). I suppose (hope?) this is a one-liner for somebody really knowledgeable about emacs. Kind Regards Lorenzo ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Shell Ansi Colors 2008-09-29 10:48 ` Lorenzo Isella @ 2008-09-29 10:59 ` Thierry Volpiatto 2008-09-29 12:37 ` Paul R ` (3 subsequent siblings) 4 siblings, 0 replies; 14+ messages in thread From: Thierry Volpiatto @ 2008-09-29 10:59 UTC (permalink / raw) To: Lorenzo Isella; +Cc: help-gnu-emacs "Lorenzo Isella" <lorenzo.isella@gmail.com> writes: > 2008/9/29 Peter Dyballa <Peter_Dyballa@web.de>: >> >> Am 28.09.2008 um 23:19 schrieb Thierry Volpiatto: >> >>> ,---- >>> | (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) >>> | (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) >>> `---- >> >> >> For me >> >> (ansi-color-for-comint-mode-on) >> >> is enough ... >> >> -- >> Greetings >> >> Pete >> >> There's no place like ~ >> – (UNIX Guru) >> >> >> >> > > > > Hi, > And thanks for your suggestions. I am puzzled since I gave both a try > (actually one of them is precisely the same recommendation from the > wiki page), but the problem stays the same. >>From the web > http://www.emacswiki.org/cgi-bin/wiki/ansi-color.el > I read > > ;;; Commentary: > > ;; This file provides a function that takes a string or a region > ;; containing Select Graphic Rendition (SGR) control sequences (formerly > ;; known as ANSI escape sequences) and tries to translate these into > ;; faces. > ;; > ;; This allows you to run ls --color=yes in shell-mode. In order to > ;; test this, proceed as follows: > ;; > ;; 1. start a shell: M-x shell > ;; 2. load this file: M-x load-library RET ansi-color RET > ;; 3. activate ansi-color: M-x ansi-color-for-comint-mode-on > ;; 4. test ls --color=yes in the *shell* buffer > ;; > ;; Note that starting your shell from within Emacs might set the TERM > ;; environment variable. The new setting might disable the output of > ;; SGR control sequences. Using ls --color=yes forces ls to produce > ;; these. > ;; > ;; If you decide you like this, add the following to your .emacs file: > ;; > ;; (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) > ;; (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) > > So it looks like there could be a problem with the TERM environment > variable (but do not ask me what this stands for). > I suppose (hope?) this is a one-liner for somebody really > knowledgeable about emacs. > Kind Regards > > Lorenzo > ansi-color.el is part of emacs, it will be loaded with emacs, so you have nothing to do with that. Also: be sure you have something like that in your .bashrc: ,---- | if [[ -f ~/.dir_colors ]]; then | eval `dircolors -b ~/.dir_colors` | else | eval `dircolors -b /etc/DIR_COLORS` | fi `---- (Assume you have such a file) The best is to have a per-user file : "~/.dir_colors" Just copy it from /etc You can also add this line in this file: ,---- | TERM dumb `---- And now with the code i sent in precedent post or the code Peter sent, it should work. -- A + Thierry Volpiatto Location: Saint-Cyr-Sur-Mer - France ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Shell Ansi Colors 2008-09-29 10:48 ` Lorenzo Isella 2008-09-29 10:59 ` Thierry Volpiatto @ 2008-09-29 12:37 ` Paul R 2008-09-29 12:45 ` Paul R ` (2 subsequent siblings) 4 siblings, 0 replies; 14+ messages in thread From: Paul R @ 2008-09-29 12:37 UTC (permalink / raw) To: Lorenzo Isella; +Cc: help-gnu-emacs, Thierry Volpiatto On Mon, 29 Sep 2008 12:48:53 +0200, "Lorenzo Isella" <lorenzo.isella@gmail.com> said: Lorenzo> So it looks like there could be a problem with the TERM Lorenzo> environment variable (but do not ask me what this stands Lorenzo> for). I suppose (hope?) this is a one-liner for somebody Lorenzo> really knowledgeable about emacs. Kind Regards Yes, probably. Just read your ~/.bashrc and /etc/profile. Both files are source'd when your shell starts. I suspect something like an alias from 'ls' to 'ls --color' to be set in a conditionnal switch. If your term is dumb (env | grep TERM), the alias is not made. Just ensure by the mean you want that this alias occurs even in emacs shell mode. -- Paul ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Shell Ansi Colors 2008-09-29 10:48 ` Lorenzo Isella 2008-09-29 10:59 ` Thierry Volpiatto 2008-09-29 12:37 ` Paul R @ 2008-09-29 12:45 ` Paul R 2008-09-29 13:02 ` Lorenzo Isella [not found] ` <mailman.20145.1222693383.18990.help-gnu-emacs@gnu.org> [not found] ` <mailman.20143.1222686216.18990.help-gnu-emacs@gnu.org> [not found] ` <mailman.20146.1222694164.18990.help-gnu-emacs@gnu.org> 4 siblings, 2 replies; 14+ messages in thread From: Paul R @ 2008-09-29 12:45 UTC (permalink / raw) To: Lorenzo Isella; +Cc: help-gnu-emacs, Thierry Volpiatto Lorenzo> So it looks like there could be a problem with the TERM Lorenzo> environment variable (but do not ask me what this stands Lorenzo> for). I suppose (hope?) this is a one-liner for somebody Lorenzo> really knowledgeable about emacs. Kind Regards in case you need a drop-in solution for emacs, you can use the lines below. (comint-send-string (current-buffer) "alias ls='ls --color'") then do a (comint-send-input) -- Paul ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Shell Ansi Colors 2008-09-29 12:45 ` Paul R @ 2008-09-29 13:02 ` Lorenzo Isella 2008-09-29 13:40 ` Paul R [not found] ` <mailman.20145.1222693383.18990.help-gnu-emacs@gnu.org> 1 sibling, 1 reply; 14+ messages in thread From: Lorenzo Isella @ 2008-09-29 13:02 UTC (permalink / raw) To: Paul R; +Cc: help-gnu-emacs, Thierry Volpiatto OK, I think we are getting to the bottom of this. Apologies in advance for the long email, but there are several suggestions here about what to modify (and how), and my knowledge of shell scripting is clearly on a different league wrt the one of many people on the list. To make a long story short, this is the output of your command: ~$ env | grep TERM TERM=xterm COLORTERM=gnome-terminal and this is my .bashrc file (or better: the part about aliases and colors, which I think is relevant here): # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color) PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' ;; *) PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' ;; esac # Comment in the above and uncomment this below for a color prompt #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"' ;; *) ;; esac # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. #if [ -f ~/.bash_aliases ]; then # . ~/.bash_aliases #fi # enable color support of ls and also add handy aliases if [ "$TERM" != "dumb" ]; then eval "`dircolors -b`" alias ls='ls --color=auto' #alias dir='ls --color=auto --format=vertical' #alias vdir='ls --color=auto --format=long' fi # some more ls aliases #alias ll='ls -l' #alias la='ls -A' #alias l='ls -CF' and this is my /etc/profile file: # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). if [ "`id -u`" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11" else PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games" fi if [ "$PS1" ]; then if [ "$BASH" ]; then PS1='\u@\h:\w\$ ' else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi fi export PATH umask 022 As to your suggestion: > in case you need a drop-in solution for emacs, you can use the lines > below. > > (comint-send-string (current-buffer) "alias ls='ls --color'") > then do a > (comint-send-input) please, do not laugh, but I am a bit at a loss about the way I should put this into my .emacs file. The part dealing with the shell is now: (require 'shell-command) (shell-command-completion-mode) ;; ;;Now I add another customization for the shell-mode (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) (custom-set-variables '(comint-scroll-to-bottom-on-input t) ; always insert at the bottom '(comint-scroll-to-bottom-on-output t) ; always add output at the bottom '(comint-scroll-show-maximum-output t) ; scroll to show max possible output '(comint-completion-autolist t) ; show completion list when ambiguous '(comint-input-ignoredups t) ; no duplicates in command history '(comint-completion-addsuffix t) ; insert space/slash after file completion ) ; make completion buffers disappear after 3 seconds. (add-hook 'completion-setup-hook (lambda () (run-at-time 3 nil (lambda () (delete-windows-on "*Completions*"))))) (add-hook 'shell-mode-hook '(lambda () (toggle-truncate-lines 1))) (setq comint-prompt-read-only t) What should I actually add to this? Hope this is the conclusion, thanks again to everybody. Cheers Lorenzo 2008/9/29 Paul R <paul.r.ml@gmail.com>: > > Lorenzo> So it looks like there could be a problem with the TERM > Lorenzo> environment variable (but do not ask me what this stands > Lorenzo> for). I suppose (hope?) this is a one-liner for somebody > Lorenzo> really knowledgeable about emacs. Kind Regards > > in case you need a drop-in solution for emacs, you can use the lines > below. > > (comint-send-string (current-buffer) "alias ls='ls --color'") > then do a > (comint-send-input) > > -- > Paul > -- It is hard to want something you cannot describe. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Shell Ansi Colors 2008-09-29 13:02 ` Lorenzo Isella @ 2008-09-29 13:40 ` Paul R 2008-09-29 14:32 ` Lorenzo Isella 0 siblings, 1 reply; 14+ messages in thread From: Paul R @ 2008-09-29 13:40 UTC (permalink / raw) To: Lorenzo Isella; +Cc: help-gnu-emacs, Thierry Volpiatto On Mon, 29 Sep 2008 15:02:57 +0200, "Lorenzo Isella" <lorenzo.isella@gmail.com> said: Lorenzo> ~$ env | grep TERM TERM=xterm COLORTERM=gnome-terminal I guess this is the output of the command run from within gnome-terminal, not from emacs shell mode :) Run it from shell mode you should read that the term is dumb. Lorenzo> [ "$TERM" != "dumb" ]; then eval "`dircolors -b`" alias Lorenzo> ls='ls --color=auto' #alias Here we go. Emacs comint shell is dumb so the alias won't happen. Lorenzo> please, do not laugh, but I am a bit at a loss about the way Lorenzo> I should put this into my .emacs file. The part dealing with Lorenzo> the shell is now: I don't use M-x shell at all so I have hard time helping you more. Reading shell.el code yield : ,---- see lines starting with !!! | (interactive | (list | (and current-prefix-arg | (read-buffer "Shell buffer: " | (generate-new-buffer-name "*shell*"))))) | (setq buffer (get-buffer-create (or buffer "*shell*"))) | ;; Pop to buffer, so that the buffer's window will be correctly set | ;; when we call comint (so that comint sets the COLUMNS env var properly). | (pop-to-buffer buffer) | (unless (comint-check-proc buffer) | (let* ((prog (or explicit-shell-file-name | (getenv "ESHELL") shell-file-name)) | (name (file-name-nondirectory prog)) |!!!!! NOTICE BELOW | (startfile (concat "~/.emacs_" name)) | (xargs-name (intern-soft (concat "explicit-" name "-args")))) | (unless (file-exists-p startfile) | (setq startfile (concat "~/.emacs.d/init_" name ".sh"))) | (apply 'make-comint-in-buffer "shell" buffer prog | (if (file-exists-p startfile) startfile) | (if (and xargs-name (boundp xargs-name)) | (symbol-value xargs-name) | '("-i"))) | (shell-mode))) | buffer) `---- So what we read here is that shell will try to evaluate (with your shell) the file ~/.emacs_bash or ~/.emacs.d/init_bash.sh So just drop in either file alias ls='ls --color' followed by a blank line (thx comint) and it should work automagically. By the way, have you tried eshell ? In most cases, it just works. -- Paul ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Shell Ansi Colors 2008-09-29 13:40 ` Paul R @ 2008-09-29 14:32 ` Lorenzo Isella 0 siblings, 0 replies; 14+ messages in thread From: Lorenzo Isella @ 2008-09-29 14:32 UTC (permalink / raw) To: Paul R; +Cc: help-gnu-emacs, Thierry Volpiatto Perfect! Just to finish off this thread, here is the output of $ env | grep TERM TERM=dumb TERMCAP= COLORTERM=gnome-terminal This time ran from within emacs. I had neither file ~/.emacs_bash nor ~/.emacs.d/init_bash.sh, but creating ~/.emacs.d/init_bash.sh with the only content alias ls='ls --color' followed by a blank line (precisely as you said) got the job done. Thanks again to the people on the list. Cheers Lorenzo 2008/9/29 Paul R <paul.r.ml@gmail.com>: > On Mon, 29 Sep 2008 15:02:57 +0200, "Lorenzo Isella" <lorenzo.isella@gmail.com> said: > Lorenzo> ~$ env | grep TERM TERM=xterm COLORTERM=gnome-terminal > > I guess this is the output of the command run from within > gnome-terminal, not from emacs shell mode :) > Run it from shell mode you should read that the term is dumb. > > Lorenzo> [ "$TERM" != "dumb" ]; then eval "`dircolors -b`" alias > Lorenzo> ls='ls --color=auto' #alias > > Here we go. Emacs comint shell is dumb so the alias won't happen. > > > Lorenzo> please, do not laugh, but I am a bit at a loss about the way > Lorenzo> I should put this into my .emacs file. The part dealing with > Lorenzo> the shell is now: > > I don't use M-x shell at all so I have hard time helping you more. > Reading shell.el code yield : > ,---- see lines starting with !!! > | (interactive > | (list > | (and current-prefix-arg > | (read-buffer "Shell buffer: " > | (generate-new-buffer-name "*shell*"))))) > | (setq buffer (get-buffer-create (or buffer "*shell*"))) > | ;; Pop to buffer, so that the buffer's window will be correctly set > | ;; when we call comint (so that comint sets the COLUMNS env var properly). > | (pop-to-buffer buffer) > | (unless (comint-check-proc buffer) > | (let* ((prog (or explicit-shell-file-name > | (getenv "ESHELL") shell-file-name)) > | (name (file-name-nondirectory prog)) > |!!!!! NOTICE BELOW > | (startfile (concat "~/.emacs_" name)) > | (xargs-name (intern-soft (concat "explicit-" name "-args")))) > | (unless (file-exists-p startfile) > | (setq startfile (concat "~/.emacs.d/init_" name ".sh"))) > | (apply 'make-comint-in-buffer "shell" buffer prog > | (if (file-exists-p startfile) startfile) > | (if (and xargs-name (boundp xargs-name)) > | (symbol-value xargs-name) > | '("-i"))) > | (shell-mode))) > | buffer) > `---- > > So what we read here is that shell will try to evaluate (with your > shell) the file ~/.emacs_bash or ~/.emacs.d/init_bash.sh > > So just drop in either file > alias ls='ls --color' > > followed by a blank line (thx comint) and it should work > automagically. > > By the way, have you tried eshell ? In most cases, it just works. > > -- > Paul > -- It is hard to want something you cannot describe. ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <mailman.20145.1222693383.18990.help-gnu-emacs@gnu.org>]
* Re: Emacs Shell Ansi Colors [not found] ` <mailman.20145.1222693383.18990.help-gnu-emacs@gnu.org> @ 2008-09-29 13:32 ` Andreas Politz 2008-09-29 16:08 ` Peter Dyballa 0 siblings, 1 reply; 14+ messages in thread From: Andreas Politz @ 2008-09-29 13:32 UTC (permalink / raw) To: help-gnu-emacs Lorenzo Isella wrote: > OK, > I think we are getting to the bottom of this. Apologies in advance for > the long email, but there are several suggestions here about what to > modify (and how), and my knowledge of shell scripting is clearly on a > different league wrt the one of many people on the list. > To make a long story short, this is the output of your command: > > ~$ env | grep TERM > TERM=xterm > COLORTERM=gnome-terminal > > and this is my .bashrc file (or better: the part about aliases and > colors, which I think is relevant here): > > # set a fancy prompt (non-color, unless we know we "want" color) > case "$TERM" in > xterm-color) > PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ > ' > ;; > *) > PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' > ;; > esac > > # Comment in the above and uncomment this below for a color prompt > #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ > ' > > # If this is an xterm set the title to user@host:dir > case "$TERM" in > xterm*|rxvt*) > PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"' > ;; > *) > ;; > esac > > # Alias definitions. > # You may want to put all your additions into a separate file like > # ~/.bash_aliases, instead of adding them here directly. > # See /usr/share/doc/bash-doc/examples in the bash-doc package. > > #if [ -f ~/.bash_aliases ]; then > # . ~/.bash_aliases > #fi > > # enable color support of ls and also add handy aliases > if [ "$TERM" != "dumb" ]; then > eval "`dircolors -b`" > alias ls='ls --color=auto' > #alias dir='ls --color=auto --format=vertical' > #alias vdir='ls --color=auto --format=long' > fi > > # some more ls aliases > #alias ll='ls -l' > #alias la='ls -A' > #alias l='ls -CF' > > and this is my /etc/profile file: > > # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) > # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). > > if [ "`id -u`" -eq 0 ]; then > PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11" > else > PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games" > fi > > if [ "$PS1" ]; then > if [ "$BASH" ]; then > PS1='\u@\h:\w\$ ' > else > if [ "`id -u`" -eq 0 ]; then > PS1='# ' > else > PS1='$ ' > fi > fi > fi > > export PATH > > umask 022 > > > As to your suggestion: > >> in case you need a drop-in solution for emacs, you can use the lines >> below. >> >> (comint-send-string (current-buffer) "alias ls='ls --color'") >> then do a >> (comint-send-input) > > please, do not laugh, but I am a bit at a loss about the way I should > put this into my .emacs file. The part dealing with the shell is now: > > (require 'shell-command) > (shell-command-completion-mode) > > > > ;; ;;Now I add another customization for the shell-mode > > (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) > (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) > > > (custom-set-variables > '(comint-scroll-to-bottom-on-input t) ; always insert at the bottom > '(comint-scroll-to-bottom-on-output t) ; always add output at the bottom > '(comint-scroll-show-maximum-output t) ; scroll to show max possible output > '(comint-completion-autolist t) ; show completion list when ambiguous > '(comint-input-ignoredups t) ; no duplicates in command history > '(comint-completion-addsuffix t) ; insert space/slash after > file completion > ) > > > > ; make completion buffers disappear after 3 seconds. > (add-hook 'completion-setup-hook > (lambda () (run-at-time 3 nil > (lambda () (delete-windows-on "*Completions*"))))) > > (add-hook 'shell-mode-hook '(lambda () (toggle-truncate-lines 1))) > (setq comint-prompt-read-only t) > > > What should I actually add to this? > Hope this is the conclusion, thanks again to everybody. > Cheers > > Lorenzo > > > 2008/9/29 Paul R <paul.r.ml@gmail.com>: >> Lorenzo> So it looks like there could be a problem with the TERM >> Lorenzo> environment variable (but do not ask me what this stands >> Lorenzo> for). I suppose (hope?) this is a one-liner for somebody >> Lorenzo> really knowledgeable about emacs. Kind Regards >> >> in case you need a drop-in solution for emacs, you can use the lines >> below. >> >> (comint-send-string (current-buffer) "alias ls='ls --color'") >> then do a >> (comint-send-input) >> >> -- >> Paul >> > > > Leave your .emacs as it is and create a file '~/.emacs_bash', insert the following lines, save and you should have colors. PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ eval "`dircolors -b`" alias ls='ls --color=auto' -ap ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Shell Ansi Colors 2008-09-29 13:32 ` Andreas Politz @ 2008-09-29 16:08 ` Peter Dyballa 0 siblings, 0 replies; 14+ messages in thread From: Peter Dyballa @ 2008-09-29 16:08 UTC (permalink / raw) To: Andreas Politz; +Cc: help-gnu-emacs Am 29.09.2008 um 15:32 schrieb Andreas Politz: > Leave your .emacs as it is and create a file '~/.emacs_bash', insert > the following lines, save and you should have colors. > > PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033 > [00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ > eval "`dircolors -b`" > alias ls='ls --color=auto' This is only bash code – don't you think you need to prepare GNU Emacs to *execute* the ANSI codes GNU ls will be emitting? This is true for my GNU Emacs 22.3. Your example of a shell prompt can cause problems in *shell* buffer – such a prompt is not easy to find, which means that older commands also are not easy to find or recognised. You can customise instead the variable comint-highlight-prompt. There are also other versions of ls around that for example make colourisation depending on terminal capabilities. Anyway, it's good to know that a file ~/.emacs_<shell interpreter> exists that can be used to setup *shell* buffer, for example switch off what's working in xterm or such. Or switch on. -- Mit friedvollen Grüßen Pete <] o __o |__ o HPV, the real ___o /I -\<, |o \ -\),-% high speed! ___/\ /\___./ \___...O/ O____.....`-O-'-()--o_________________ ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <mailman.20143.1222686216.18990.help-gnu-emacs@gnu.org>]
* Re: Emacs Shell Ansi Colors [not found] ` <mailman.20143.1222686216.18990.help-gnu-emacs@gnu.org> @ 2008-09-29 14:14 ` Richard Riley 0 siblings, 0 replies; 14+ messages in thread From: Richard Riley @ 2008-09-29 14:14 UTC (permalink / raw) To: help-gnu-emacs Thierry Volpiatto <thierry.volpiatto@gmail.com> writes: > "Lorenzo Isella" <lorenzo.isella@gmail.com> writes: > >> 2008/9/29 Peter Dyballa <Peter_Dyballa@web.de>: >>> >>> Am 28.09.2008 um 23:19 schrieb Thierry Volpiatto: >>> >>>> ,---- >>>> | (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) >>>> | (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) >>>> `---- >>> >>> >>> For me >>> >>> (ansi-color-for-comint-mode-on) >>> >>> is enough ... >>> >>> -- >>> Greetings >>> >>> Pete >>> >>> There's no place like ~ >>> – (UNIX Guru) >>> >>> >>> >>> >> >> >> >> Hi, >> And thanks for your suggestions. I am puzzled since I gave both a try >> (actually one of them is precisely the same recommendation from the >> wiki page), but the problem stays the same. >>>From the web >> http://www.emacswiki.org/cgi-bin/wiki/ansi-color.el >> I read >> >> ;;; Commentary: >> >> ;; This file provides a function that takes a string or a region >> ;; containing Select Graphic Rendition (SGR) control sequences (formerly >> ;; known as ANSI escape sequences) and tries to translate these into >> ;; faces. >> ;; >> ;; This allows you to run ls --color=yes in shell-mode. In order to >> ;; test this, proceed as follows: >> ;; >> ;; 1. start a shell: M-x shell >> ;; 2. load this file: M-x load-library RET ansi-color RET >> ;; 3. activate ansi-color: M-x ansi-color-for-comint-mode-on >> ;; 4. test ls --color=yes in the *shell* buffer >> ;; >> ;; Note that starting your shell from within Emacs might set the TERM >> ;; environment variable. The new setting might disable the output of >> ;; SGR control sequences. Using ls --color=yes forces ls to produce >> ;; these. >> ;; >> ;; If you decide you like this, add the following to your .emacs file: >> ;; >> ;; (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) >> ;; (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) >> >> So it looks like there could be a problem with the TERM environment >> variable (but do not ask me what this stands for). >> I suppose (hope?) this is a one-liner for somebody really >> knowledgeable about emacs. >> Kind Regards >> >> Lorenzo >> > ansi-color.el is part of emacs, it will be loaded with emacs, so you > have nothing to do with that. > > Also: > be sure you have something like that in your .bashrc: > > ,---- > | if [[ -f ~/.dir_colors ]]; then > | eval `dircolors -b ~/.dir_colors` > | else > | eval `dircolors -b /etc/DIR_COLORS` > | fi > `---- > (Assume you have such a file) > > The best is to have a per-user file : "~/.dir_colors" > Just copy it from /etc > > You can also add this line in this file: > > ,---- > | TERM dumb > `---- > > And now with the code i sent in precedent post or the code Peter sent, > it should work. I just noticed that I have the alias for my ls --color=auto in my bashrc but the emacs shell does not pick it up in debian. So maybe another rc file needs this stuff? ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <mailman.20146.1222694164.18990.help-gnu-emacs@gnu.org>]
* Re: Emacs Shell Ansi Colors [not found] ` <mailman.20146.1222694164.18990.help-gnu-emacs@gnu.org> @ 2008-09-29 14:22 ` Richard Riley 2008-09-29 14:57 ` Paul R 0 siblings, 1 reply; 14+ messages in thread From: Richard Riley @ 2008-09-29 14:22 UTC (permalink / raw) To: help-gnu-emacs Paul R <paul.r.ml@gmail.com> writes: > On Mon, 29 Sep 2008 12:48:53 +0200, "Lorenzo Isella" <lorenzo.isella@gmail.com> said: > Lorenzo> So it looks like there could be a problem with the TERM > Lorenzo> environment variable (but do not ask me what this stands > Lorenzo> for). I suppose (hope?) this is a one-liner for somebody > Lorenzo> really knowledgeable about emacs. Kind Regards > > Yes, probably. Just read your ~/.bashrc and /etc/profile. Both files > are source'd when your shell starts. I suspect something like an alias > from 'ls' to 'ls --color' to be set in a conditionnal switch. If your > term is dumb (env | grep TERM), the alias is not made. Just ensure by > the mean you want that this alias occurs even in emacs shell mode. I am not sure .bashrc is sourced when you start "shell". It doesnt seem to be here on my debian system. I think you need a .emacs_bash. Which is different from a few years ago. Maybe someone more knowledgeable can comment. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Shell Ansi Colors 2008-09-29 14:22 ` Richard Riley @ 2008-09-29 14:57 ` Paul R 0 siblings, 0 replies; 14+ messages in thread From: Paul R @ 2008-09-29 14:57 UTC (permalink / raw) To: Richard Riley; +Cc: help-gnu-emacs On Mon, 29 Sep 2008 16:22:57 +0200, Richard Riley <rileyrgdev@gmail.com> said: Richard> I am not sure .bashrc is sourced when you start "shell". It Richard> doesnt seem to be here on my debian system. I think you need Richard> a .emacs_bash. Which is different from a few years ago. Maybe Richard> someone more knowledgeable can comment. It is sourced here on my box with default settings, but as written above, your alias statement it probably bypassed because of dumb terminal. -- Paul ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2008-09-29 16:08 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-09-28 19:27 Emacs Shell Ansi Colors Lorenzo Isella 2008-09-28 21:19 ` Thierry Volpiatto [not found] ` <F725F550-369F-4C9A-BACA-D13E30D70FC2@Web.DE> 2008-09-29 10:48 ` Lorenzo Isella 2008-09-29 10:59 ` Thierry Volpiatto 2008-09-29 12:37 ` Paul R 2008-09-29 12:45 ` Paul R 2008-09-29 13:02 ` Lorenzo Isella 2008-09-29 13:40 ` Paul R 2008-09-29 14:32 ` Lorenzo Isella [not found] ` <mailman.20145.1222693383.18990.help-gnu-emacs@gnu.org> 2008-09-29 13:32 ` Andreas Politz 2008-09-29 16:08 ` Peter Dyballa [not found] ` <mailman.20143.1222686216.18990.help-gnu-emacs@gnu.org> 2008-09-29 14:14 ` Richard Riley [not found] ` <mailman.20146.1222694164.18990.help-gnu-emacs@gnu.org> 2008-09-29 14:22 ` Richard Riley 2008-09-29 14:57 ` Paul R
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).