首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有条件地设置``dired挂牌-本地交换机,但远程“set‘

问有条件地设置``dired挂牌-本地交换机,但远程“set‘
EN

Stack Overflow用户
提问于 2014-04-09 18:41:18
回答 1查看 493关注 0票数 2

以下设置在本地非常有效(OSX),但阻止Emacs在远程服务器(Linux)上正确显示目录/文件:

代码语言:javascript
复制
(setq dired-listing-switches "-aBhl --group-directories-first")

我登录到远程服务器时:

代码语言:javascript
复制
C-x C-f /ssh:user@server:/home/user/

因此,需要在本地设置dired-listing-switches,但需要远程设置nil。如何以编程方式完成这一任务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-09 21:20:55

如果您这样做只是为了交互式使用dired,而不是对函数dired进行编程调用,那么您不需要(也不应该)建议dired。

相反,只需定义一个新命令my-dired,它使用file-remote-p测试其arg,然后使用适当的开关调用dired。然后将dired重新映射到您的命令中,以获得键绑定。同样,对于dired-other-window也是如此。

如果您希望允许类似于dired的前缀arg行为,您也可以这样做。例如,如果current-prefix-arg然后读取和使用用户提供的开关,则按上述方式进行:测试arg并相应设置开关。

例如(未经测试):

代码语言:javascript
复制
(defun my-dired (dirname &optional switches)
  "..."
  (interactive
   (let* ((dir  (if (next-read-file-uses-dialog-p)
                    (read-directory-name "Dired (directory): "
                                         nil default-directory nil)
                  (read-file-name "Dired (directory): "
                                  nil default-directory nil)))
          (sws  (if current-prefix-arg
                    (read-string "Dired listing switches: "
                                 dired-listing-switches)
                  (if (file-remote-p dir)
                      "-al"
                    "-aBhl --group-directories-first"))))
     (list dir sws)))
  (switch-to-buffer (dired-noselect dirname switches)))

记住,建议会改变您建议的功能。问问自己,你是一般地想要这样做,还是只是为了交互式地使用这个函数。如果是后者,则通常不需要或希望通知该函数--只需定义和使用不同的命令即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22971299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档