Sự khác biệt giữa autopair và smartparens là gì?


7

Cả hai autopairsmartparenscung cấp chức năng để tự động chèn các cặp dấu phân cách.

Làm thế nào để họ khác nhau trong thực tế (nếu có)? Một số trường hợp sử dụng được bao phủ bởi một trong các gói này nhưng không phải bởi các gói khác là gì?


2
Nếu smartparens là bất cứ thứ gì giống như paredit (và theo những gì tôi hiểu, thì nó là vậy), thì đó là về nhiều thứ hơn là chỉ chèn các cặp khớp. Trong thực tế, nếu tất cả những gì bạn muốn là khớp cặp, smartparens có thể là quá mức cần thiết.
Malabarba

Câu trả lời:


6

smartparenscó một superset của các chức năng được cung cấp bởi autopair. Ngoài việc cung cấp chèn cặp (đó là những gì autopairhiện có), nó còn hỗ trợ thao tác cái mà nó gọi là "lai sexps" hoặc sexps ở chế độ không phải là không thể. Nó cung cấp các lệnh để điều hướng, đánh dấu, tham gia, chia tách, hấp thụ và nhiều hơn nữa cho sexps trong số những thứ khác.

Cá nhân tôi sử dụng smartparensvà thấy rằng nó cung cấp một số chức năng chồng chéo với

  • yasnippet - khả năng kích hoạt chèn cặp bằng chuỗi
  • change-inner - chọn biểu thức trong cặp khớp
  • paredittất nhiên

Hấp dẫn! Làm thế nào lớn là chồng chéo với change-inner? Dựa trên kinh nghiệm của bản thân, bạn smartparenscó thể nói rằng nó có thể được sử dụng thay thế cho change-innerkhông?
itjeyd

1
Tôi sp-kill-sexplà một phần của phiên bản dwim change-outervới một chút khác biệt về điểm phải được đặt. C-u C-u M-x sp-kill-hybrid-sexplà một phiên bản dwim của change-inner. Tôi sử dụng cả hai gói cho Auctex, đây là cách sử dụng emacs chính của tôi.
Vamsi

1
Nếu bạn sẵn sàng viết một số elisp tùy chỉnh bằng cách sử dụng smartparenstôi sẽ nói change-innercó thể được thay thế. Nhưng change-innercách này thuận tiện hơn và không làm căng bộ nhớ làm việc (chỉ có 2 chức năng / bàn phím cần nhớ) nhiều như smartparenstương đương.
Vamsi

Cảm ơn! Tôi đã chơi xung quanh một chút với các lệnh bạn đã đề cập và từ những gì tôi có thể nói C-u C-u M-x sp-kill-sexptrông giống như một sự thay thế hợp lý cho change-outer.
itjeyd

@Vamsi Theo cách nào sp-kill-hybrid-sexptốt hơn change inner? Tôi đang tự hỏi nếu tôi nên chuyển đổi.
sợi đốt

2

Một sự khác biệt cơ bản là smartparenscó thể khớp các cặp đã thoát và dấu không dấu chấm câu, như iffi; bạn cũng có thể tùy chỉnh các cặp của bạn. smartparensthực sự tuyệt vời khi làm việc regex nơi có rất nhiều cặp thoát như thế \(...\), vì nó có điểm nhấn riêng cho các cặp như vậy, làm việc với sed, awk... dễ chịu hơn nhiều.

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.