Làm thế nào để vô hiệu hóa tự động thụt dòng mới?


37

Gần đây tôi đã nâng cấp emacs lên phiên bản 24.4.1 và một cái gì đó đã thay đổi khi thụt dòng mới. Khi tôi nhấn, entertôi chỉ mong đợi ký tự dòng mới "trần" tại điểm có con trỏ, đặc biệt nếu tôi ở giữa dòng, dòng đó sẽ bị tách và không có ký tự nào bị xóa kể cả khoảng trắng. Không may, không phải trường hợp này.

Đây là ví dụ:

a b

Khi tôi đặt con trỏ ngay sau đó avà nhấn, entertôi nhận được:

a
b

trong khi nó nên

a
 b

Tôi googled một chút và có lẽ điều này là do tự động thụt lề, làm thế nào tôi có thể vô hiệu hóa điều này? Tôi đang nói về văn bản hoặc chế độ cơ bản nếu điều đó quan trọng.


7
Đối với hậu thế, tôi có một bình luận để thêm vào điều này. Nhiều vấn đề "nâng cấp gần đây" có thể được giải quyết bằng cách đọc TIN TỨC với M-x view-emacs-news(hoặc C-h n). Bạn có thể đọc TIN TỨC cho bất kỳ phiên bản trước bằng cách thêm tiền tố arg. Khi xem TIN TỨC và thực hiện tìm kiếm "thụt lề", kết quả đầu tiên cực kỳ giống với câu trả lời của Drew. Chỉ là một mẹo hữu ích cho bất kỳ vấn đề liên quan đến nâng cấp.
mẫu

Câu trả lời:


49

Vô hiệu hóa electric-indent-mode:

(when (fboundp 'electric-indent-mode) (electric-indent-mode -1))

Điều đó làm việc với bất kỳ phiên bản Emacs. Sự phiền toái hoặc tính năng sáng bóng mới này, tùy theo quan điểm của bạn, được giới thiệu là mặc định trong Emacs 24.4.

Xem thêm bài viết tương tự này trên StackOverflow.

(Tuy nhiên, có vẻ như bạn đang nói ngược lại và bạn muốn RET thụt lề nhưng không nhận được sự thụt lề đó. Điều thay đổi là RET("Enter") bây giờ tự động thụt lề và bạn cần nhấn C-jđể chỉ nhận một dòng mới Không có sự thụt dòng. Họ đã tráo đổi RETC-jcó hiệu lực. Nếu bạn muốn RETthụt lề, thì hành vi mặc định mới sẽ cung cấp cho bạn những gì bạn muốn. Trong mọi trường hợp, chế độ là electric-indent-mode: bật hoặc tắt, như bạn muốn.)


1

Có khả năng chèn một char newline với C-q C-jvà có 3 lệnh để phân chia các dòng: open-line C-o, split-line C-M-onewline RET, C-mbạn sử dụng. Nếu bạn định vị con trỏ như bạn đã nói sau avà nhấn C-othì dòng hiện tại sẽ bị phá vỡ sau con trỏ và mọi char sẽ nằm ở dòng tiếp theo. dòng chia sẽ giữ vị trí cột sao cho một khoảng trống thừa được chèn vào trước nội dung.

Hmm, thật thú vị, với C-M-odòng hiện tại cũng có thêm một khoảng trống ở cuối để bvị trí và con trỏ thẳng hàng sau khi thay đổi.

Trong chế độ cơ bản, C-jthay đổi bộ đệm theo mong đợi của bạn trên máy của tôi và C-jbị ràng buộc vớielectric-newline-and-maybe-indent

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.