Cả hai autopairvà smartparenscung 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 autopairvà smartparenscung 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:
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ỗichange-inner - chọn biểu thức trong cặp khớpparedittất nhiênchange-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?
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.
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.
C-u C-u M-x sp-kill-sexptrông giống như một sự thay thế hợp lý cho change-outer.
sp-kill-hybrid-sexptố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à smartparenscó thể khớp các cặp đã thoát và dấu không dấu chấm câu, như ifvà fi; 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.