Jak mogę użyć Emacsa do edycji pytań, odpowiedzi i komentarzy tutaj?

58

Emacs jako klient StackExchange?

Jak mogę używać Emacsa do edytowania pytań, odpowiedzi i komentarzy tutaj na stronie Emacs Stack Exchange?

Ogólnie, jakie są możliwe metody?

Zabij i szarpnij

Działa to, ale metoda jest tak kłopotliwa, że ​​nie jest warta krótkich postów, a nawet postów o średniej długości.

Wtyczka do przeglądarki

Istnieje stosunkowo dobrze znana wtyczka do przeglądarki Firefox, która pozwala przesuwać zawartość tekstową dowolnych <textarea>edytorów. Zakładam, że działa za pośrednictwem plików tymczasowych i nie oceniłem go. Używanie wtyczki z emacsem zostało omówione na StackOverflow . Nie używam już Chrome.

Stos Exchange API

Istnieje coś o nazwie Tryb wymiany stosu dla Emacsa . Nie oceniłem tego. Źródło nie jest zbyt stare, ale projekt oczywiście nie został ukończony.

Inne opcje?

Szukam sugestii!

Motywacje

Bez względu na to, jaką metodę edytujesz pytania, odpowiedzi i komentarze w emacsie, jestem pewien, że dzięki temu z łatwością wykonamy niektóre typowe zadania:

  • Przestrzegaj konwencji . Coś w rodzaju M-x record-keystrokes-and-write-them-out-as-markdown RET C-x C-s C-g RET... może dać:

    C-x C-s C-g

  • Zapytaj, co oznacza komunikat o błędzie: M-x post-region-on-emacs-se-as-question RET...

daveloyall
źródło
Celowo nie wspomniałem w moim pytaniu, że jestem użytkownikiem Linuksa. Czy powinienem? Oczywiście używam SE najczęściej, gdy jestem w pracy, gdzie przeglądam internet na hoście Windows, a emacs pracuję na maszynie wirtualnej z systemem Linux ...
daveloyall
Chrome Edit-with-emacs nie jest dla mnie
błędem
Czy użytkownik, który usunął swoją odpowiedź, rozważyłby jej odłożenie? Była tam przydatna funkcja elisp. Czy nieakceptowane odpowiedzi liczą się z użytkownikiem w jakiś sposób, o którym nie wiem?
daveloyall
@daveloyall: Interesuje mnie, jakie problemy miałeś z rozwiązaniem Chrome textarea ( ujawnienie, że jestem opiekunem Edit with Emacs). Z przyjemnością edytuję za nim posty StackExchange i tryb markdown.
stsquad
@stsquad Cóż, nie jestem pewien. Nie mam go już zainstalowanego, więc nie jestem pewien, jakiej wersji użyłem. Ok, zrobiłem trochę kopania (tylko trochę) i odkryłem, że wiele tematów tutaj github.com/stsquad/emacs_chrome/issues brzmi jak coś, z czym się spotkałem. Zasadniczo, jeśli javascript na jakiejś stronie może sprawić, że nie będzie działał, nie jest to, czego szukam ... W każdym razie przestałem używać Chrome, gdy aktualizacja na stałe wyłączyła rozszerzenia do innych sklepów internetowych, takie jak te, które napisałem lokalnie.
daveloyall

Odpowiedzi:

33

Zobacz projekt Stack Exchange for Emacs . Z ich strony:

SX będzie w pełni funkcjonalnym trybem wymiany stosów dla GNU Emacs 24+. Korzystając z oficjalnego API, staramy się stworzyć bardziej wszechstronne środowisko dla sieci Stack Exchange w samym Emacsie.

zrzut ekranu

dharmatech
źródło
Artur Malabarba obiecał napisać tryb dla tego, patrz: twitter.com/bruceconnor/status/520692859109117952 Polecam go trzymać :)
Lee H
@Malabarba Trzymam cię do tego! :) ... W rzeczywistości, gdyby ten pomysł miał repozytorium, bardzo chciałbym zaakceptować go jako odpowiedź. Nie to, że jestem jedynym źródłem punktów internetowych lub czegokolwiek ...
daveloyall
Trzymam się tego. :-) obecna ETA jest w okolicach Bożego Narodzenia.
Malabarba
1
Jak nie widziałem tego Q? : D Co ciekawe, pakiet działa po wyjęciu z pudełka 24.3. @dharmatech - czy mógłbyś opublikować to jako problem ?
Sean Allred,
3
Wow, po prostu przeczytaj to, zainstalowałem sx.el z Melpy, uruchomiłem go i tutaj piszę komentarz, używając go. Fantastyczny!
Tim X
11

edit-servermoże być pomocny. Pozwala edytować dowolne pole tekstowe w Chrome za pomocą Emacsa, a następnie wysyłać tekst z powrotem do przeglądarki przy minimalnym wysiłku. Nie dokładnie to, czego chciałeś, ale jest to poprawa.

Jaseem
źródło
kiedy mówisz „edytuj serwer”, masz na myśli wtyczkę, która działa z Edycją w Emacsie w przeglądarkach opartych na Chrom (ium)?
stsquad
7

Używam, w3maby przesłać tę odpowiedź z poziomu Emacsa. Witryny StackExchange nie wyglądają ładnie w w3m, ale przesyłanie formularzy działa dobrze. (Nie byłem w stanie przesłać odpowiedzi w nowej ewwprzeglądarce).

Nie polecam tego robić, ponieważ wydaje się to dość bolesne w porównaniu do używania zwykłej przeglądarki z powiązaniami podobnymi do Emacsa (np. Keynail dla Firefoksa).

EDYCJA : Musiałem rozwiązać captcha, aby przesłać moją odpowiedź. Niestety w buforze w3m nie wyświetlała się żadna captcha, więc musiałem odwiedzić URL captcha w tradycyjnej przeglądarce.

rekado
źródło
5

Zawsze uważałem, że zabijanie i szarpanie jest wystarczające, ale mam funkcję kopiowania specyficzną dla przepływu stosu, której używam.

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

Który bierze takie rzeczy jak:

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

i zamień je w:

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

Alternatywnie uważam, że chromowane rozszerzenia Edit With Emacs są bardzo miłe.

Jordon Biondo
źródło
2
Jako osobną odpowiedź sugerowałbym opcję Edytuj za pomocą Emacsa. I uważam, że to też miłe i nie ma błędów.
mankoff
5

Keysnail implementuje skróty klawiszowe Emacsa dla Firefoksa. Służy również jako platforma dla wtyczek, rozszerzając architekturę Firefoksa w sposób wyraźnie emacsesque.

Chen Bin
źródło
1
Warto wspomnieć, że istnieje wtyczka o nazwie K2Emacs dla Keysnail, która pozwala edytować obszary tekstowe w programie zewnętrznym (domyślnie Emacs).
Omar,
1

Korzystam z Firemacs i jestem z tego bardzo zadowolony. Jest to rozszerzenie firefox, które daje skrót klawiszowy emacs. Obsługuje wiele skrótów klawiszowych, w tym kill i yank.

Można go zainstalować stąd .

Sibi
źródło
1

Możesz użyć dodatku do Firefoksa It's All Text . Spowoduje to dodanie małego przycisku „edytuj” u dołu dowolnego obszaru tekstowego. Kliknięcie go (lub użycie skrótu domyślnego C-S-v) uruchamia Emacsa z zawartością w tymczasowym buforze. Napisz bufor (wielokrotnie), a pole tekstowe zostanie zaktualizowane.

Moja konfiguracja to po prostu ustawienie Edytora na /usr/bin/emacsclient.

Micah Elliott
źródło