GNU bug report logs -
#36742
25.2; shell-mode over TRAMP does not read remote history file as comint input ring
Previous Next
Reported by: Fan Yang <fan_yang <at> sjtu.edu.cn>
Date: Sat, 20 Jul 2019 14:42:01 UTC
Severity: normal
Found in version 25.2
Fixed in version 27.1
Done: Michael Albinus <michael.albinus <at> gmx.de>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 36742 in the body.
You can then email your comments to 36742 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#36742
; Package
emacs
.
(Sat, 20 Jul 2019 14:42:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Fan Yang <fan_yang <at> sjtu.edu.cn>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Sat, 20 Jul 2019 14:42:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* Bug description:
When using "M-x shell" on a remote file (say "/scp:yf <at> val17:"), a bash
is started at the server "val17" as the user "yf". But the "*shell*"
buffer is started with an empty input ring. It does not read bash
history file ("/scp:yf <at> val17:~/.bash_history") into comint input ring.
* What is expected:
When using "M-x shell" on a remote file (say "/scp:yf <at> val17:"), a bash
is started at the server "val17" as the user "yf". The "*shell*"
1. has the content of "/scp:yf <at> val17:~/.bash_history" as comint input
ring. And I can use "M-p" to insert previous command, use "M-r" to
isearch previous comamnd, etc.
2. the commands I have input in this "*shell*" will be appended to
"/scp:yf <at> val17:~/.bash_history" after shell exit.
Just like what "shell-mode" does for local shell.
* To re-produce:
Here is the content of the dribble file of my re-producing this issue
(control characters are replaced with caret)
--8<---------------cut here---------------start------------->8---
^X^F/scp:yf <at> val17:
^[xshell
^[p^[p^[p^X^Cyes
--8<---------------cut here---------------end--------------->8---
* My findings, if I may:
The code of shell-mode shows
--8<---------------cut here---------------start------------->8---
(setq comint-input-ring-file-name
(or (getenv "HISTFILE")
(cond ((string-equal shell "bash") "~/.bash_history")
((string-equal shell "ksh") "~/.sh_history")
(t "~/.history"))))
--8<---------------cut here---------------end--------------->8---
It seems remote file path is not considered.
* How big this issue is?
Have a shell history is convenient and saves a lot of typing repeated or
similar commands. Me and many of my colleagues use shell history
isearch heavily. It works very well for local shells. It is a little
bit disappointing that it does not work on remote shells.
Best Regards,
Fan
In GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21)
of 2017-09-23, modified by Debian built on lgw01-amd64-050
System Description: Ubuntu 18.04.2 LTS
Configured using:
'configure --build x86_64-linux-gnu --prefix=/usr
--sharedstatedir=/var/lib --libexecdir=/usr/lib
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --with-pop=yes
--enable-locallisppath=/etc/emacs25:/etc/emacs:/usr/local/share/emacs/25.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.2/site-lisp:/usr/share/emacs/site-lisp
--with-sound=alsa --without-gconf --build x86_64-linux-gnu
--prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --with-pop=yes
--enable-locallisppath=/etc/emacs25:/etc/emacs:/usr/local/share/emacs/25.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.2/site-lisp:/usr/share/emacs/site-lisp
--with-sound=alsa --without-gconf --with-x=yes --with-x-toolkit=gtk3
--with-toolkit-scroll-bars 'CFLAGS=-g -O2
-fdebug-prefix-map=/build/emacs25-jYekUr/emacs25-25.2+1=. -fstack-protector-strong
-Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
-D_FORTIFY_SOURCE=2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro''
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11
Important settings:
value of $LC_MONETARY: en_US.UTF-8
value of $LC_NUMERIC: en_US.UTF-8
value of $LC_TIME: en_US.UTF-8
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode easymenu
cl-loaddefs pcase cl-lib mail-prsvr mail-utils term/xterm xterm
time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote dbusbind inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)
Memory information:
((conses 16 90407 5144)
(symbols 48 19870 0)
(miscs 40 41 96)
(strings 32 14595 4563)
(string-bytes 1 413565)
(vectors 16 9720)
(vector-slots 8 385876 17362)
(floats 8 166 540)
(intervals 56 245 0)
(buffers 976 18))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#36742
; Package
emacs
.
(Mon, 22 Jul 2019 11:13:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 36742 <at> debbugs.gnu.org (full text, mbox):
Fan Yang <fan_yang <at> sjtu.edu.cn> writes:
Hi Fan,
> * Bug description:
>
> When using "M-x shell" on a remote file (say "/scp:yf <at> val17:"), a bash
> is started at the server "val17" as the user "yf". But the "*shell*"
> buffer is started with an empty input ring. It does not read bash
> history file ("/scp:yf <at> val17:~/.bash_history") into comint input ring.
>
> * What is expected:
>
> When using "M-x shell" on a remote file (say "/scp:yf <at> val17:"), a bash
> is started at the server "val17" as the user "yf". The "*shell*"
> 1. has the content of "/scp:yf <at> val17:~/.bash_history" as comint input
> ring. And I can use "M-p" to insert previous command, use "M-r" to
> isearch previous comamnd, etc.
> 2. the commands I have input in this "*shell*" will be appended to
> "/scp:yf <at> val17:~/.bash_history" after shell exit.
> Just like what "shell-mode" does for local shell.
I've fixed this in the Emacs repository, commit 7f95d2d407. It works as
expected, but you shall be aware that the history file contains also the
commands Tramp has sent in the background.
You shall also set tramp-histfile-override to nil in order to get the
expected history file.
Do you have a chance to test with a recent Emacs 27.0.50?
> Best Regards,
> Fan
Best regards, Michael.
bug Marked as fixed in versions 27.1.
Request was from
Michael Albinus <michael.albinus <at> gmx.de>
to
control <at> debbugs.gnu.org
.
(Mon, 22 Jul 2019 11:13:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#36742
; Package
emacs
.
(Tue, 23 Jul 2019 02:03:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 36742 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi Michael!
I have cloned the git repo and tested your commit. It works well in my
environment!
> ...but you shall be aware that the history file contains also the
> commands Tramp has sent in the background.
I see. It is reasonable and acceptable.
> You shall also set tramp-histfile-override to nil in order to get the
> expected history file.
OK, thanks for reminding~
Fan
> 在 2019年7月22日,19:11,Michael Albinus <michael.albinus <at> gmx.de> 写道:
>
> Fan Yang <fan_yang <at> sjtu.edu.cn <mailto:fan_yang <at> sjtu.edu.cn>> writes:
>
> Hi Fan,
>
>> * Bug description:
>>
>> When using "M-x shell" on a remote file (say "/scp:yf <at> val17:"), a bash
>> is started at the server "val17" as the user "yf". But the "*shell*"
>> buffer is started with an empty input ring. It does not read bash
>> history file ("/scp:yf <at> val17:~/.bash_history") into comint input ring.
>>
>> * What is expected:
>>
>> When using "M-x shell" on a remote file (say "/scp:yf <at> val17:"), a bash
>> is started at the server "val17" as the user "yf". The "*shell*"
>> 1. has the content of "/scp:yf <at> val17:~/.bash_history" as comint input
>> ring. And I can use "M-p" to insert previous command, use "M-r" to
>> isearch previous comamnd, etc.
>> 2. the commands I have input in this "*shell*" will be appended to
>> "/scp:yf <at> val17:~/.bash_history" after shell exit.
>> Just like what "shell-mode" does for local shell.
>
> I've fixed this in the Emacs repository, commit 7f95d2d407. It works as
> expected, but you shall be aware that the history file contains also the
> commands Tramp has sent in the background.
>
> You shall also set tramp-histfile-override to nil in order to get the
> expected history file.
>
> Do you have a chance to test with a recent Emacs 27.0.50?
>
>> Best Regards,
>> Fan
>
> Best regards, Michael.
[Message part 2 (text/html, inline)]
Reply sent
to
Michael Albinus <michael.albinus <at> gmx.de>
:
You have taken responsibility.
(Tue, 23 Jul 2019 07:09:03 GMT)
Full text and
rfc822 format available.
Notification sent
to
Fan Yang <fan_yang <at> sjtu.edu.cn>
:
bug acknowledged by developer.
(Tue, 23 Jul 2019 07:09:03 GMT)
Full text and
rfc822 format available.
Message #18 received at 36742-done <at> debbugs.gnu.org (full text, mbox):
Version: 27.1
Fan_Yang <Fan_Yang <at> sjtu.edu.cn> writes:
> Hi Michael!
Hi Fan,
> I have cloned the git repo and tested your commit. It works well in
> my environment!
Thanks for the feedback, I'm closing the bug.
> Fan
Best regards, Michael.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Tue, 20 Aug 2019 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 4 years and 262 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.