Bagaimana cara menghapus semua baris yang TIDAK mengandung kata tertentu di Vim?


116

Dalam vim saya dapat menghapus semua baris yang berisi kata "harga" dengan ini

:g /price/d

Bagaimana saya bisa menghapus semua baris yang TIDAK mengandung kata "harga"?


1
Bisakah pertanyaan ini dimigrasikan ke vi.stackexchange.com ? Saya mencoba menandai untuk migrasi tetapi tidak dapat menemukannya.
Mu Mind

@MuMind Ada topik di sini, jadi tidak perlu bermigrasi . " Jangan bermigrasi demi migrasi. Kami hanya memigrasikan pertanyaan karena mereka di luar topik di situs asli . Sangat mungkin bagi pertanyaan untuk menjadi di-topik di beberapa situs, tetapi itu bukan alasan untuk bermigrasi di tempat lain, kecuali OP meminta migrasi. " Juga, hanya karyawan SE yang dapat bermigrasi setelah 60 hari dan sangat jarang terjadi (bahkan moderator tidak dapat memigrasi pertanyaan lama).
8bittree

Jawaban:


158

Anda dapat gunakan

:%g!/price/d

untuk menghapus setiap baris yang tidak mengandung "harga"


3
Saya tahu ini akan mudah ...
digitaljoel

35
:g!juga dikenal sebagai :v(mirip dengan grep -v).
Chris Johnsen

3
Apa yang %dilakukan?
hippietrail

4
%adalah rentang khusus dalam konteks ini yang berarti keseluruhan file. Lihat :help cmdline-ranges.
Heptite

1
%bersifat opsional karena rentang default adalah seluruh buffer.
stillanoob


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.