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