Tôi thường xuyên thấy mình cố gắng thay thế ví dụ foo
với bar
và bar
với foo
trong một bộ đệm.
Cách tôi thường làm là:
- 3 truy vấn thay thế:
aaa -> @@@
,bbb -> aaa
,@@@ -> bbb
- từ bỏ tự động hóa và chỉ cần thay thế bằng tay
Tôi cho rằng có thể có một cái gì đó hoạt động bằng cách sử dụng ,
cú pháp query-replace-regexp
để kiểm tra xem chuỗi phù hợp là aaa
hay bbb
. Nhưng cú pháp kết quả sẽ quá cồng kềnh, vì vậy tôi chưa bao giờ thực sự thử nó.
Vấn đề là, theo mức độ phổ biến của một nhiệm vụ, tôi nghĩ rằng phải có một cách tốt hơn, một bước duy nhất, cách thực hiện, hoặc được tích hợp hoặc trong một gói hiện có. Lanhung?
query-replace
, tôi biết rằng thường là nhanh M-% str1 str2
hơn để di chuyển điểm và thực hiện thay đổi bằng tay. Thật tuyệt, vì tôi không phải lãng phí thời gian để suy nghĩ về những gì sẽ nhanh nhất, ngay cả khi chỉ có một lần xuất hiện str1
. Lý tưởng nhất là tôi muốn đảo ngược văn bản nhanh như vậy, để tôi có thể sử dụng nó mà không cần suy nghĩ về nó.
(setq a (prog1 b (setq b a)))
. Và thậm chí có thể có một cách đơn giản hơn.
\,(if \1 "b" "a")
đặc biệt xấu xí (chống lại sự khai thác lại \(a\)\|b
), nhưng các từ vẫn phải gõ hai lần, nếu điều đó làm phiền bạn.
\(aaa\)\|bbb
?