Cả hai autopair
và smartparens
cung 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ì?
Cả hai autopair
và smartparens
cung 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ì?
Câu trả lời:
smartparens
có 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ì autopair
hiệ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 smartparens
và 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ỗichange-inner
- chọn biểu thức trong cặp khớpparedit
tất nhiênchange-inner
? Dựa trên kinh nghiệm của bản thân, bạn smartparens
có thể nói rằng nó có thể được sử dụng thay thế cho change-inner
không?
sp-kill-sexp
là một phần của phiên bản dwim change-outer
vớ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-sexp
là 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.
smartparens
tôi sẽ nói change-inner
có thể được thay thế. Nhưng change-inner
cá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ư smartparens
tương đương.
C-u C-u M-x sp-kill-sexp
trông giống như một sự thay thế hợp lý cho change-outer
.
sp-kill-hybrid-sexp
tốt hơn change inner
? Tôi đang tự hỏi nếu tôi nên chuyển đổi.
Một sự khác biệt cơ bản là smartparens
có thể khớp các cặp đã thoát và dấu không dấu chấm câu, như if
và fi
; bạn cũng có thể tùy chỉnh các cặp của bạn. smartparens
thự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.