Apakah mungkin untuk menampilkan / menyembunyikan semua baris yang cocok di vi atau Vim? Bukan sorotan tetapi hanya menampilkan garis-garis itu saja.
Misalnya saya memiliki teks dengan kata kata ERROR
. Bagaimana cara membuatnya hanya menampilkan baris yang berisi ERROR
dan bagaimana cara menampilkan hanya baris tanpa ERROR
?
Apakah ada solusi tanpa menghapus semua baris yang cocok dan kemudian membatalkannya?
Jawaban:
Apakah Anda tahu tentang
:global
perintah itu? Apakah ini sesuai dengan keinginan Anda?dan sebaliknya:
atau setara:
sumber
g<
untuk melihat lagi, atau@:
jika Anda belum menjalankan dan perintah.Pendekatan lain yang bergantung pada kasus penggunaan Anda akan menggunakan vimgrep dan hasilnya dalam perbaikan cepat . Anda dapat melakukan hal berikut:
:vimgrep pattern %
akan mencari file saat ini dan membawa Anda ke hasil pencarian pertama. Lebih penting lagi, ini juga menempatkan hasil di "daftar perbaikan cepat".:copen
kemudian akan membuka daftar quickfix di jendela quickfix terpisah. Jadi Anda akan memiliki jendela terpisah dengan semua baris dari vimgrep terakhir Anda. Di dalam jendela quickfix, Anda dapat menekan Enter atau mengklik dua kali pada baris untuk melompat ke baris yang sesuai di file asli Anda.:colder
akan membiarkan Anda kembali ke daftar quickfix yang lama (hasil vimgrep yang lebih lama). Dan:cnewer
maju ke hasil pencarian yang lebih baru.Perhatikan bahwa daftar quickfix juga diperbarui saat dijalankan
:make
(itulah sebabnya disebut quickfix untuk memperbaiki kesalahan). Karena itu, ada juga perubahan pada daftar quickfix yang disebut "daftar lokasi". Untuk menggunakannya sebagai gantinya Anda menggunakan:lvimgrep
, kemudian gunakan perintah l-diawali daripada perintah c-diawali -:lopen
,:lolder
,:lnewer
.Tentu saja masih banyak yang bisa Anda lakukan. Lihat
:help quickfix
untuk info lebih lanjut.PS, Anda mengatakan Anda tidak menginginkan pendekatan yang menghapus garis dan kemudian membatalkannya. Tetapi karena Anda menandai
g/ERROR
sebagai jawaban saya pikir saya akan menunjukkan cara cepat dan kotor untuk dilakukang!/ERROR/d
. Anda kemudian dapat dengan mudah membatalkannya menggunakanu
. Juga FYI, Anda dapat melakukannya:set hlsearch
untuk menyorot pola yang cocok dengan:g
perintah.sumber
Kamu dapat memakai
untuk mencetak semua baris dengan ERROR
Juga ada plugin Vim yang saya lihat berkali-kali tetapi tidak digunakan: foldsearch: lipat garis yang tidak cocok dengan pola yang diberikan
sumber
Cara terbaik untuk melakukannya adalah->
Ini akan membuka daftar pencocokan untuk kata kunci Anda dan juga akan menampilkan hanya baris yang cocok di jendela perbaikan cepat.
Ganti% dengan path ke file jika tidak mempertimbangkan file saat ini.
sumber
jika Anda kebetulan menggunakan,
fzf
Anda dapat menggunakan::Lines
di semua file terbuka:BLines
hanya di buffer terbuka:Rg [pattern]
menggunakanripgrep
sumber
:vimgrep /something/g % | copen
bekerja dengan baik. Juga:g/<pattern>/d
dapat digunakan untuk menghapus garis dengan polasumber
Beberapa cara kotor hackish untuk melakukan ini:
sumber
Yang Anda maksud adalah perintah di vim yang lebih sedikit & / pattern / yang menunjukkan baris yang berisi / pattern / (seperti grep).
sumber