Sublime Text 2: Cara menghapus baris kosong / kosong


272

Katakanlah saya memiliki file teks dengan sembilan baris berikut:

foo

bar

baz

qux

quux

Bagaimana saya bisa menggunakan Sublime Text 2 untuk menghapus keempat baris kosong / kosong, hanya menyisakan lima baris?

Jawaban:


658

Pilih teks

Tekan:

  • Ctrl+ Hdi PC, atau
  • Command+ Alt+ Fdi Mac atau
  • Klik Temukan-> Ganti.

Pastikan Anda telah memilih 'ekspresi reguler' dengan menekan:

  • Alt+ Rdi PC atau
  • Command+ Alt+ Rdi Mac atau
  • Klik .*di kotak Temukan.

Menemukan apa: ^\n

Ganti Dengan: (tidak ada, biarkan kosong).


3
Itu berhasil, terima kasih! Apakah ada cara untuk mengikat yang menemukan / mengganti ke pintasan keyboard atau entah bagaimana menyimpannya untuk akses cepat? Saya mencari di Google dan tidak dapat menemukan apa pun
Nick

46
Saran kecil digunakan ^(\r|\n\r?)untuk mencakup semua kemungkinan jeda baris.
Haris Krajina

5
Bagi saya (Sublime Text 2) pintasan adalah (Alt + Cmd + F) kemudian seperti yang dijelaskan oleh Hugp Corra
Maxence

24
Cara yang lebih baik untuk menemukan semua baris kosong (termasuk yang memiliki spasi) adalah: ^[\s]*?[\n\r]+
Crates

5
@ Krat Anda tidak perlu ?, karena *juga cocok dengan nol kejadian dan \s*akan cocok dengan tambahan '\ r' ketika misalnya mengedit teks windows di lingkungan linux, begitu ^\s*$juga triknya.
drevicko

67

Regexp dalam jawaban Hugo benar ketika tidak ada spasi di baris. Dalam hal jika ada ruang regexp bisa^\s+$


32
Itu mengasumsikan bahwa ada ruang putih. Juga, itu tidak akan berhasil untuk benar-benar mengganti garis dengan apa pun. Coba ^[\s]*?[\n\r]+saja. Saya sudah menguji itu, dan itu berhasil.
Crates

24

Ada juga beberapa ST2 / ST3 Plugins untuk tugas-tugas tersebut. Saya suka keduanya:

Yang pertama memiliki dua metode untuk menghapus baris kosong / tidak perlu. Salah satunya disebut Delete Surplus Blank Linesyang keren. Ini hanya menghapus baris-baris yang diikuti oleh baris kosong lainnya


10

Solusi Temukan / Ganti:

Temukan Regex:\s+

Ganti dengan: // ruang tunggal


3
Sebenarnya, ini: $ \ s +
kris

8

Bahkan tidak tahu bagaimana semua ini bekerja, tetapi saya mencoba ^\s*$dan tidak berhasil (masih menyisakan beberapa baris kosong).

Ini malah ^\s*berfungsi untuk saya

{teks luhur 3}


7

Saya harus menggunakan:

ganti \ n ^ \ s * \ n dengan \ n

The https://github.com/NicholasBuse/sublime_DeleteBlankLines Plugin melakukan apa-apa.


2
Pastikan Anda memilih area yang Anda inginkan untuk efek dan kemudian gunakan tombol pintas masing-masing Windows : Ctrl + Alt + Backspace (Hapus Baris Kosong) Ctrl + Alt + Shift + Backspace (Hapus Surplus Baris Kosong) OSX : Ctrl + Alt + Delete (Hapus Baris Kosong) Ctrl + Alt + Shift + Delete (Hapus Baris Kosong) Linux : Ctrl + Alt + Backspace (Hapus Baris Kosong) Ctrl + Alt + Shift + Backspace (Hapus Surplus Blank Lines)
Xtremefaith

5

Teks Sublime 2 & 3

Komentar dari @crates bekerja untuk saya,

Langkah 1: Cukup tekan ctrl+H

Langkah 2: tekan tombol RegEX

Langkah 3: tulis ini di Temukan: ^[\s]*?[\n\r]+

Langkah 4: ganti semua


5

Lebih sederhana dari yang saya kira. Ctrl+ ADiikuti oleh Ctrl+ HKemudian Pilih Ekspresi Reguler .*. Ganti \n\ndengan \n. Voila!


3

Anda mencari ini:

^\n|^\s+$

itu tidak akan menghapus baris, jika ada konten dengan spasi putih atau tab di depan>

misalnya:

ini tidak akan dihapus: ... spasi ... abc

... tab ... abc

ini akan:

... ruang ... ... tidak ada yang lain ...

... tab ... ... tidak ada yang lain ...


3

Menggunakan banyak pilihan: pilih satu pasang jeda baris, lalu gunakan Cari Cepat Semua ( Alt+ F3), atau Tambah Cepat Berikutnya ( Ctrl+ D) berulang kali, untuk memilih semuanya; lalu tekan Enteruntuk menggantinya dengan jeda baris tunggal.


1
Dalam dokumen besar, saya menemukan ini crash Sublime.
Thalecress

3

Mereka adalah cara yang lebih mudah untuk melakukannya tanpa regex. Anda tinggal memilih seluruh teks. lalu pergi ke: Edit -> Permute Lines -> Unique.

Itu saja. dan semua baris kosong akan dihapus.


Ini akan menghapus SEMUA baris non-unik. Bukan hanya kosong. Jadi, katakan Anda memiliki HTML dengan banyak baris menjadi satu penutup </div>, itu akan menghapus semuanya kecuali yang pertama. Atau dalam kode, itu akan menghapus semua penutup Anda}. Ini tidak dapat diandalkan untuk menghapus hanya baris kosong, mengerti apa yang dilakukannya.
Ivan McA

2

Cara lain, Anda dapat menggunakan baris perintah cc.dblConyEdit (sebuah plugin) untuk menghapus baris kosong atau baris kosong.


1

Ada juga "Gabung baris". Jika pada OSX, pilih semua teks Anda, dan tekan CMD-J beberapa kali, dan itu akan menciutkan pilihan Anda dengan baris, menghapus jeda baris.

Sunting: Pendekatan ini akan membuat Anda memiliki segalanya dalam satu baris, yang bukan yang Anda minta.


2
saya melihat di mana Anda akan pergi dengan ini .. saran ini menghasilkan menyeret semua konten ke dalam satu baris, tetapi makro akan membuat ini berfungsi: (tombol OSX) ctrl-q(catatan makro), cmd-j(gabung baris) down arrow,, ctrl-q(akhir makro) . Kemudian shift-ctrl-qulangi sesering yang diperlukan ...
ptim



0

Dalam kasus saya beberapa baris kosong berisi karakter unicode nol lebar ruang (U + 200b). Untuk menghilangkan baris kosong, termasuk yang dengan karakter unicode ini:

\s\x{200b}|^\s

0

Dengan menggunakan find / replace, coba tempelkan pilihan mulai dari akhir baris di atas baris kosong dan berakhir di awal baris setelah kosong. Ini berfungsi untuk satu baris kosong. Anda dapat mengulangi proses untuk beberapa baris kosong juga. CTRL- H, letakkan pilihan Anda di kotak temukan dan letakkan satu baris baru di kotak ganti melalui salin / tempel atau metode lain.


0

Untuk menemukan spasi tambahan dan garis kosong, tekan Ctrl+ Shift+ F Pilih Regular Expressions Find

[\n\r]{2,}

lalu ganti dengan

\n

untuk menghapus semua jenis ruang di luhur dan dreamviewr


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.