Как я могу использовать Emacs для редактирования вопросов, ответов и комментариев здесь?

58

Emacs как клиент StackExchange?

Как я могу использовать Emacs для редактирования вопросов, ответов и комментариев здесь, на сайте Emacs Stack Exchange?

В общих чертах, какие возможные методы существуют?

Убить и дергать

Это работает, но метод настолько громоздок, что не стоит его для коротких постов или даже постов средней длины.

Плагин для браузера

Существует достаточно хорошо известный плагин для браузера Firefox, который позволяет вам перемещать текстовое содержимое любого <textarea>вперед и назад между редактором по вашему выбору. Я предполагаю, что это работает через временные файлы, и я не оценил это. Использование плагина с emacs обсуждалось на StackOverflow . Я больше не использую Chrome.

API стека Exchange

Существует нечто, называемое режимом обмена стека для Emacs . Я не оценил это. Источник не слишком устаревший, но проект явно не завершен.

Другие опции?

Я ищу предложения!

Мотивы

Независимо от того, какой метод используется для редактирования вопросов, ответов и комментариев в emacs, я уверен, что это позволит нам с легкостью выполнять некоторые общие задачи:

  • Придерживайтесь соглашений . Нечто подобное M-x record-keystrokes-and-write-them-out-as-markdown RET C-x C-s C-g RET... может привести к:

    C-x C-s C-g

  • Спросите, что означает сообщение об ошибке: M-x post-region-on-emacs-se-as-question RET...

daveloyall
источник
Я сознательно не упомянул в своем вопросе, что я пользователь Linux. Нужно ли мне? Конечно, я чаще всего использую SE, когда я на работе, где я делаю все свои просмотры интернета на хосте Windows, а emacs работает на виртуальной
машине
Chrome Edit-with-emacs для меня не
глючит
Будет ли пользователь, который удалил свой ответ, вернуть его обратно? Там была полезная функция elisp. Учитываются ли непринятые ответы в отношении пользователя каким-то образом, о котором я не знаю?
Давелойалл
@daveloyall: мне интересно, какие у вас проблемы с решением Chrome textarea ( раскрытие. Я поддерживаю Edit с Emacs). Я с удовольствием редактирую с ним сообщения StackExchange и markdown-mode.
Stsquad
@stsquad Ну, я не уверен. У меня его больше не установлено, поэтому я не уверен, какую версию я использовал. Хорошо, я немного покопался (только немного) и обнаружил, что многие из сюжетных линий здесь github.com/stsquad/emacs_chrome/issues звучат как то, с чем я столкнулся. В принципе, если javascript на каком-то сайте может заставить его не работать, это не то, что я ищу ... Во всяком случае, я прекратил использовать Chrome, когда обновление навсегда отключило расширения, не относящиеся к веб-магазину, как те, которые я написал локально.
Давелоял

Ответы:

33

Смотрите проект Stack Exchange for Emacs . Со своей страницы:

SX будет полнофункциональным режимом обмена стека для GNU Emacs 24+. Используя официальный API, мы стремимся создать более универсальный интерфейс для сети Stack Exchange в самом Emacs.

Скриншот

dharmatech
источник
Артур Малабарба пообещал написать для него режим, см .: twitter.com/bruceconnor/status/520692859109117952 Я бы порекомендовал держать его на нем :)
Lee H
@ Malabarba Я держу тебя к этому! :) ... На самом деле, если бы эта идея поддерживала репо, я бы очень хотел принять ее как ответ. Не то чтобы я был единственным источником интернет-очков или чего-то еще ...
Давелоялл
Я буду придерживаться этого. :-) текущее время ETA около Рождества.
Малабарба
1
Как я не видел этот вопрос? : D Интересно, что пакет работает из коробки на 24.3. @dharmatech - не могли бы вы опубликовать это как проблему ?
Шон Оллред
3
Ничего себе, просто прочитайте это, установили sx.el из melpa, запустили его и здесь я пишу комментарий, используя его. Фантастика!
Тим Х
11

edit-serverможет быть какой-то помощи. Он позволяет вам редактировать любое текстовое поле внутри Chrome с помощью Emacs, а затем отправлять текст обратно в браузер с минимальными усилиями. Не совсем то, что вы хотели, но это улучшение.

Jaseem
источник
когда вы говорите, что edit-server означает для вас плагин, который работает с Edit с Emacs в браузерах на основе Chrom (ium)?
Stsquad
@stsquad Да. Это chrome.google.com/webstore/detail/edit-with-emacs/…
Джасим
7

Я использую, w3mчтобы отправить этот ответ из Emacs. Сайты StackExchange не очень хорошо выглядят в w3m, но отправка форм работает отлично. (Я не смог отправить ответ в новом ewwбраузере.)

Я не рекомендую делать это на самом деле, потому что это кажется довольно болезненным по сравнению с использованием обычного браузера с привязками, подобными Emacs (например, keynail for Firefox).

РЕДАКТИРОВАТЬ : Мне пришлось решить капчу, чтобы представить свой ответ. К сожалению, в буфере w3m капча не отображалась, поэтому мне пришлось посетить URL-адрес капчи в традиционном браузере.

rekado
источник
5

Я всегда считал, что kill и yank достаточны, но у меня есть функция копирования, специфичная для stackoverflow.

(defun copy-el-for-so (beg end)
  "copy region and format for SO."
  (interactive "r")
  (let ((text (buffer-substring-no-properties beg end)))
    (with-temp-buffer
      (insert "<!--Language: lang-lisp -->\n")
      (replace-string "\n" "\n    " nil (point)
                      (progn
                        (insert "\n" text)
                        (point)))
      (copy-region-as-kill (point-min) (point-max))
      (message "copied"))))

Который принимает такие вещи, как:

(defun process-exit-code-and-output (program &rest args)
  "Run PROGRAM with ARGS and return the exit code and output in a list."
  (with-temp-buffer
    (list (apply 'call-process program nil (current-buffer) nil args)
          (buffer-string))))

и превратить их в:

<!--Language: lang-lisp -->

    (defun process-exit-code-and-output (program &rest args)
      "Run PROGRAM with ARGS and return the exit code and output in a list."
      (with-temp-buffer
        (list (apply 'call-process program nil (current-buffer) nil args)
              (buffer-string))))

В качестве альтернативы я нахожу Chrome-расширения Edit With Emacs очень хорошими.

Джордон Биондо
источник
2
Я бы предложил Редактировать с Emacs как отдельный ответ. И я нахожу это хорошим, и не глючит.
mankoff
5

Keysnail реализует привязки клавиш Emacs для Firefox. Он также служит платформой для плагинов, расширяя архитектуру Firefox исключительно в духе Emacsesque.

чен бен
источник
1
Стоит отметить, что существует плагин под названием K2Emacs для Keysnail, который позволяет редактировать текстовые области во внешней программе (по умолчанию Emacs).
Омар
1

Я использовал Firemacs и был очень доволен этим. Это расширение Firefox, которое дает вам привязку клавиш в emacs. Он поддерживает множество комбинаций клавиш, включая kill и yank.

Его можно установить отсюда .

Сиби
источник
1

Вы можете использовать дополнение Firefox « Это весь текст» . Это добавит крошечную кнопку «редактировать» внизу любой текстовой области. Щелчок по нему (или использование горячей клавиши по умолчанию C-S-v) запускает Emacs с содержимым во временном буфере. Запишите буфер (повторно) и текстовую область обновлений.

Мой конфиг для этого просто установка редактора на /usr/bin/emacsclient.

Мика Эллиотт
источник