Bagaimana saya bisa menggunakan Emacs untuk mengedit pertanyaan, jawaban, dan komentar di sini?

58

Emacs sebagai klien StackExchange?

Bagaimana saya bisa menggunakan Emacs untuk mengedit pertanyaan, jawaban, dan komentar di sini di situs Emacs Stack Exchange?

Secara umum, metode apa yang mungkin ada?

Bunuh dan tarik

Ini berfungsi, tetapi metodenya sangat rumit sehingga tidak layak untuk posting pendek atau bahkan posting menengah.

Plugin browser

Ada plugin browser yang cukup dikenal untuk Firefox yang memungkinkan Anda mendorong konten teks <textarea>bolak-balik di antara editor pilihan Anda. Saya kira itu bekerja melalui file temp dan saya belum mengevaluasinya. Menggunakan plugin dengan emacs telah dibahas di StackOverflow . Saya tidak menggunakan Chrome lagi.

Stack Exchange API

Ada sesuatu yang disebut Stack Exchange Mode for Emacs . Saya belum mengevaluasinya. Sumbernya tidak terlalu basi, tetapi proyek ini jelas tidak selesai.

Pilihan lain?

Saya mencari saran!

Motivasi

Terlepas dari metode apa yang digunakan untuk mengedit pertanyaan, jawaban, dan komentar di emacs, saya yakin bahwa hal itu akan memungkinkan kami melakukan beberapa tugas umum dengan mudah:

  • Patuhi konvensi . Sesuatu seperti M-x record-keystrokes-and-write-them-out-as-markdown RET C-x C-s C-g RET... mungkin menghasilkan:

    C-x C-s C-g

  • Tanyakan arti pesan kesalahan: M-x post-region-on-emacs-se-as-question RET...

Daveloyall
sumber
Saya sengaja tidak menyebutkan dalam pertanyaan saya bahwa saya adalah pengguna Linux. Haruskah saya? Tentu saja, saya paling sering menggunakan SE ketika saya sedang bekerja, di mana saya melakukan semua penjelajahan internet saya di host Windows dan emacs bekerja di VM Linux ...
daveloyall
Edit-with-emacs Chrome tidak
bermasalah
Apakah pengguna yang menghapus Jawabannya mempertimbangkan untuk mengembalikannya? Ada fungsi elisp yang berguna di sana. Apakah jawaban yang tidak diterima dihitung terhadap pengguna dengan cara yang saya tidak tahu?
daveloyall
@daveloyall: Saya tertarik dengan masalah apa yang Anda miliki dengan solusi textarea Chrome ( pengungkapan Saya adalah pengelola Edit with Emacs). Saya cukup senang mengedit posting StackExchange dengan itu dan penurunan harga-mode.
stsquad
@stsquad Yah, saya tidak yakin. Saya tidak menginstalnya lagi, jadi saya tidak yakin versi apa yang saya gunakan. Ok, saya melakukan sedikit penggalian (hanya sedikit) dan saya menemukan bahwa banyak baris subjek di sini github.com/stsquad/emacs_chrome/issue terdengar seperti hal yang saya temui. Pada dasarnya jika javascript di beberapa situs dapat membuatnya tidak berfungsi, bukan itu yang saya cari ... Lagi pula, saya berhenti menggunakan Chrome ketika pembaruan menonaktifkan ekstensi non-web-store secara permanen, seperti yang kecil yang saya tulis secara lokal.
daveloyall

Jawaban:

33

Lihat proyek Stack Exchange untuk Emacs . Dari halaman mereka:

SX akan menjadi mode Stack Exchange berfitur lengkap untuk GNU Emacs 24+. Menggunakan API resmi, kami bertujuan untuk menciptakan pengalaman yang lebih fleksibel untuk jaringan Stack Exchange di dalam Emacs sendiri.

tangkapan layar

Dharmatech
sumber
Artur Malabarba telah berjanji untuk menulis mode untuk itu, lihat: twitter.com/bruceconnor/status/520692859109117952 Saya akan merekomendasikan memegangnya untuk itu :)
Lee H
@Malabarba aku menahanmu untuk itu! :) ... Sebenarnya, jika ide ini memiliki dukungan repo, saya akan sangat tergoda untuk menerimanya sebagai jawaban. Bukannya aku satu-satunya sumber poin internet atau apa pun ...
daveloyall
Saya akan menaatinya. :-) ETA saat ini sekitar Natal.
Malabarba
1
Bagaimana saya belum melihat Q ini? : D Menariknya, paket bekerja di luar kotak pada 24.3. @dharmatech - maukah Anda memposting itu sebagai masalah ?
Sean Allred
3
Wow, baca saja ini, instal sx.el dari melpa, jalankan dan di sini saya menulis komentar menggunakannya. Fantastis!
Tim X
11

edit-servermungkin bisa membantu. Ini memungkinkan Anda mengedit bidang teks apa pun di dalam Chrome dengan Emacs dan kemudian mengirim teks kembali ke browser dengan upaya minimum. Bukan apa yang Anda inginkan, tetapi ini merupakan peningkatan.

Jaseem
sumber
ketika Anda mengatakan edit-server maksud Anda plugin yang bekerja dengan Edit dengan Emacs di browser berbasis Chrom (ium)?
stsquad
7

Saya menggunakan w3muntuk mengirimkan jawaban ini dari dalam Emacs. Situs StackExchange tidak terlihat bagus di w3m, tetapi mengirimkan formulir berfungsi dengan baik. (Saya belum bisa mengirim jawaban dengan ewwbrowser baru .)

Saya tidak merekomendasikan untuk benar-benar melakukan ini, karena tampaknya agak menyakitkan dibandingkan dengan menggunakan browser biasa dengan binding seperti Emacs (misalnya, thumbnail untuk Firefox).

EDIT : Saya harus memecahkan captcha untuk mengirimkan jawaban saya. Sayangnya, tidak ada captcha yang ditampilkan di buffer w3m, jadi saya harus mengunjungi URL captcha di browser tradisional.

rekado
sumber
5

Saya selalu menemukan kill dan yank sudah mencukupi, tetapi saya memiliki fungsi copy spesifik stackoverflow yang saya gunakan.

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

Yang mengambil hal-hal seperti:

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

dan mengubahnya menjadi:

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

Atau, saya menemukan ekstensi chrome Edit With Emacs sangat bagus.

Jordon Biondo
sumber
2
Saya sarankan Edit Dengan Emacs sebagai jawaban terpisah. Dan saya juga merasa senang, dan tidak buggy.
mankoff
5

Keysnail mengimplementasikan Emacs keybindings untuk Firefox. Ini juga berfungsi sebagai platform untuk plug-in, memperluas arsitektur Firefox dengan gaya khas Emacsesque.

chen bin
sumber
1
Perlu disebutkan bahwa ada plugin yang disebut K2Emacs untuk Keysnail, yang memungkinkan Anda mengedit textareas dalam program eksternal (secara default Emacs).
Omar
1

Saya telah menggunakan Firemacs dan sangat senang dengannya. Ini adalah ekstensi firefox yang memberi Anda emacs keybinding. Ini mendukung banyak keybindings termasuk kill dan yank.

Itu dapat diinstal dari sini .

Sibi
sumber
1

Anda dapat menggunakan add-on Firefox Ini Semua Teks . Ini akan menambahkan tombol "edit" kecil ke bagian bawah area teks apa pun. Mengkliknya (atau menggunakan hot-key, default C-S-v) menjalankan Emacs dengan konten dalam buffer sementara. Tulis buffer (berulang kali) dan pembaruan area teks.

Konfigurasi saya untuk itu adalah hanya mengatur Editor untuk /usr/bin/emacsclient.

Micah Elliott
sumber