Подтвердить что ты не робот

Как открыть файлы в веб-браузерах (например, Firefox) в редакторах, таких как vim или emacs?

Как открыть файлы в браузерах (например, Firefox) в редакторах, таких как vim или emacs? Notepad ++ открыть файлы в браузерах, нажав Ctrl + Shift + Alt + X (Firefox). Есть ли способ сделать это в gVim или Emacs?

4b9b3361

Ответ 1

browse-url файл - это интерактивная скомпилированная функция Lisp в `Пролистать-url.el".

Он связан с <menu-bar> <HTML> <Load this Buffer in Browser>, C-c C-z v.

(browse-url-of-file &optional file)

Попросите WWW-браузер отобразить файл.
Отображение текущего файла буфера, если файл равен нулю или если он вызван в интерактивном режиме. Поверните имя файла в URL с функцией browse-url-file-url. Передайте URL-адрес в браузер, используя browse-url, тогда запустите browse-url-of-file-hook.

Ответ 2

В emacs я не думаю, что это встроено, я могу ошибаться, но если нет, это функция для этого:

(defun open-in-browser()
  (interactive)
  (let ((filename (buffer-file-name)))
    (browse-url (concat "file://" filename))))

Ответ 3

В gVim:

:!start cmd /c "C:\Users\pierre\AppData\Local\Google\Chrome\Application\chrome.exe" file:///"%:p""

Вам нужен файл://URI, чтобы указать, что он из файловой системы, это будет работать со всеми браузерами. %:p создает полный путь к файлу для текущего файла. Необходимы кавычки.

Просто сопоставьте это с тем, что вы выберете. Возможно, вам понадобится set shell=cmd.exe, если вы установили оболочку в bash или что-то еще.

В emacs (цитирование justinhj):

(defun open-in-browser()
  (interactive)
  (let ((filename (buffer-file-name)))
    (browse-url (concat "file://" filename))))

Ответ 4

По какой-то причине моя EmacsW32 на WinXP-установке продолжала отправлять директивы browse-url в оболочку с открытым файлом://в одиночку, и это не сработало так хорошо *. Отрезать его на коленях и изменить justin original, как показано ниже:

(defun open-in-browser()
"open buffer in browser, unless it is not a file. Then fail silently (ouch)."
  (interactive)
  (if (buffer-file-name)
      (let ((filename (buffer-file-name)))
        (shell-command (concat "start firefox.exe \"file://" filename "\"")))))

Требуется некоторое улучшение. Помимо замены вашего любимого браузера. d ** n вас, жесткое кодирование.

* Я думаю, что проблема заключалась в проверке системного типа в браузере-url-default-windows-browser, но не положительном.

Ответ 5

В зависимости от того, что вы хотите сделать с этим, вы можете подумать о Emacs + MozRepl, что в основном позволяет отправлять команды javascript в Firefox через telnet. К сожалению, я не могу написать elisp, чтобы сделать эту работу, но связанный трюк для перезагрузки веб-страниц из emacs показан Sard в Что в ваших .emacs?. Дополнительная информация об интеграции emacs и mozrepl из исходного источника, а также здесь для отличного трюка, который обновляет страницу в браузере при вводе в буфер emacs - это довольно приятно для получения мгновенной обратной связи при работе с html.

Я считаю, что то же самое будет работать с vim, но я использовал его только в emacs.

Ответ 6

Вы хотите открыть файл, который сейчас редактируется в веб-браузере?

В Vim используйте что-то вроде :!firefox %.

Изменить: Фактически вы можете использовать nmap <silent> <C-M-X> :!firefox %<CR>, чтобы заставить Vim действовать так же, как Notepad ++ (хотя это сопоставление не волнует, нажимаете ли вы сдвиг или нет).

Обратите внимание, что не каждый браузер фактически отображает содержимое файла при задании имени файла в командной строке; например Вместо этого Google Chrome откроет диалог "Сохранить как", как если бы вы загрузили этот файл. Если вы сомневаетесь, просмотрите ваши документы в браузере. Firefox будет "работать".

Ответ 7

Я делаю это как функцию Elisp, используя команду оболочки xdg-open.
Затем я определяю ключ в html-режиме для вызова функции.
Вам нужно добавить материал в файл .emacs.

(defun open-html()
  "Get the HTML file path & open it"
  (interactive)
  (let (html-file-path)
    (setq html-file-path (buffer-file-name))
    (shell-command (format "xdg-open '%s'" html-file-path)))
)