Chế độ Emacs để đánh dấu Stack Overflow


96

Tôi đang sử dụng Chế độ tổ chức trong Emacs để xử lý tất cả tài liệu kỹ thuật của mình. Tôi muốn sử dụng Emacs để chuẩn bị các câu hỏi mà tôi dành cho Stack Overflow. Có chế độ Emacs cho điều đó, hoặc thậm chí tốt hơn, một phần mở rộng cho Chế độ tổ chức để xử lý định dạng Stack Overflow không? Lý tưởng nhất là nó nên bao gồm tất cả các tùy chọn định dạng được hỗ trợ bởi cú pháp đánh dấu được sử dụng trong bộ đệm câu hỏi / nhận xét Stack Overflow.


Những người đọc câu hỏi này có thể quan tâm đến SX - Stack Exchange cho Emacs!
Sean Allred

Câu trả lời:


144

Tích hợp Emac với Stack Overflow

Như đã đề cập, bạn có thể sử dụng chế độ đánh dấu . Để tích hợp chế độ đánh dấu với Stack Overflow, bạn có thể sử dụng plugin Đó là Tất cả Văn bản của Firefox , cho phép bạn chỉnh sửa các textareas bằng trình chỉnh sửa bên ngoài. Đây là cách thiết lập nó:

  1. Cài đặt chế độ đánh dấu . Nếu bạn sử dụng Debian hoặc Ubuntu, bạn có thể cài đặt nó bằng cách phát hành

    sudo apt-get install emacs-goodies-el

    hoặc nếu bạn đang sử dụng emacs 24 (hoặc có package.el trên emacs 23) và Marmalade hoặc Melpa, bạn có thể cài đặt nó với

    M-x package-install RET markdown-mode
  2. Cài đặt Đó là Tất cả Văn bản .

  3. Đặt tùy chọn của Đó là Tất cả Văn bản để sử dụng Emacs. Bạn có thể đặt nó thành tệp thực thi (ví dụ / usr / bin / emacs) hoặc emacsclient .
  4. Thêm phần sau vào .emac của bạn để bật chế độ đánh dấu cho các vùng văn bản Stack Overflow và Stack Exchange:

    ;; Integrate Emacs with Stack Exchange https://stackoverflow.com/a/10386560/789593
    (add-to-list 'auto-mode-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" . markdown-mode))

    Ngoài ra, if as-external-alistđược xác định — nếu M-x describe-variable RET as-external-alistkhông thất bại — nó có thể sẽ ghi đè lên của bạn auto-mode-alist. Nó có một định dạng hơi khác (đó là một danh sách các cặp thay vì một danh sách các ô khuyết điểm) nên điều này sẽ hoạt động:

    (add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" markdown-mode))
  5. Nhấn nút chỉnh sửa màu xanh lam ở dưới cùng bên phải của vùng văn bản để chỉnh sửa qua emacs. Nút chỉnh sửa màu xanh lam được hiển thị trong ảnh chụp màn hình sau:

    Ảnh chụp màn hình của nút chỉnh sửa màu xanh lam ở dưới cùng bên phải của vùng văn bản này

    Trong ảnh chụp màn hình sau là bộ đệm Emacs ở chế độ đánh dấu, chỉnh sửa bài đăng này:

    Ảnh chụp màn hình của bộ đệm Emacs ở chế độ đánh dấu, chỉnh sửa bài đăng này

  6. Khi bạn hoàn tất việc chỉnh sửa trong Emacs, hãy lưu bộ đệm để gửi nó đến Firefox.

Nếu bạn muốn có chức năng này cho các miền khác, bạn cần thay đổi regexp ở trên. Điều sau nhận biết Stack Exchange, Stack Overflow, Ask Ubuntu và Super User:

;; Integrate Emacs with Stack Exchange https://stackoverflow.com/a/10386560/789593
(add-to-list 'auto-mode-alist '("\\(stack\\(exchange\\|overflow\\)\\|superuser\\|askubuntu\\)\\.com\\.[a-z0-9]+\\.txt" . markdown-mode))

Sử dụng chế độ đánh dấu với Chế độ tổ chức

Để sử dụng chế độ đánh dấu với Chế độ tổ chức, bạn có thể sử dụng tính năng của nó để làm việc với mã nguồn . Với nó, bạn có thể bao gồm các khối đánh dấu bên trong bộ đệm Chế độ tổ chức mà bạn có thể chỉnh sửa thông qua chế độ đánh dấu. Bạn có thể sử dụng nó như sau:

  1. Khi ở trong bộ đệm Chế độ tổ chức, hãy nhập <svào một dòng mới và nhấn Tab. Điều này sẽ dẫn đến

    #+begin_src 
    
    #+end_src
  2. Nhập markdownsau #+begin_srcđể bạn có

    #+begin_src markdown
    
    #+end_src
  3. Khi ở bên trong khối nguồn (giữa #+begin_src markdown#+end_src), nhấn C-c 'để chỉnh sửa khối nguồn với chế độ đánh dấu.

  4. Chỉnh sửa khối nguồn trong chế độ đánh dấu.

  5. Nhấn C-c 'để quay lại bộ đệm Chế độ tổ chức và chèn chỉnh sửa. Điều này có thể trông giống như những gì ảnh chụp màn hình sau đây hiển thị:

    Bộ đệm chế độ tổ chức chỉnh sửa khối mã đánh dấu cho bài đăng này


2
Nếu bạn đã as-externalcài đặt (hoặc nxhtml-modeđó cài đặt as-external) nó hoàn toàn có thể bỏ qua điều chỉnh lại auto-mode-alist, biến bạn muốn thay đổi thìas-external-alist.
quodlibetor

@quodlibetor Sau đó, tôi có thể sửa đổi as-external-alisttheo cách tương tự không?
NN

@NN Nó gần như giống hệt nhau, nhưng bạn cần phải bỏ khoảng thời gian ra khỏi ô bên trong, tôi có cái này và nó có tác dụng với tôi:(add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+" markdown-mode))
quodlibetor

Có lẽ bạn có thể cập nhật câu trả lời này để đề cập đến SX - Stack Exchange cho Emacs :)
Sean Allred

1
Tất cả văn bản của nó không còn được hỗ trợ và sẽ không chạy với các phiên bản gần đây của firefox (57+)
Iain

14

Có chế độ đánh dấu: http://jblevins.org/projects/markdown-mode/

Xem http://emacswiki.org/emacs/MarkdownMode để biết một số tùy chỉnh.

Và có một phần phụ trợ đánh dấu cho công cụ xuất mới tại đây: http://orgmode.org/w/?p=org-mode.git;a=blob_plain;f=contrib/lisp/org-md.el;hb= CÁI ĐẦU

Đảm bảo rằng bạn thêm contrib/lisp/thư mục vào của bạn load-path.

Sau đó (require 'org-export)(require 'org-md).

M-x org-md-export-to-markdown RET sẽ xuất sang markdown.



Tôi tìm thấy một nhà xuất khẩu cơ bản org-markdown: github.com/alexhenning/ORGMODE-Markdown
Nate Parsons

4

Câu trả lời của @ NN cũng có thể áp dụng cho Chrome, với những thay đổi này về chi tiết.

Chrome có tiện ích mở rộng Chỉnh sửa với Emacs , tương tự như Tiện ích tất cả văn bản. Sau khi cài đặt nó, bạn sẽ tìm thấy hướng dẫn thêm từ trang tùy chọn tiện ích mở rộng.

Có một nhóm tùy chỉnh emacs edit-servervới các tùy chọn, quan trọng nhất là thay đổi chế độ chính trên mỗi trang web được định cấu hình khác với trong câu trả lời của @ NN:

(add-to-list 'edit-server-url-major-mode-alist
             '("^stackoverflow" . markdown-mode))

Ngoài ra, để máy chủ chỉnh sửa hoạt động trong các emac đầu cuối, tôi phải tắt edit-server-new-frametùy chọn này.


1

Pandoc có hỗ trợ đọc một tập hợp con của chế độ tổ chức và có thể xuất ra đánh dấu.

Nói cách khác, bạn có thể tiếp tục viết ở chế độ tổ chức, bao gồm cả viết nghiêng / như thế này /, sau đó xuất sang đánh dấu. Từ emacs, bạn có thể chuyển đổi thành markdown bằng cách chọn vùng, nhấn Cu MS- \ và gõ pandoc -r org -t markdown, nhận được kết quả như sau:

In other words, you can keep writing in org-mode, including writing italics *like this*, and then export to markdown.

Hoặc, bạn có thể lưu tệp và chuyển đổi nó bằng dòng lệnh.


0

Nó cũng dễ dàng với Chrome

Đây không phải là câu trả lời hơn là một bài kiểm tra giải pháp của tôi bằng cách sử dụng plugin chrome Chỉnh sửa với EmacsMáy chủ chỉnh sửa Emacs được định cấu hình để sử dụng chế độ đánh dấu cho Stackoverflow (và các trang web Stackexchange khác mà tôi sử dụng). Tất cả những gì tôi phải làm sau khi cài đặt tiện ích mở rộng và gói MELPA đã được thiết lập

(setq edit-server-url-major-mode-alist
             '(("mail.google.com" . org-mode)
               ("stackoverflow\\.com" . markdown-mode)
               (".*\\.stackexchange\\.com" . markdown-mode)
               ("github\\.com" . markdown-mode)))

Hỗ trợ Thư Gmail

Lưu ý trong cài đặt ở trên, tôi đang sử dụng chế độ tổ chức cho các thư gmail. Vẫn cần phải làm một chút công việc ở đây, nhưng có thể, với một chút nỗ lực, bạn có thể soạn thảo thư gmail của mình bằng chế độ org và sau đó sử dụng org-mime để tạo html từ văn bản có cấu trúc tổ chức của bạn. Bạn chỉ có thể sử dụng đánh dấu và đánh dấu để chuyển đổi html.

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.