ฉันจะใช้ Emacs เพื่อแก้ไขคำถามคำตอบและความคิดเห็นที่นี่ได้อย่างไร


58

Emacs เป็นไคลเอนต์ StackExchange หรือไม่

ฉันจะใช้ Emacs เพื่อแก้ไขคำถามคำตอบและความคิดเห็นได้ที่นี่ในไซต์ Emacs Stack Exchange ได้อย่างไร

ในวงกว้างมีวิธีการใดที่เป็นไปได้

ฆ่าแล้วงัด

วิธีนี้ใช้งานได้ แต่วิธีการนั้นยุ่งยากมากซึ่งไม่คุ้มค่ากับการโพสต์แบบสั้นหรือการโพสต์แบบความยาวปานกลาง

ปลั๊กอินเบราว์เซอร์

มีปลั๊กอินของเบราว์เซอร์ที่รู้จักกันค่อนข้างดีสำหรับ Firefox ที่ให้คุณดันเนื้อหาข้อความ<textarea>ไปมาระหว่างตัวแก้ไขที่คุณเลือก ฉันคิดว่ามันทำงานผ่านไฟล์ชั่วคราวและฉันไม่ได้ประเมินมัน การใช้ปลั๊กอินที่มี emacs ได้รับการกล่าวถึงใน StackOverflow ฉันไม่ได้ใช้ Chrome อีกต่อไป

Stack Exchange 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...


ฉันจงใจไม่ได้กล่าวถึงในคำถามของฉันว่าฉันเป็นผู้ใช้ Linux ฉันควร? แน่นอนฉันใช้ SE บ่อยที่สุดเมื่อฉันอยู่ที่ทำงานที่ฉันใช้อินเทอร์เน็ตของฉันทั้งหมดในโฮสต์ Windows และ emacs ทำงานใน Linux VM ...
daveloyall

Chrome Edit-with-emacs ไม่เหมาะสำหรับฉัน ...
mankoff

ผู้ใช้ที่ลบคำตอบของเขาหรือเธอจะพิจารณานำกลับมาใช้หรือไม่ มีฟังก์ชั่น elisp ที่มีประโยชน์อยู่ในนั้น คำตอบที่ยอมรับไม่ได้นับรวมกับผู้ใช้ด้วยวิธีใดที่ฉันไม่รู้
daveloyall

@daveloyall: ฉันสนใจว่าคุณมีปัญหาอะไรกับ Chrome textarea solution ( การเปิดเผยฉันเป็นผู้ดูแล Edit ด้วย Emacs) ฉันค่อนข้างมีความสุขแก้ไข StackExchange โพสต์ด้วยมันและโหมดมาร์คดาวน์
stsquad

@stsquad ดีฉันไม่แน่ใจ ฉันไม่ได้ติดตั้งอีกต่อไปดังนั้นฉันไม่แน่ใจว่าฉันใช้เวอร์ชันใด ตกลงฉันขุดเล็กน้อย (แค่นิดหน่อย) และฉันพบว่าหัวเรื่องจำนวนมากที่นี่github.com/stsquad/emacs_chrome/issuesฟังดูเหมือนสิ่งที่ฉันพบ โดยทั่วไปหากจาวาสคริปต์ในบางเว็บไซต์ไม่สามารถใช้งานได้มันไม่ใช่สิ่งที่ฉันกำลังมองหา ... อย่างไรก็ตามฉันหยุดใช้ Chrome เมื่อการอัปเดตปิดใช้งานส่วนขยายที่ไม่ใช่ร้านค้าบนเว็บอย่างถาวรเช่นเดียวกับที่เขียนในเครื่อง
daveloyall

คำตอบ:


33

ดูแลกเปลี่ยน Stack สำหรับ Emacsโครงการ จากหน้าของพวกเขา:

SX จะเป็นโหมดแลกเปลี่ยนแบบเต็มรูปแบบสำหรับ GNU Emacs 24+ การใช้ API อย่างเป็นทางการเรามุ่งมั่นที่จะสร้างประสบการณ์ที่หลากหลายมากขึ้นสำหรับเครือข่าย Stack Exchange ภายใน Emacs เอง

ภาพหน้าจอ


Artur Malabarba มีสัญญาว่าจะเขียนโหมดสำหรับมันดู: twitter.com/bruceconnor/status/520692859109117952ฉันจะแนะนำเขาถือมัน :)
ลี H

@ Malabarba ฉันกำลังจะจับคุณ! :) ... อันที่จริงถ้าความคิดนี้มี repo สำรองไว้ฉันอยากจะยอมรับมันเป็นคำตอบ ไม่ว่าฉันแหล่งเดียวของจุดอินเทอร์เน็ตหรืออะไร ...
daveloyall

ฉันจะติดมัน :-) การทางพิเศษแห่งประเทศไทยในปัจจุบันคือประมาณคริสต์มาส
Malabarba

1
ฉันไม่เห็นคำถามนี้ได้อย่างไร : D ที่น่าสนใจแพ็คเกจทำงานนอกกรอบเมื่อ 24.3 @dharmatech - คุณคิดว่าการโพสต์เป็นปัญหาหรือไม่
Sean Allred

3
ว้าวเพิ่งอ่านนี่ติดตั้ง sx.el จาก melpa แล้วก็วิ่งมาที่นี่ฉันกำลังเขียนคอมเม้นท์ไว้ใช้ Fantastic!
ทิม X

11

edit-serverอาจช่วยได้บ้าง ช่วยให้คุณสามารถแก้ไขช่องข้อความใด ๆ ภายใน Chrome ด้วย Emacs จากนั้นส่งข้อความกลับไปที่เบราว์เซอร์ด้วยความพยายามขั้นต่ำ ไม่ใช่สิ่งที่คุณต้องการอย่างแน่นอน แต่เป็นการปรับปรุง


เมื่อคุณพูดถึง edit-server คุณหมายถึงปลั๊กอินที่ทำงานกับ Edit กับ Emacs ในเบราว์เซอร์ที่ใช้ Chrom (ium)
stsquad

@stsquad ใช่ อันนี้chrome.google.com/webstore/detail/edit-with-emacs/…
Jaseem

7

ฉันใช้w3mเพื่อส่งคำตอบนี้จากภายใน Emacs ไซต์ StackExchange ดูไม่ดีมากใน w3m แต่การส่งแบบฟอร์มทำได้ดี (ฉันไม่สามารถส่งคำตอบด้วยewwเบราว์เซอร์ใหม่)

ฉันไม่แนะนำให้ทำเช่นนี้เพราะดูเหมือนว่าจะค่อนข้างเจ็บปวดเมื่อเทียบกับการใช้เบราว์เซอร์ทั่วไปที่มีการเชื่อมโยงกับ Emacs (เช่นภาพขนาดย่อสำหรับ Firefox)

แก้ไข : ฉันต้องแก้แคปต์ชาเพื่อส่งคำตอบของฉัน น่าเสียดายที่ไม่มี captcha ปรากฏในบัฟเฟอร์ w3m ดังนั้นฉันต้องไปที่ captcha URL ในเบราว์เซอร์ดั้งเดิม


5

ฉันพบว่า kill และ yank นั้นเพียงพอแล้ว แต่ฉันมีฟังก์ชัน copyoverflow ที่เฉพาะเจาะจงที่ฉันใช้

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

หรือฉันพบว่าส่วนขยายโครมEdit With Emacsนั้นดีมาก


2
ฉันขอแนะนำ Edit With Emacs เป็นคำตอบแยกต่างหาก และฉันก็พบว่ามันก็ดีเหมือนกันและก็ไม่บั๊ก
mankoff

5

Keysnailใช้ Emacs keybindings สำหรับ Firefox นอกจากนี้ยังทำหน้าที่เป็นแพลตฟอร์มสำหรับปลั๊กอินซึ่งขยายสถาปัตยกรรมของ Firefox ในรูปแบบ Emacsesque อย่างชัดเจน


1
เป็นมูลค่าการกล่าวขวัญว่ามีปลั๊กอินที่เรียกว่า K2Emacs สำหรับ Keysnail ให้คุณแก้ไข textareas ในโปรแกรมภายนอก (โดยค่าเริ่มต้น Emacs)
โอมาร์

1

ฉันใช้Firemacsและมีความสุขมากกับมัน มันเป็นส่วนเสริมของ Firefox ซึ่งจะช่วยให้คุณผูกพันพวงกุญแจ มันสนับสนุนการโยงคีย์หลายอย่างรวมถึง kill และ yank

สามารถติดตั้งได้จากที่นี่


1

คุณสามารถใช้Firefox add-on มันเป็นข้อความทั้งหมด นี่จะเพิ่มปุ่ม "แก้ไข" เล็ก ๆ ที่ด้านล่างของพื้นที่ข้อความใด ๆ เมื่อคลิก (หรือใช้ฮอตคีย์ค่าเริ่มต้นC-S-v) จะทำให้ Emacs ขึ้นพร้อมเนื้อหาในบัฟเฟอร์ชั่วคราว เขียนบัฟเฟอร์ (ซ้ำ ๆ ) และการปรับปรุงพื้นที่ข้อความ

การตั้งค่าของฉันมันเป็นเพียงการตั้งค่าแก้ไข/usr/bin/emacsclientไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.