Saya melihat seorang ninja vim yang terampil melakukan ini beberapa waktu lalu, tetapi saya tidak tahu harus memulainya.
A) Apakah ada cara untuk mengatur warna latar belakang vims sehingga garis berurutan dengan konten yang identik dapat disorot.
B) Jika seseorang tahu bagaimana melakukan itu tweak bagus untuk ini akan terjadi jika penyorotan terjadi pada baris berturut-turut tetapi hanya mempertimbangkan kata pertama (bukan seluruh baris).
Tweak kedua jika penyorotan dapat dikonfigurasikan ke warna berbeda digunakan berdasarkan jumlah baris yang cocok (atau kata-kata tergantung pada AB aktif). Jadi kita hanya memiliki dua garis berurutan yang cocok dengan hijau, 3-5 garis berurutan kemudian oranye, 6+ kemudian merah.
syntax-highlighting
highlight
Martin York
sumber
sumber
Jawaban:
Set berikut
match
tampaknya berfungsi untuk (A):Tampaknya urutannya sangat penting di sini. Jika
Low
atauMedium
cocok setelahCritical
, itu akan dimasukkan oleh persyaratan lebih longgar dari ini, dan juga untukLow
wrtMedium
.Penyorotan tidak muncul segera setelah Anda menambahkan, katakanlah, garis dupe ke-3 atau ke-6, tetapi begitu Anda bergerak sedikit setelah menambahkannya. Saya tidak yakin apa yang memicu itu, tepatnya.
Untuk B, saya bayangkan Anda bisa mengganti regex dengan:
Secara umum, ganti semua
(.*)
dengan(\S+).*
dan\1
dengan\1.*
, atau apa pun yang merupakan kata untuk Anda.sumber
Sebagai titik awal, berikut adalah pola pencarian yang cocok dengan garis duplikat (mengabaikan perubahan dalam spasi putih terkemuka):
:help pattern
akan memberikan info lebih lanjut tentang cara membuat regex seperti ini:help syntax
akan menunjukkan kepada Anda cara mengambil ekspresi reguler ini dan mengubahnya menjadi sesuatu yang disorot untuk AndaBelajar menulis skrip sintaksis bisa jadi sulit, jadi solusi jangka pendek yang baik adalah dengan melakukan ini 'on the fly' dengan memastikan
'incsearch'
diatur sehingga pencarian disorot dan memetakan kunci untuk melakukan pencarian di atas, yaitunnoremap <F5> /^\s*\(.\+\)\n\zs\(\s*\1\n\)\+<CR>
sumber
yy10p
pada baris dengan regex penuh lalu pilih bagian yang ingin Anda hapus dan tekanr<space>
. Mungkin saya akan menambahkan perintah untuk 'mengganti semuanya kecuali pemilihan pada baris ini dengan spasi' untuk mempercepat segalanya.,r
lalu gabungkan garis bersama<space>
dalam mode normal / visual.