emacs 如何为文件选择"打开方式"?



使用emacs中的dired,我想打开(即.png)任何带有查看器列表的文件(通过键入可选择)为'open-with'方式。。。

我该怎么做?

谢谢你,

Steve,

您应该使用&以异步方式运行命令:将在命令运行时冻结Emacs。

自定义dired-guess-shell-alist-user作为常见扩展的猜测列表:

(setq dired-guess-shell-alist-user
      '(("\.pdf\'" "evince" "okular")
        ("\.eps\'" "evince")
        ("\.jpe?g\'" "eog")
        ("\.png\'" "eog")
        ("\.gif\'" "eog")
        ("\.xpm\'" "eog")
        ("\.csv\'" "libreoffice")
        ("\.tex\'" "pdflatex" "latex")
        ("\.\(?:mp4\|mkv\|avi\|flv\|ogv\)\'" "vlc")
        ("\.\(?:mp3\|flac\)\'" "rhythmbox")
        ("\.html?\'" "firefox")
        ("\.cue?\'" "audacious")))

列表中的第一项将是默认选项,例如evince在CCD_ 3上。您可以使用导航到其他选项M-n/M-p

如果你在Linux上,你可以尝试我用于此任务的命令:

(defvar dired-filelist-cmd
  '(("vlc" "-L")))
(defun dired-start-process (cmd &optional file-list)
  (interactive
   (let ((files (dired-get-marked-files t current-prefix-arg)))
     (list
      (dired-read-shell-command "& on %s: " current-prefix-arg files)
      files)))
  (apply
   #'start-process
   (list cmd nil shell-file-name shell-command-switch
         (format "nohup 1>/dev/null 2>/dev/null %s "%s""
                 (if (> (length file-list) 1)
                     (format "%s %s"
                             cmd
                             (cadr (assoc cmd dired-filelist-cmd)))
                   cmd)
                 (mapconcat #'expand-file-name file-list "" "")))))

它比dired-do-async-shell-command更好&,因为即使关闭,打开的文件也会持续存在打开它们的Emacs。我倾向于比平时更多地关闭Emacs,因为我经常在测试东西,重新启动比重置更快默认状态。

如果你可以不使用查看器列表,你可以点击while point在dired中的一个文件上,并且您可以键入命令的名称(如果您的Emacs足够新,则使用tab完成)。dired将运行该命令,并在末尾添加文件名。

如果文件名不应该在命令的末尾,请将*添加到它应该在的位置,dired会将其放在那里。

例如,点击foo.png上,只键入bar将运行bar foo.png,而键入bar * --baz将运行bar foo.png --baz

对于大多数GNU/linux台式机,您可以使用中介程序包,该包使用Freedesktop mime类型规范来自动显示适合打开某个特定扩展名文件的程序列表。

相关内容

  • 没有找到相关文章

最新更新