From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.devel Subject: Re: Tramp and `dired-listing-switches' Date: Sat, 09 Dec 2023 15:29:54 +0100 Message-ID: <87lea34ffh.fsf@dataswamp.org> References: <8734we5aom.fsf@dataswamp.org> <878r65nijf.fsf@gmx.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9158"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:xbiZxxdbYWZiST0YCvfJJlpnE2A= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Dec 09 15:42:29 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rByXE-0002AZ-Tr for ged-emacs-devel@m.gmane-mx.org; Sat, 09 Dec 2023 15:42:28 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rByWQ-00056o-Pl; Sat, 09 Dec 2023 09:41:39 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rByLS-0002H6-K8 for emacs-devel@gnu.org; Sat, 09 Dec 2023 09:30:26 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rByLP-0002pO-BW for emacs-devel@gnu.org; Sat, 09 Dec 2023 09:30:18 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1rByLJ-0007ER-Er for emacs-devel@gnu.org; Sat, 09 Dec 2023 15:30:09 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sat, 09 Dec 2023 09:41:34 -0500 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:313634 Archived-At: Michael Albinus wrote: >> I'd like one setting for `dired-listing-switches' locally >> on Debian and one remotely with Tramp, on an >> OpenBSD system. >> >> If I use Tramp with the Debian setting (below), and list >> files on the remote server I don't get any listing since >> the options does not compute on what is another ls(1), not >> GNU ls but the BSD (OpenBSD?) one. > > The canonical way to achieve this are connection-local > variables. Unfortunately, dired does not support them (shell > we extend this?). Therefore, the Tramp manual describes an > alternative: > > • Remote host does not understand default options for directory > listing > > Emacs computes the ‘dired’ options based on the local host but if > the remote host cannot understand the same ‘ls’ command, then set > them with a hook as follows: > > (add-hook > 'dired-before-readin-hook > (lambda () > (when (file-remote-p default-directory) > (setq dired-actual-switches "-al")))) That only worked one time? But I re-wrote it like this, now it works, thanks! (setq dired-listing-switches "-AGlX --group-directories-first -I \"*.meta\" -I \"#*#\" -I \"*.elc\"") (add-hook 'dired-before-readin-hook (lambda () (if (file-remote-p default-directory) (setq dired-actual-switches "-Al") (setq dired-actual-switches dired-listing-switches) ))) (Is there a typo in `dired-before-readin-hook' BTW?) > You might extend the lambda to check for the host name in > default-directory, and apply this only for matching hosts. > Something like > > (when (string-equal (file-remote-p default-directory 'host) > "machine.example") (file-remote-p default-directory 'host) is nil locally but the remote host remotely, so that would work as well. But not necessary if one only has one local system and one remote server, right? -- underground experts united https://dataswamp.org/~incal