Как открыться, пользовательская система предпочла редактора для данного файла?

Мне удалось решить проблему, сначала я использовал этот файл:

http://download-mirror.savannah.gnu.org/releases/geiser/0.10/geiser-0.10 .tar.gz

Он сломан, я всегда получаю:

"csi exited with status 70"

Итак, я скачал версию git:

git clone git://git.sv.gnu.org/geiser.git

Так что я пытаюсь начать the geise:

M-x run-geiser RET chicken RET

И я получаю ошибку:

"car: Symbol’s function definition is void: seq-filter"

Тогда что-то происходит в файле "geiser / elisp / geiser-chicken.el", они забыли добавьте строку:

(require 'seq)

Теперь это работает.

! Важно: В emacs < = версия 24 "seq-filter" даже не существует. Я не знаю точную версию, в которую был добавлен «seq-filter», из того, что я видел в документации Emacs, не документировано версией, по крайней мере, я ее не нашел, поэтому не очень хорошо знаю, но она была протестирована что в Emacs 24 такой библиотеки нет.

12
задан golimar 24 May 2016 в 17:09
поделиться

3 ответа

Кажется этим, если Вы не можете использовать java.awt.Desktop необходимо различать Ose: Windows:

RUNDLL32.EXE SHELL32.DLL,OpenAs_RunDLL <file.ext>

Linux:

edit <file.ext>

Mac:

open <file.ext>

HTH. Очевидно, это не очень портативно...

7
ответ дан 2 December 2019 в 19:56
поделиться

Проверьте java.awt. Объект рабочего стола. В Вашем случае Вы хотите вызвать edit()

Если Вы хотите удостовериться, что данный поддержка платформ этот вызов, то можно сделать что-то как следующее (я не протестировал этот код):

public boolean editFile(final File file) {
  if (!Desktop.isDesktopSupported()) {
    return false;
  }

  Desktop desktop = Desktop.getDesktop();
  if (!desktop.isSupported(Desktop.Action.EDIT)) {
    return false;
  }

  try {
    desktop.edit(file);
  } catch (IOException e) {
    // Log an error
    return false;
  }

  return true;
}
7
ответ дан 2 December 2019 в 19:56
поделиться

Это не является межплатформенным, но на Mac OS X можно сделать

Runtime.getRuntime().exec("open filename");

open(1) исполняемый файл использует LaunchServices для выбора правильной программы для выполнения и затем использует это для открытия названного файла filename.

2
ответ дан 2 December 2019 в 19:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: