unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#36742: 25.2; shell-mode over TRAMP does not read remote history file as comint input ring
@ 2019-07-20 14:30 Fan Yang
  2019-07-22 11:11 ` Michael Albinus
  0 siblings, 1 reply; 4+ messages in thread
From: Fan Yang @ 2019-07-20 14:30 UTC (permalink / raw)
  To: 36742


* Bug description:

When using "M-x shell" on a remote file (say "/scp:yf@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@val17:~/.bash_history") into comint input ring.

* What is expected:

When using "M-x shell" on a remote file (say "/scp:yf@val17:"), a bash
is started at the server "val17" as the user "yf".  The "*shell*"
1. has the content of "/scp:yf@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@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@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))





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#36742: 25.2; shell-mode over TRAMP does not read remote history file as comint input ring
  2019-07-20 14:30 bug#36742: 25.2; shell-mode over TRAMP does not read remote history file as comint input ring Fan Yang
@ 2019-07-22 11:11 ` Michael Albinus
  2019-07-23  1:55   ` Fan_Yang
  0 siblings, 1 reply; 4+ messages in thread
From: Michael Albinus @ 2019-07-22 11:11 UTC (permalink / raw)
  To: Fan Yang; +Cc: 36742

Fan Yang <fan_yang@sjtu.edu.cn> writes:

Hi Fan,

> * Bug description:
>
> When using "M-x shell" on a remote file (say "/scp:yf@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@val17:~/.bash_history") into comint input ring.
>
> * What is expected:
>
> When using "M-x shell" on a remote file (say "/scp:yf@val17:"), a bash
> is started at the server "val17" as the user "yf".  The "*shell*"
> 1. has the content of "/scp:yf@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@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.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#36742: 25.2; shell-mode over TRAMP does not read remote history file as comint input ring
  2019-07-22 11:11 ` Michael Albinus
@ 2019-07-23  1:55   ` Fan_Yang
  2019-07-23  7:08     ` Michael Albinus
  0 siblings, 1 reply; 4+ messages in thread
From: Fan_Yang @ 2019-07-23  1:55 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 36742

[-- Attachment #1: Type: text/plain, Size: 1876 bytes --]

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@gmx.de> 写道:
> 
> Fan Yang <fan_yang@sjtu.edu.cn <mailto:fan_yang@sjtu.edu.cn>> writes:
> 
> Hi Fan,
> 
>> * Bug description:
>> 
>> When using "M-x shell" on a remote file (say "/scp:yf@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@val17:~/.bash_history") into comint input ring.
>> 
>> * What is expected:
>> 
>> When using "M-x shell" on a remote file (say "/scp:yf@val17:"), a bash
>> is started at the server "val17" as the user "yf".  The "*shell*"
>> 1. has the content of "/scp:yf@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@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.


[-- Attachment #2: Type: text/html, Size: 12907 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#36742: 25.2; shell-mode over TRAMP does not read remote history file as comint input ring
  2019-07-23  1:55   ` Fan_Yang
@ 2019-07-23  7:08     ` Michael Albinus
  0 siblings, 0 replies; 4+ messages in thread
From: Michael Albinus @ 2019-07-23  7:08 UTC (permalink / raw)
  To: Fan_Yang; +Cc: 36742-done

Version: 27.1

Fan_Yang <Fan_Yang@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.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-07-23  7:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-20 14:30 bug#36742: 25.2; shell-mode over TRAMP does not read remote history file as comint input ring Fan Yang
2019-07-22 11:11 ` Michael Albinus
2019-07-23  1:55   ` Fan_Yang
2019-07-23  7:08     ` Michael Albinus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).