Berlawanan dengan paragraf isi


25

Emacs memiliki fungsi fill-paragraph. Apakah ada fungsi yang akan melakukan kebalikan dari itu?

Saya memiliki paragraf yang sudah diisi dan sebagai gantinya saya menginginkannya dalam satu baris tunggal?


1
fill-paragraphtidak tidak membenarkan paragraf, kecuali jika Anda menggunakan argumen awalan atau lulus non- nilpertama argumen. Lihat (emacs)Fill Commands .
Drew

Jawaban:


20

Mengutip dari Emacs Wiki , oleh Stefan Monnier:

Mengisi paragraf bergabung dengan semua baris dalam paragraf menjadi satu baris. Ini kebalikan dari FillParagraph .

Ini berfungsi di mana garis berakhir dengan karakter baris baru ("\ n") dan paragraf dipisahkan oleh baris kosong. Untuk membuat akhir paragraf dalam satu baris baru, maka gunakan fungsi di bawah ini:

;;; It is the opposite of fill-paragraph    
(defun unfill-paragraph ()
  "Takes a multi-line paragraph and makes it into a single line of text."
  (interactive)
  (let ((fill-column (point-max)))
    (fill-paragraph nil)))

Dan untuk mengikatnya ke sebuah kunci:

 ;; Handy key definition
 (define-key global-map "\M-Q" 'unfill-paragraph)

Lihat juga UnfillRegion , dan UnwrapLine .


12
Ini adalah salinan langsung dari halaman Wiki Emacs UnfillParagraph , dengan atribusi penulis (Stefan Monnier) dihapus. Sangat membantu untuk memposting informasi di sini, tetapi setidaknya menjelaskan siapa yang menulis kode dan tautan ke halaman wiki itu.
Drew

12
Cukup sopan untuk menambahkan atribusi ketika Anda menggunakan informasi orang lain.
nicael

2
Terima kasih kepada Malabarba untuk membuat perubahan. @ KingShimkus: nicael menjelaskan mengapa ini lebih baik.
Drew


1
Perhatikan tautan ke sumber berubah. Saya mengeditnya dalam jawaban.
smonff

4

Metode saya akan menempatkan kursor pada baris terakhir paragraf dan memukul M-^beberapa kali.

Keindahan dari pintasan ini adalah bahwa selain menyatukan garis, ia mengurangi jumlah ruang indentasi menjadi satu.


AFAIK, Anda bisa melakukannya M-^dan Anda hanya perlu menahan tombol. Fungsi ini dinamai delete-indentation.
rasmus

Untuk apa nama fungsinya M-S-^, sepertinya tidak berfungsi untuk saya?
Sibi

Ya fungsinya delete-indentationdan pintasan dijelaskan dalam Emacs sebagai M-^- shift ( S) ditambahkan oleh saya, karena Anda tetap harus menahannya. Maaf atas kebingungan
Rajish

2

Ada unfillpaket untuk ini sekarang.

Menyediakan perintah untuk paragraf dan wilayah yang secara eksplisit tidak terisi (mis. Bongkar), dan juga perintah yang akan beralih antara mengisi dan tidak mengisi paragraf atau wilayah saat ini.

Hal ini didasarkan pada awalnya XAH Lee contoh dan kemudian ditulis ulang berdasarkan artikel oleh Artur Malabarba

Ini memberikan yang berikut:

M-x unfill-region
M-x unfill-paragraph
M-x unfill-toggle
M-x toggle-fill-unfill

Lebih mudah untuk menambahkan keybinging berguna dari pilihan Anda seperti:

(global-set-key (kbd "<f8>") 'toggle-fill-unfill)

Bisakah Anda memberikan informasi lebih lanjut tentang @easyE ini?
smonff

1
Kesalahan saya: kode berdasarkan contoh XAH Lee telah tidak dimasukkan sebagai bagian dari Emacs, tetapi [ yang dimasukkan sebagai paket MELPA] ( melpa.org/#/unfill ).
easyE

@ mudah Saya tidak mendapatkan perbedaan antara komentar Anda dan isi jawaban saya, maaf.
smonff

Saya belum berpendapat bahwa ini perbedaan. Saya keliru dalam mengira pacakge yang tidak terisi telah dimasukkan dalam Emacs 25, dan kemudian saya mengoreksi diri.
easyE

1

Seperti biasa, ada beberapa cara untuk melakukan ini, jadi saya akan melemparkan jawaban lain di atas ring:

  1. Tandai paragraf: M-h

  2. Kueri ganti baris baru dengan ruang di wilayah:

    M-% C-q C-j RET SPC RET !


0

Kekurangan pria miskin juga dapat dilakukan dengan terlebih dahulu mengatur nilai yang fill-columnsangat tinggi (saya gunakan 9999) dan kemudian mengisi. Misalnya C-u 9999 C-x f M-q C-u 70 C-x f,. (Juga, Anda mungkin lebih memilih C-9 C-9 C-9 C-9untuk C-u 9999.)


0

Dalam mode Jahat ada Jkunci yang mengikat normal modedari VIM. Ini bergabung dengan garis di bawah ini dan garis saat ini menjadi satu baris. Jadi dengan menekannya beberapa kali, Anda dapat membatalkan paragraf yang diisi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.