Những gói có sẵn để chỉnh sửa phương thức?


13

Những gói nào có sẵn để chỉnh sửa phương thức trong Emacs? Bạn dùng gì và tại sao?

Hãy thử gửi một gói cho mỗi câu trả lời. Tôi đề xuất đề cập đến ưu điểm và khuyết điểm của mỗi gói.


Dưới đây là định nghĩa của tôi về chỉnh sửa phương thức (tôi không thể tìm thấy bài viết Wikipeadia chuyên dụng):

Chỉnh sửa phương thức - kiểu chỉnh sửa văn bản khi người dùng chuyển đổi định kỳ thường xuyên giữa chế độ bình thường, khi các phím không gây ra việc chèn các ký tự của chúng mà thực hiện các thao tác khác nhau trên văn bản và chế độ chèn vào chế độ chèn khi các phím chèn các ký tự tương ứng. Có thể có nhiều chế độ hơn, tất nhiên. Hầu hết các biên tập viên hiện đại không phải là phương thức. Một ví dụ về trình soạn thảo văn bản phương thức là Vi (Vim).


Và "chỉnh sửa phương thức" là gì?
Lindydancer

@Lindydancer, tôi đã thêm nỗ lực của mình để giải thích khái niệm này cho câu hỏi.
Mark Karpov

Câu trả lời:


13

evil, E xtensible VI L ayer cho Emacs

Đặt câu hỏi sang một bên, evillà trạng thái hiện đại khi nói đến vimthi đua trong Emacs (và có thể ở bất cứ nơi nào khác, cho vấn đề đó). Nó hỗ trợ rất nhiều tính năng mà các gói mô phỏng Vim khác tránh khỏi, bao gồm:

  • vim văn bản
  • vim sổ đăng ký
  • vim macro bàn phím
  • ex lệnh

Ưu điểm

  • Khả năng tương thích chính với vimnghĩa là bạn không bị mất bộ nhớ cơ khi chuyển sang hệ thống không có Emacs.
  • Rất trưởng thành và được sử dụng rộng rãi (ví dụ rất nhiều gói cộng đồng)
    • Nhiều gói vimđã được chuyển đến evil.
  • vim ngữ pháp kiểu là mô-đun và cho vay rất tốt cho phần mở rộng người dùng
  • evil bản thân nó rất có thể mở rộng: tạo các textobjects, toán tử và chuyển động của riêng bạn!

Nhược điểm

  • Có lẽ sẽ cần một số khó khăn để làm cho nó chơi tốt với các gói khác
    • May mắn thay, evillàm cho các trường hợp sử dụng phổ biến nhất dễ dàng một cách nực cười.
  • evillà một hệ thống rất phức tạp. Hack vào lõi ác có thể trở nên khá liên quan.
  • vimkeybindings không nhất thiết phải tối ưu về mặt công thái học. Đôi khi, họ có thể cảm thấy một chút tùy tiện khi chuyển sang một hệ thống khác.
  • Được lưu trữ trên BitBucket (đồng bóng) làm cho điều này bạn sẽ làm.

Tôi tìm thấy từ viết tắt ác cho lớp vi mở rộng cho Emacs một chút của một hương vị xấu.
Tên

@ Tên không phải ý của tôi, nhưng làm sao vậy?
PythonNut

từ một cuốn từ điển: ác = sâu sắc vô đạo đức và xấu xa, thể hiện hoặc kết hợp với các lực lượng của ma quỷ, có hại, vô cùng khó chịu, ...
Tên

5
@ Tên như một người đã đặt cho anh ấy / cô ấy cái tên "Tên", tôi nghĩ bạn sẽ đánh giá cao việc sử dụng sự hài hước khi đặt tên cho mọi thứ. :-) Trong trường hợp của Ác ma, thật trớ trêu (xem en.wikipedia.org/wiki/Irony#DefDefs ). Tôi nghĩ rằng đó là một trong những cái tên hay nhất từng được đặt cho gói Emacs và sẽ liệt kê đó là một lợi thế!
tarsius

@PythonNut Tôi nghĩ rằng việc sử dụng Bitbucket ít gặp vấn đề hơn (thực sự không có vấn đề gì) so với việc sử dụng Mercurial.
tarsius

11

god-mode( https://github.com/chrisdone/god-mode ), sử dụng các ràng buộc khóa Emacs tiêu chuẩn nhưng loại bỏ sự cần thiết phải giữ các sửa đổi. Khi chế độ thần được kích hoạt, C-...các ràng buộc không yêu cầu sửa đổi và M-...các ràng buộc sử dụng tiền tố thay vì sửa đổi.

Ví dụ từ trang github:

Trước: Cp Ck Cn M- ^) Cj Cy Mr Cx zz M-2 Mg Mg Cx Cs

Sau: pkng ^) jygr. . 2 ggx


1
Vui lòng mở rộng câu trả lời của bạn, vì vậy nó không chỉ là một liên kết.
Đánh dấu Karpov

@Stefan - Tôi đã tự do mở rộng câu trả lời của bạn một chút. Hãy thoải mái thay đổi tuy nhiên bạn muốn.
glucas

glucas: Cảm ơn! @Mark: không biết gì thêm về chế độ thần, tôi không thể dễ dàng mở rộng câu trả lời của mình. Tôi đã đăng nó với hy vọng ai đó như glucas sẽ điền vào chỗ trống.
Stefan

6

Thêm riêng tôi, cảm ơn @Mark đã khuyến khích.

Chìa khóa bay Xah

Được thiết kế từ nền tảng cho các emacs, với mục tiêu là hệ thống hiệu quả nhất, từ nhiều năm kinh nghiệm với chế độ ergoemacs. Các lựa chọn chính là khoa học dựa trên càng nhiều càng tốt, dựa trên số liệu thống kê về tần số chính và điểm số dễ bấm chính. Các lệnh được sử dụng thường xuyên nhất được ánh xạ tới các phím dễ bấm nhất. Các vấn đề khác, chẳng hạn như nhóm, và bigraming keyram, cũng được xem xét từ 3 năm thử nghiệm hàng tuần.

Điểm thú vị:

  • Tất cả các lệnh Cx được thực hiện theo trình tự từ 2 đến 3 phím đơn. Trong xah-fly-key, Cx không bao giờ cần thiết. M- cũng không bao giờ cần thiết.
  • Không xung đột với bất kỳ khóa GNU nào, bởi vì nó không liên kết Ctrl hoặc Meta (ngoại trừ C-7, C-8, nhưng không cần thiết). Bạn có thể bật các phím xah-fly trong chế độ chèn và sử dụng GNU Emac theo cách bạn thường làm.
  • Cũng xem xét tập hợp các lệnh dẫn đến hiệu quả chỉnh sửa tối đa. Vì vậy, gói sử dụng ~ 80 lệnh chỉnh sửa tùy chỉnh. (ví dụ: sao chép sẽ sao chép dòng hiện tại nếu không có lựa chọn. Một lệnh duy nhất để chuyển trường hợp chữ cái, thay vì ~ 6 biến thể của vùng trên / dưới / vùng / không có vùng của GNU Emacs.)
  • Việc thực hiện càng đơn giản càng tốt. Không có macro, không có lời khuyên, không có ánh xạ lại phức tạp của các phím, chỉ có một vài hook được sử dụng. (tốt hay xấu?!)

Nhược điểm:

  • Giống như học vi lần đầu tiên, bạn sẽ cần một tháng để áp dụng.
  • Không nổi tiếng. Chỉ được phát hành cho công chúng sử dụng trong tháng này.
  • Hiện chỉ hỗ trợ bố trí Dvorak.
  • Không có sơ đồ chính thuận tiện cho việc học (chưa).
  • Đối với các chế độ chính, bạn vẫn cần sử dụng Cc. (vì vậy, bạn có thể sử dụng các gói khác như chế độ thần hoặc hydra để giải quyết vấn đề này.)

Tôi là tác giả, vì vậy được cảnh báo rằng tôi có thể bị thiên vị một cách vô thức. Hãy bình luận hoặc chính xác.


Bất kỳ cơ hội nào bạn sẽ hỗ trợ bố trí bàn phím khác? Tôi biết ErgoEmacs. Tôi có thể thử, nhưng thanh chuyển sang Dvorak quá cao cho một thử nghiệm thông thường.
PythonNut

@PythonNut có, ưu tiên hàng đầu. Tôi hy vọng trong một tuần. Điều chính là làm thế nào tôi muốn thực hiện nó.
Xah Lee

Ah. Rất tuyệt. Tôi sẽ cho nó một vòng xoáy khi nó xuất hiện.
PythonNut

6

Modalka phải là đứa trẻ mới nhất trong khối chỉnh sửa phương thức. Dự án github dường như là tất cả của 10 ngày tuổi. Tôi không có đủ thời gian sử dụng để bình luận hoặc đánh giá, nhưng đây là cách nó được mô tả:

Đây là một bộ công cụ xây dựng để giúp chuyển sang chỉnh sửa phương thức trong Emacs. Mục tiêu chính của gói là thực hiện chỉnh sửa phương thức trong Emacs một cách tự nhiên và tự nhiên nhất có thể. Không có hack, không có trường hợp góc, không có mô phỏng - chỉ cần bắt đầu chỉnh sửa theo cách bạn muốn.

Các tài liệu cũng so sánh và tương phản Modalka với các giải pháp phương thức phổ biến khác, chẳng hạn evil, god-mode, boonvv


4

Lợi

Boon là một trong những gói ít được biết đến để chỉnh sửa phương thức. Nó không mô phỏng Vi (hoặc Vim) nhưng cung cấp bố cục ban đầu được tối ưu hóa cho bố cục bàn phím Colemak.

Ưu điểm và nguyên tắc thiết kế

  • Phân bổ không gian trước, ghi nhớ thứ hai: phân bổ các phím cho các lệnh được ưu tiên dựa trên vị trí của các phím trên bàn phím. Bất cứ điều gì được in trên nắp chìa khóa là mối quan tâm thứ yếu.

  • Cuộn ngón tay dễ dàng: sự kết hợp phổ biến nên là luân phiên tay trái / tay phải hoặc cuộn một tay dễ dàng.

  • Sử dụng hàng chủ và ngón tay mạnh cho các lệnh được sử dụng nhiều nhất

  • Điều hướng dễ dàng: nhiều lệnh bị ràng buộc để điều hướng. Điều này tạo điều kiện di chuyển xung quanh. Bởi vì các chuyển động tăng gấp đôi như định nghĩa vùng, nó làm cho các lệnh thao tác (toán tử) mạnh hơn.

Nhược điểm

  • Bạn cần học lại cách tương tác với trình chỉnh sửa vì bộ sưu tập các nguyên thủy chỉnh sửa và vị trí của chúng trên bàn phím khá độc đáo.

1
Nghe có vẻ hơi lạ khi Boon không thực sự quan tâm đến những gì trên chìa khóa, nhưng thực thi rằng các phím đó là Colemak. Nghe có vẻ như nó nên được bố trí bất khả tri.
PythonNut

@PythonNut, tôi đoán mọi người cần tham khảo khóa bằng cách nào đó :-) Tôi nghĩ hoàn toàn có thể làm cho nó hoạt động với các bố cục khác.
Đánh dấu Karpov

Boon hiện có hỗ trợ QWERTY và QWERTZ, xem github.com/jyp/boon#installation . Tôi cập nhật câu trả lời để phản ánh điều đó.
raju-đắng

3

Ergoemacs cũng hỗ trợ chỉnh sửa phương thức. Nó không mô phỏng vi, nhưng sử dụng phím Alt cho hầu hết các lệnh được sử dụng thường xuyên. Ví dụ: con trỏ di chuyển là Alt cộng với tay phải đảo ngược T. (Trên QWERTY, nó là Alt+ jfor left, Alt+ lfor right, Alt+ ifor upAlt+ kfor down). Xóa char hoặc word Altbằng các phím home-hand bên trái. Các lựa chọn chính dựa trên tần số lệnh và vị trí của phím để dễ bấm.

  • Để bắt đầu chỉnh sửa phương thức, người dùng có thể nhấn f6.
    • Sau khi f6được nhấn, các phím được sử dụng thường xuyên nhất không còn yêu cầu tổ hợp phím alt.
    • Do đó, trên QWERTY, jis left, jis right, iis upkis down).
  • Chế độ lệnh phương thức được thoát bằng cách nhấn return, f6hoặc escape.

Ngoài mô hình phương thức truyền thống, có một mô hình phương thức gần đúng cho phép đạt được bất kỳ C-xhoặc C-ctổ hợp phím nào mà không cần sử dụng bất kỳ sửa đổi nào (như chế độ thần).

  • Quasi-modal được bắt đầu với phím QWERTY apps fcho C-cvới phím điều khiển ép xuống và phím QWERTY apps dcho C-x.
  • Trong khi hoàn thành chuỗi appskhóa này, khóa sẽ thay đổi loại sửa đổi được giả định là nhấn xuống.
  • Khi lệnh đã được gọi, ergoemacs sẽ tiếp tục chế độ chỉnh sửa.
  • Trong bất kỳ chuỗi khóa nào, bạn cũng có thể thay đổi các loại phím được giữ. Điều này chỉ đơn giản là nhấn appsphím một lần nữa.

Ngoài việc thay đổi các phím lệnh, chế độ ergoemacs cho phép bạn thay đổi mọi thứ về chuỗi phím trong khi gõ nó:

  • Bạn có thể chỉnh sửa đối số tiền tố trong giữa một chuỗi khóa bằng cách nhấn f2.
  • Nhấn backspacesẽ lấy lại phím cuối cùng được nhấn.
  • Apps cho phép bạn thay đổi các phím được giữ trong bất kỳ chuỗi phím nào.

ergoemacs-mode cũng cố gắng tôn trọng bất cứ điều gì chế độ làm với các phím cơ bản. Ví dụ: nếu chế độ org xác định một khóa đặc biệt cho next-line, ergoemacs sử dụng lệnh này cho Alt+ kkhi ở chế độ org.

Ưu điểm:

  • Một phần của GNU Emacs, trong ELPA.
  • Hỗ trợ các khóa phổ biến Windows Windows / Linux ra khỏi hộp. ví dụ: Mở ( C-o), Đóng ( C-w), Chọn tất cả ( C-a), Sao chép ( C-c), Cắt ( C-x), Dán ( C-v), v.v.
  • Khá phổ biến.
  • Hỗ trợ nhiều bố cục, bao gồm Qwerty, dvorak, colemak, bepo và nhiều bố cục quốc tế khác điều chỉnh các phím để đảm bảo chúng nằm trên hàng nhà (Mi trong QWERTY sẽ là Mu in colemak).
  • Hiển thị hình ảnh bố trí bàn phím của bạn trong emacs bằng cách mô tả chủ đề.
  • Các phím được tùy chỉnh thông qua một hệ thống mở rộng, bằng cách tạo một chủ đề.
  • Bạn có thể thiết lập bất kỳ sơ đồ phương thức tùy ý (chưa được ghi lại).

Nhược điểm:

  • Ổn định là chậm khi khởi động.
    • Trong bản gốc không ổn định, lần khởi động đầu tiên chậm (~ 5 giây cho thiết lập tối thiểu), (~ 20 giây cho lần khởi động của tôi)
    • Khởi động thứ hai thứ hai nhanh hơn nhiều (đối với thiết lập phức tạp của tôi là ~ 4 giây).
    • Điều này là do chế độ ergoemacs đang thay đổi và lưu trữ mọi sơ đồ bàn phím đang hoạt động trong emacs. Khi khởi động thứ hai, các cài đặt này được lưu.
  • Mã phức tạp.

Xem https://github.com/ergoemacs/ergoemacs-mode


2

Một tùy chọn bán phương thức khác là Hydra:

https://github.com/abo-abo/hydra

Theo trang web

Hãy tưởng tượng rằng bạn đã ràng buộc Cc j và Cc k trong cấu hình của bạn. Bạn muốn gọi Cc j và Cc k theo một số trình tự (tùy ý). Hydra cho phép bạn:

  • Ràng buộc các chức năng của bạn theo cách nhấn Cc jjkk3j5k tương đương với nhấn Cc j Cc j Cc k Cc k M-3 Cc j M-5 Cc k. Bất kỳ khóa nào ngoài j hoặc k thoát khỏi trạng thái này.

  • Gán một gợi ý tùy chỉnh cho nhóm chức năng này, để bạn biết ngay sau khi nhấn Cc rằng bạn có thể theo dõi với j hoặc k.

Tôi đã không sử dụng nó nhưng nó có vẻ thú vị.

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.