Bagaimana cara mencapai penomoran daftar otomatis di vim?

11

Kontrak dll hal formal perlu daftar bernomor.

1. Some text

2. More text

 2.1. Sub-section text

dll.

Kuncinya adalah untuk menghilangkan penomoran ulang secara manual saat memasukkan atau menghapus item daftar. Apakah ini mungkin vim? Konsistensi penomoran daftar sangat sulit untuk dilacak secara manual.

Salah satu tujuan yang terkait dengan ini adalah untuk memiliki kontrol revisi yang tepat dimungkinkan oleh format penyimpanan yang tidak dikaburkan, seperti teks yang jelas.

lkraav
sumber
1
Jika PDF dapat diterima, maka markdown daftar yang tidak bernomor dapat digunakan untuk menandai item daftar dan asciidockemudian dapat digunakan untuk mengkonversi markdown menjadi PDF dengan penomoran baris. Tapi saya juga ingin tahu cara menggunakan vim untuk penomoran baris otomatis file teks saja.
Wildcard
1
Itu sesuatu yang pengolah kata cukup baik.
romainl
@Wildcard PDF memang dapat diterima, satu-satunya hal adalah penandaan anonim awal membuat merujuk ke item bernomor tertentu di seluruh dokumen menjadi sulit. Tapi tetap saja, metode Anda jelas lebih baik daripada tidak sama sekali.
lkraav
Apakah dapat diterima untuk menggunakan beberapa bentuk penurunan harga yang kemudian akan dikonversi / tidak dikonversi secara otomatis dengan perintah ex-mode? misalnya awalan dengan item-item daftar level atas - , item-item daftar level kedua dengan -- , dll. Hal ini tampaknya merupakan jalan pendekatan yang paling mungkin; lihat pertanyaan terakhir saya tentang penomoran berurutan dalam Mode-Ex untuk titik awal.
Wildcard
Karena pilihannya langka, apa pun bisa terjadi.
lkraav

Jawaban:

1

Saya memiliki plugin yang dapat (Sebagian?) Membantu Anda: lazyList (Tidak ada penomoran daftar otomatis).

Dalam contoh berikut ( _adalah posisi kursor) ...

1. Some text
2. More text   
 Sub-secti_on text
 Sub-section text   
 Sub-section text

... cukup jalankan perintah :LazyList '2.%1%. 'untuk mendapatkan:

1. Some text
2. More text   
 2.1. Sub-secti_on text
 2.2. Sub-section text   
 2.3. Sub-section text

Untuk menghapus indeks, jalankan perintah yang sama.

Secara default, indeks ditambahkan ke paragraf saat ini (Indentasi yang sama atau ketika dikelilingi oleh baris kosong), tetapi Anda dapat menambahkannya ke pilihan visual.

Cara yang baik untuk melakukannya dalam kasus Anda:

  1. Tambahkan indeks
  2. Hapus indeks sebelum menambahkan elemen baru.
  3. Tambahkan indeks setelah menambahkan elemen baru.

Video ini harus lebih eksplisit.

Yang buruk dengan plugin, adalah bahwa ia tidak mempertimbangkan pemilihan visual dengan baris kosong, saya harus mempertimbangkan kembali perilaku ini.

PS Bahasa Inggris bukan bahasa ibu saya, jadi mohon maafkan kesalahannya.

MisterOccan
sumber