help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: changing comint-input-ring-file-name in process in shell


From: Kevin Rodgers
Subject: Re: changing comint-input-ring-file-name in process in shell
Date: Sat, 07 Nov 2009 00:10:28 -0700
User-agent: Thunderbird 2.0.0.23 (Macintosh/20090812)

Seb wrote:
Hi,

A program that runs in shell mode uses a local history file.  Therefore,
I'd like to set `comint-input-ring-file-name' to that file.  I use the
program by doing "M-x shell", and then start the program in the shell
buffer by typing its name and hitting ENTER.  The program's prompt
replaces the shell's at this point.  I thought that subsequently
evaluating the following in the shell buffer would allow me to cycle
through the local history file:

(setq comint-input-ring-file-name
      "/path/to/local/.bash_history"))

However, cycling with "M-p" or "M-n" cycles the input through the
initial `comint-input-ring-file-name' set by the shell buffer, in my
case ~/.bash_history since I'm using bash.  Doing "C-h v
comint-input-ring-file-name" does show the new value
("/path/to/loca/.bash_history"), so I don't understand what is going
on.  Any help would be appreciated.

The file is read once by shell-mode (not comint-mode), when you execute
`M-x shell'.  That is why the doc string for comint-input-ring-file-name
says "This variable is buffer-local, and is a good thing to set in mode hooks."

How about:

(let ((comint-input-ring-file-name "/path/to/local/.bash_history"))
  (shell))

--
Kevin Rodgers
Denver, Colorado, USA





reply via email to

[Prev in Thread] Current Thread [Next in Thread]