Làm cách nào tôi có thể sử dụng Emacs để chỉnh sửa câu hỏi, câu trả lời và nhận xét tại đây?


58

Emacs là một khách hàng StackExchange?

Làm cách nào tôi có thể sử dụng Emacs để chỉnh sửa câu hỏi, câu trả lời và nhận xét tại đây trên trang web Emacs Stack Exchange?

Nhìn rộng ra, phương pháp nào có thể tồn tại?

Giết và đánh

Điều này hoạt động, nhưng phương pháp này quá phức tạp đến nỗi nó không có giá trị cho các bài viết ngắn hoặc thậm chí các bài viết có độ dài trung bình.

Plugin trình duyệt

Có một plugin trình duyệt tương đối nổi tiếng dành cho Firefox cho phép bạn đẩy nội dung văn bản của bất kỳ <textarea>qua lại giữa trình chỉnh sửa bạn chọn. Tôi đoán nó hoạt động thông qua các tập tin tạm thời và tôi đã không đánh giá nó. Sử dụng plugin với emacs đã được thảo luận trên StackOverflow . Tôi không sử dụng Chrome nữa.

API trao đổi ngăn xếp

Một cái gì đó gọi là Chế độ trao đổi ngăn xếp cho Emacs tồn tại. Tôi chưa đánh giá nó. Nguồn không quá cũ, nhưng dự án rõ ràng là không hoàn thành.

Sự lựa chọn khác?

Tôi tìm kiếm gợi ý!

Động lực

Bất kể phương pháp nào được sử dụng để chỉnh sửa câu hỏi, câu trả lời và nhận xét trong emacs, tôi chắc chắn rằng làm như vậy sẽ cho phép chúng tôi thực hiện một số tác vụ phổ biến một cách dễ dàng:

  • Tuân thủ các quy ước . Một cái gì đó như M-x record-keystrokes-and-write-them-out-as-markdown RET C-x C-s C-g RET... có thể mang lại:

    C-x C-s C-g

  • Hỏi thông báo lỗi nghĩa là gì: M-x post-region-on-emacs-se-as-question RET...


Tôi cố tình không đề cập đến trong câu hỏi của tôi rằng tôi là người dùng Linux. Tôi có nên Tất nhiên, tôi sử dụng SE thường xuyên nhất khi tôi đang làm việc, nơi tôi thực hiện tất cả các thao tác duyệt internet của mình trong máy chủ Windows và emacs hoạt động trong máy ảo Linux ...
daveloyall

Chrome Edit-with-emacs không phải là lỗi đối với tôi ...
mankoff

Người dùng đã xóa Câu trả lời của mình sẽ cân nhắc việc đưa nó trở lại? Có một chức năng elisp hữu ích trong đó. Các câu trả lời không được chấp nhận có được tính vào người dùng theo một cách nào đó mà tôi không biết không?
daveloyall

@daveloyall: Tôi quan tâm đến những vấn đề bạn gặp phải với giải pháp văn bản Chrome ( tiết lộ tôi là người duy trì Chỉnh sửa với Emacs). Tôi khá vui vẻ chỉnh sửa các bài đăng StackExchange với nó và chế độ markdown.
stsquad

@stsquad Chà, tôi không chắc. Tôi không cài đặt nó nữa, vì vậy tôi không chắc tôi đã sử dụng phiên bản nào. Ok, tôi đã đào một ít (chỉ một chút) và tôi thấy rằng nhiều dòng chủ đề ở đây github.com/stsquad/emacs_chrome/issues nghe giống như điều mà tôi gặp phải. Về cơ bản, nếu javascript trên một số trang web có thể làm cho nó không hoạt động, thì đó không phải là thứ tôi đang tìm kiếm ... Dù sao, tôi đã ngừng sử dụng Chrome khi một bản cập nhật bị vô hiệu hóa vĩnh viễn các tiện ích mở rộng không phải là cửa hàng, như những cái tôi đã viết cục bộ.
daveloyall

Câu trả lời:


33

Xem dự án Stack Exchange cho Emacs . Từ trang của họ:

SX sẽ là chế độ Stack Exchange đầy đủ tính năng cho GNU Emacs 24+. Sử dụng API chính thức, chúng tôi hướng đến việc tạo ra trải nghiệm linh hoạt hơn cho mạng Stack Exchange trong chính Emacs.

ảnh chụp màn hình


Artur Malabarba đã hứa sẽ viết một chế độ cho nó, xem: twitter.com/bruceconnor/status/520692859109117952 Tôi sẽ khuyên bạn nên giữ anh ta với nó :)
Lee H

@Malabarba Tôi đang giữ bạn cho nó! :) ... Trên thực tế, nếu ý tưởng này có repo ủng hộ nó, tôi sẽ rất muốn chấp nhận nó như một câu trả lời. Không phải tôi là nguồn duy nhất của các điểm internet hay bất cứ thứ gì ...
daveloyall

Tôi sẽ bám lấy nó. :-) ETA hiện tại là vào khoảng Giáng sinh.
Malabarba

1
Làm thế nào tôi không thấy Q này? : D Thật thú vị, gói hoạt động vượt trội vào ngày 24.3. @dharmatech - bạn có phiền đăng bài đó là một vấn đề không?
Sean Allred

3
Wow, chỉ cần đọc nó, cài đặt sx.el từ melpa, chạy nó và ở đây tôi đang viết một bình luận sử dụng nó. Tuyệt vời!
Tim X

11

edit-servercó thể là một số trợ giúp. Nó cho phép bạn chỉnh sửa bất kỳ trường văn bản nào trong Chrome bằng Emacs và sau đó gửi văn bản trở lại trình duyệt với nỗ lực tối thiểu. Không chính xác những gì bạn muốn, nhưng đó là một cải tiến.


Khi bạn nói máy chủ chỉnh sửa với bạn có nghĩa là plugin hoạt động với Chỉnh sửa với Emacs trong các trình duyệt dựa trên Chrom (ium)?
stsquad


7

Tôi đang sử dụng w3mđể gửi câu trả lời này từ bên trong Emacs. Các trang web StackExchange trông không đẹp lắm trong w3m, nhưng việc gửi biểu mẫu hoạt động tốt. (Tôi không thể gửi câu trả lời với ewwtrình duyệt mới .)

Tôi không khuyên bạn nên thực sự làm điều này, bởi vì nó có vẻ khá đau đớn so với việc sử dụng một trình duyệt thông thường với các ràng buộc giống như Emacs (ví dụ: keynail cho Firefox).

EDIT : Tôi đã phải giải một captcha để gửi câu trả lời của mình. Thật không may, không có hình ảnh xác thực nào được hiển thị trong bộ đệm w3m, vì vậy tôi đã phải truy cập URL hình ảnh xác thực trong trình duyệt truyền thống.


5

Tôi luôn thấy kill và yank là đủ, nhưng tôi có chức năng sao chép cụ thể stackoverflow mà tôi sử dụng.

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

Mà có những thứ như:

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

và biến chúng thành:

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

Ngoài ra, tôi thấy phần mở rộng chrome Chỉnh sửa với Emacs rất đẹp.


2
Tôi muốn đề nghị Chỉnh sửa với Emacs như một câu trả lời riêng biệt. Và tôi thấy nó cũng tốt, và không có lỗi.
mankoff

5

Keysnail thực hiện các phím bấm Emacs cho Firefox. Nó cũng phục vụ như một nền tảng cho các trình cắm thêm, mở rộng kiến ​​trúc của Firefox theo kiểu Emacodesque đặc biệt.


1
Điều đáng nói là có một plugin có tên K2Emacs cho Keysnail, cho phép bạn chỉnh sửa textareas trong một chương trình bên ngoài (theo mặc định là Emacs).
Omar

1

Tôi đã sử dụng Firemac và rất hài lòng với nó. Nó là một phần mở rộng firefox cung cấp cho bạn keybinding. Nó hỗ trợ nhiều keybindings bao gồm cả kill và yank.

Nó có thể được cài đặt từ đây .


1

Bạn có thể sử dụng tiện ích Firefox All Text . Điều này sẽ thêm một nút "chỉnh sửa" nhỏ vào dưới cùng của bất kỳ khu vực văn bản. Nhấp vào nó (hoặc sử dụng phím nóng, mặc định C-S-v) sẽ kích hoạt Emacs với nội dung trong bộ đệm tạm thời. Viết bộ đệm (lặp đi lặp lại) và cập nhật vùng văn bản.

Cấu hình của tôi cho nó chỉ đơn giản là thiết lập Biên tập viên để /usr/bin/emacsclient.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.