Come posso usare Emacs per modificare domande, risposte e commenti qui?


58

Emacs come client StackExchange?

Come posso usare Emacs per modificare domande, risposte e commenti qui sul sito Emacs Stack Exchange?

In generale, quali possibili metodi esistono?

Uccidi e strattona

Funziona, ma il metodo è così ingombrante che non vale la pena per post brevi o anche post di media lunghezza.

Plugin del browser

Esiste un plug-in del browser relativamente ben noto per Firefox che consente di spingere il contenuto del testo di qualsiasi <textarea>avanti e indietro tra l'editor di propria scelta. Presumo che funzioni tramite file temporanei e non l'ho valutato. L'uso del plugin con emacs è stato discusso su StackOverflow . Non uso più Chrome.

API Exchange Stack

Esiste qualcosa chiamato Stack Exchange Mode for Emacs . Non l'ho valutato. La fonte non è troppo vecchia, ma ovviamente il progetto non è completato.

Altre opzioni?

Cerco suggerimenti!

motivazioni

Indipendentemente dal metodo utilizzato per modificare domande, risposte e commenti in emacs, sono sicuro che farlo ci consentirà di svolgere alcune attività comuni con facilità:

  • Aderire alle convenzioni . Qualcosa come M-x record-keystrokes-and-write-them-out-as-markdown RET C-x C-s C-g RET... potrebbe produrre:

    C-x C-s C-g

  • Chiedi cosa significa un messaggio di errore: M-x post-region-on-emacs-se-as-question RET...


Nella mia domanda non ho menzionato deliberatamente che sono un utente Linux. Dovrei? Certo, utilizzo SE molto spesso quando sono al lavoro, dove
eseguo

Chrome Edit-with-emacs non è un bug per me ...
mankoff,

L'utente che ha eliminato la sua risposta considererebbe la possibilità di rimetterla? C'era un'utile funzione elisp in là. Le risposte non accettate contano per un utente in un modo che non conosco?
daveloyall,

@daveloyall: sono interessato a quali problemi hai riscontrato con la soluzione textarea di Chrome ( informativa che sono il responsabile di Edit with Emacs). Modifico abbastanza felicemente i post di StackExchange con esso e la modalità markdown.
stsquad,

@stsquad Beh, non ne sono sicuro. Non l'ho più installato, quindi non sono sicuro della versione che ho usato. Ok, ho scavato un po '(solo un po') e ho scoperto che molte delle linee tematiche qui github.com/stsquad/emacs_chrome/issues sembrano il tipo di cosa che ho incontrato. Fondamentalmente se il javascript su alcuni siti può farlo non funzionare, non è quello che sto cercando ... Comunque, ho smesso di usare Chrome quando un aggiornamento disabilitava permanentemente le estensioni non del negozio web, come i piccoli che ho scritto localmente.
Daveloyall,

Risposte:


33

Vedi il progetto Stack Exchange for Emacs . Dalla loro pagina:

SX sarà una modalità Stack Exchange completa per GNU Emacs 24+. Utilizzando l'API ufficiale, miriamo a creare un'esperienza più versatile per la rete Stack Exchange all'interno dello stesso Emacs.

immagine dello schermo


Artur Malabarba ha promesso di scrivere una modalità per questo, vedi: twitter.com/bruceconnor/status/520692859109117952 Consiglierei di tenerlo lì :)
Lee H

@Malabarba Ti sto trattenendo! :) ... In effetti, se questa idea avesse un repository a supporto, sarei molto tentato di accettarlo come risposta. Non che io sia l'unica fonte di punti internet o altro ...
Daveloyall,

Mi atterrò. :-) l'attuale ETA è intorno a Natale.
Malabarba,

1
Come non ho visto questo Q? : D È interessante notare che il pacchetto funziona immediatamente 24.3. @dharmatech - ti dispiacerebbe pubblicarlo come problema ?
Sean Allred,

3
Wow, ho appena letto questo, installato sx.el da melpa, l'ho eseguito e qui sto scrivendo un commento usando. Fantastico!
Tim X

11

edit-serverpotrebbe essere di qualche aiuto. Ti consente di modificare qualsiasi campo di testo all'interno di Chrome con Emacs e quindi di inviare il testo al browser con il minimo sforzo. Non esattamente quello che volevi, ma è un miglioramento.


quando dici edit-server intendi il plugin che funziona con Edit with Emacs nei browser basati su Chrom (ium)?
stsquad,


7

Sto usando w3mper inviare questa risposta da Emacs. I siti StackExchange non sembrano molto belli in w3m, ma l'invio dei moduli funziona perfettamente. (Non sono stato in grado di inviare una risposta con il nuovo ewwbrowser.)

In realtà non raccomando di farlo, perché sembra piuttosto doloroso rispetto all'utilizzo di un normale browser con collegamenti simili a Emacs (ad es. Keynail per Firefox).

EDIT : ho dovuto risolvere un captcha per inviare la mia risposta. Sfortunatamente, nessun buffer è stato mostrato nel buffer w3m, quindi ho dovuto visitare l'URL captcha in un browser tradizionale.


5

Ho sempre trovato che kill e yank fossero sufficienti, ma ho una funzione di copia specifica per StackOverflow che 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"))))

Che prende cose come:

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

e trasformali in:

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

In alternativa, trovo che le estensioni cromate Edit With Emacs siano molto belle.


2
Suggerirei Modifica con Emacs come risposta separata. E lo trovo anche carino, e non buggy.
mankoff,

5

Keysnail implementa le associazioni dei tasti Emacs per Firefox. Serve anche come piattaforma per i plug-in, estendendo l'architettura di Firefox in maniera distintamente emacresca.


1
Vale la pena ricordare che esiste un plug-in chiamato K2Emacs per Keysnail, che consente di modificare le textareas in un programma esterno (per impostazione predefinita Emacs).
Omar,

1

Ho usato Firemacs e ne sono stato molto contento. È un'estensione di firefox che ti dà il keybinding di emacs. Supporta molte combinazioni di tasti tra cui kill e yank.

Può essere installato da qui .


1

È possibile utilizzare il componente aggiuntivo Firefox È tutto testo . Ciò aggiungerà un piccolo pulsante "modifica" nella parte inferiore di qualsiasi area di testo. Facendo clic su di esso (o utilizzando un tasto di scelta rapida, impostazione predefinita C-S-v), Emacs avvia il contenuto in un buffer temporaneo. Scrivi il buffer (ripetutamente) e gli aggiornamenti dell'area di testo.

La mia configurazione per questo è semplicemente impostare Editor su /usr/bin/emacsclient.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.