Bagaimana cara menonaktifkan indentasi baris baru?

37

Saya baru-baru ini meningkatkan emacs ke versi 24.4.1 dan ada sesuatu yang berubah dalam lekukan baris baru. Ketika saya menekan entersaya berharap hanya "telanjang" karakter baris baru pada titik di mana kursor hadir, khususnya jika saya di tengah-tengah baris, baris itu harus dipisah dan tidak ada karakter yang dihapus termasuk spasi. Sayangnya ini bukan masalahnya.

Berikut ini contohnya:

a b

Ketika saya meletakkan kursor tepat setelah adan menekan entersaya dapatkan:

a
b

sementara itu seharusnya

a
 b

Saya googled sedikit dan mungkin ini karena indentasi otomatis, bagaimana saya bisa menonaktifkan ini? Saya berbicara tentang teks atau mode fundamental jika itu penting.

WeSenseASoulInSearchOfAnswers
sumber
7
Untuk anak cucu, saya punya komentar untuk ditambahkan ke ini. Banyak masalah "peningkatan terbaru" dapat diselesaikan dengan membaca BERITA dengan M-x view-emacs-news(atau C-h n). Anda dapat membaca BERITA untuk versi sebelumnya dengan menambahkan awalan arg. Setelah melihat NEWS dan melakukan pencarian untuk "indent", hasil pertama sangat mirip dengan jawaban Drew. Hanya tip bermanfaat untuk masalah apa pun yang berkaitan dengan peningkatan.
pengasuh

Jawaban:

49

Nonaktifkan electric-indent-mode:

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

Itu bekerja dengan versi Emacs. Gangguan atau fitur baru mengkilap ini, tergantung pada sudut pandang Anda, diperkenalkan sebagai default di Emacs 24.4.

Lihat juga pos serupa ini di StackOverflow.

(Namun, sepertinya Anda mengatakan sebaliknya , dan bahwa Anda ingin RET indentasi tetapi tidak mendapatkan indentasi itu. Apa yang telah berubah adalah bahwa RET("Enter") sekarang indentasi secara otomatis, dan Anda perlu menekan C-juntuk mendapatkan hanya baris baru dengan tidak ada indentasi. Mereka bertukar RETdan C-j, pada dasarnya. Jika Anda ingin RETindentasi, maka perilaku default baru akan memberi Anda apa yang Anda inginkan. Dalam setiap kasus, modenya adalah electric-indent-mode: nyalakan atau matikan sesuai keinginan Anda.)

Drew
sumber
1

Ada kemungkinan untuk memasukkan char baris baru dengan C-q C-jdan ada 3 perintah untuk membagi baris: open-line C-o, split-line C-M-odan newline RET, C-mAnda digunakan. Jika Anda memposisikan kursor seperti yang Anda katakan setelah adan tekan C-ogaris saat ini akan rusak setelah kursor dan setiap karakter akan berada di baris berikutnya. split-line akan menjaga posisi kolom sehingga kosong tambahan dimasukkan sebelum konten.

Hmm, menarik, dengan C-M-ogaris saat ini juga mendapat tambahan kosong pada akhirnya sehingga posisi bdan kursor berbaris setelah perubahan.

Dalam mode dasar C-jmengubah buffer sesuai harapan Anda pada mesin saya, dan C-jterikatelectric-newline-and-maybe-indent

p_wiersig
sumber