2012-09-27 23 views
5

Có cách nào dễ dàng để xóa biểu thức s không nguyên tử nhỏ nhất dựa trên vị trí con trỏ không? Tôi muốn tắt chức năng này (the "|" là con trỏ)Xóa biểu thức s hiện tại (phi nguyên tử) trong Emacs

(defun foo (bar) 
    (if bar 
     |789 
    (+ 456 123))) 

vào này

(defun foo (bar) 
    |) 

Nó có vẻ như là một điều hữu ích để có thể làm, nhưng tôi không thể tìm thấy một liên quan (một bước) lệnh trên Paredit cheat sheet.

Trả lời

4

Tôi cũng không tìm thấy lệnh được xác định trước.

May mắn thay, với Emacs nó thực sự dễ dàng để thực hiện của riêng bạn.

Ví dụ:

(define-key global-map (kbd "C-c C-d") 
    (lambda() (interactive) (backward-up-list) (paredit-kill))) 
+6

Tôi khuyên bạn nên sử dụng 'C-M-u C-M-k' thay vì lệnh nguyên tử. – m2ym

+0

@ m2ym Cảm ơn rất nhiều! Đã dành một loạt thời gian để tìm chức năng cho việc này. Vì lý do nào đó, 'paredit-backward-up' (ràng buộc với' C-M-u') không được liệt kê trong thẻ tham khảo ParEdit (ít nhất, không phải trên thẻ tham chiếu đầu tiên trong Google) ... – Jay

0

Giả con trỏ không phải là ở một số 789, nhưng bên trong một chuỗi "Foo" tại nơi này.

Hơn lệnh này sẽ không thành công.

Đó là lý do tại sao ar-giết-parentized-atpt và phần mở rộng có liên quan tồn tại

http://launchpad.net/s-x-emacs-werkstatt/

0

C-M-u làm điều ngay trong chuỗi trong paredit 23, vì vậy `C-M-u C-M-k' sẽ làm việc ngay cả bên trong một chuỗi.

Các vấn đề liên quan