¿Cómo puedo usar Emacs para editar preguntas, respuestas y comentarios aquí?

58

Emacs como cliente de StackExchange?

¿Cómo puedo usar Emacs para editar preguntas, respuestas y comentarios aquí en el sitio Emacs Stack Exchange?

En términos generales, ¿qué métodos posibles existen?

Mata y tira

Esto funciona, pero el método es tan engorroso que no vale la pena para publicaciones cortas o incluso publicaciones medianas.

Plugin para el navegador

Existe un complemento de navegador relativamente conocido para Firefox que le permite empujar el contenido de texto de un <textarea>lado a otro entre el editor que elija. Supongo que funciona a través de archivos temporales y no lo he evaluado. El uso del complemento con emacs se ha discutido en StackOverflow . Ya no uso Chrome.

API de intercambio de pila

Existe algo llamado Modo de intercambio de pila para Emacs . No lo he evaluado. La fuente no es demasiado obsoleta, pero el proyecto obviamente no está completo.

¿Otras opciones?

Busco sugerencias!

Motivaciones

Independientemente del método que se use para editar preguntas, respuestas y comentarios en emacs, estoy seguro de que hacerlo nos permitirá realizar algunas tareas comunes con facilidad:

  • Adherirse a las convenciones . Algo así M-x record-keystrokes-and-write-them-out-as-markdown RET C-x C-s C-g RET... podría producir:

    C-x C-s C-g

  • Pregunte qué significa un mensaje de error: M-x post-region-on-emacs-se-as-question RET...

daveloyall
fuente
Deliberadamente no mencioné en mi pregunta que soy un usuario de Linux. ¿Debería? Por supuesto, yo uso SE con mayor frecuencia cuando estoy en el trabajo, donde hago mi toda la navegación de internet en un host y emacs trabajo de Windows en una máquina virtual Linux ...
daveloyall
Chrome Edit-with-emacs no tiene errores para mí ...
mankoff
¿El usuario que eliminó su respuesta consideraría volver a colocarla? Había una función útil de elisp allí. ¿Las respuestas no aceptadas cuentan contra un usuario de alguna manera que no conozco?
daveloyall
@daveloyall: Estoy interesado en los problemas que tuvo con la solución de área de texto de Chrome ( revelación , soy el responsable de Editar con Emacs). Con bastante gusto edito publicaciones de StackExchange con él y Markdown-mode.
stsquad
@stsquad Bueno, no estoy seguro. Ya no lo tengo instalado, así que no estoy seguro de qué versión utilicé. Ok, investigué un poco (solo un poco) y descubrí que muchas de las líneas de asunto aquí github.com/stsquad/emacs_chrome/issues suenan como el tipo de cosas que encontré. Básicamente, si el JavaScript en algún sitio puede hacer que no funcione, no es lo que estoy buscando ... De todos modos, dejé de usar Chrome cuando una actualización deshabilitó permanentemente las extensiones que no son de la tienda web, como las pequeñas que escribí localmente.
daveloyall

Respuestas:

33

Vea el proyecto Stack Exchange para Emacs . Desde su página:

SX será un modo Stack Exchange completo para GNU Emacs 24+. Usando la API oficial, nuestro objetivo es crear una experiencia más versátil para la red Stack Exchange dentro de Emacs.

captura de pantalla

dharmatech
fuente
Artur Malabarba ha prometido escribir un modo para ello, consulte: twitter.com/bruceconnor/status/520692859109117952 . Recomendaría mantenerlo así :)
Lee H
@Malabarba ¡Te estoy sujetando a eso! :) ... De hecho, si esta idea tuviera un repositorio que la respaldara, estaría muy tentado a aceptarla como respuesta. No es que sea la única fuente de puntos de Internet ni nada ...
daveloytodo el
Me atendré a eso. :-) ETA actual es alrededor de Navidad.
Malabarba
1
¿Cómo no he visto esta Q? : D Curiosamente, el paquete funciona de fábrica en 24.3. @dharmatech: ¿te importaría publicar eso como un problema ?
Sean Allred
3
Wow, solo lea esto, instalé sx.el desde melpa, lo ejecuté y aquí estoy escribiendo un comentario usándolo. ¡Fantástico!
Tim X
11

edit-serverpodría ser de alguna ayuda. Le permite editar cualquier campo de texto dentro de Chrome con Emacs y luego enviar el texto de vuelta al navegador con el mínimo esfuerzo. No es exactamente lo que querías, pero es una mejora.

Jaseem
fuente
cuando dices edit-server te refieres al complemento que funciona con Edit with Emacs en navegadores basados ​​en Chrom (ium)?
stsquad
7

Estoy usando w3mpara enviar esta respuesta desde Emacs. Los sitios de StackExchange no se ven muy bien en w3m, pero enviar formularios funciona bien. (No he podido enviar una respuesta con el nuevo ewwnavegador).

En realidad, no recomiendo hacer esto, porque parece bastante doloroso en comparación con el uso de un navegador normal con enlaces tipo Emacs (p. Ej., Una clave para Firefox).

EDITAR : tuve que resolver un captcha para enviar mi respuesta. Desafortunadamente, no se mostró captcha en el búfer w3m, así que tuve que visitar la URL de captcha en un navegador tradicional.

rekado
fuente
5

Siempre he encontrado que kill y yank son suficientes, pero tengo una función de copia específica de stackoverflow que uso.

(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"))))

Lo que requiere cosas como:

(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))))

y convertirlos en:

<!--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))))

Alternativamente, encuentro que las extensiones de Chrome Editar con Emacs son muy agradables.

Jordon Biondo
fuente
2
Sugeriría Editar con Emacs como respuesta separada. Y también me parece agradable, y no tiene errores.
mankoff
5

Keysnail implementa la combinación de teclas de Emacs para Firefox. También sirve como plataforma para complementos, ampliando la arquitectura de Firefox de una manera distintivamente emacsesca.

Chen Bin
fuente
1
Vale la pena mencionar que hay un complemento llamado K2Emacs para Keysnail, que le permite editar áreas de texto en un programa externo (por defecto Emacs).
Omar
1

He estado usando Firemacs y estoy muy contento con él. Es una extensión de Firefox que le proporciona la combinación de teclas emacs. Es compatible con muchas combinaciones de teclas, incluidos kill y yank.

Se puede instalar desde aquí .

Sibi
fuente
1

Puede usar el complemento Firefox It's All Text . Esto agregará un pequeño botón "editar" en la parte inferior de cualquier área de texto. Al hacer clic en él (o al usar una tecla de acceso rápido, predeterminado C-S-v) se activa Emacs con el contenido en un búfer temporal. Escriba el búfer (repetidamente) y las actualizaciones del área de texto.

Mi configuración es simplemente configurar Editor en /usr/bin/emacsclient.

Micah Elliott
fuente