Visual Studio Code - hapus semua baris kosong - regex

133

Saya menghabiskan beberapa waktu mencoba mencari cara menghapus semua baris kosong di Visual Studio Code dan saya tidak bisa membuatnya bekerja. Adakah yang tahu bagaimana cara melakukannya?

Jika saya mencari ^$sambil mengetiknya di bidang pencarian VSC memang menemukan baris kosong (baris benar-benar kosong, berarti tidak ada spasi putih) tetapi tidak menghapusnya ketika saya menekan Ganti Semua. Itu tidak melakukan apa-apa: ^ $

Untuk baris kosong dengan spasi ^\s+$Cari berfungsi, tetapi itu tidak menghapusnya. Apa yang dilakukannya adalah menggantikannya dengan baris kosong tanpa spasi :)) ^ \ s + $

Pasti saya melakukan sesuatu yang salah. Aku hanya tidak tahu apa itu. Adakah yang tahu? Terima kasih.

jozefk
sumber
1
Saya menambahkan komentar pada masalah yang Anda buka tentang ini tetapi untuk orang lain, $tidak benar-benar cocok dengan karakter baris baru, itu cocok dengan token lebar-nol yang ada sebelum karakter baris baru. Untuk mengganti baris baru yang perlu Anda gunakan \ntetapi VS Code saat ini tidak mendukung pencocokan regex multi-baris ( # 313 )
Marie
Marie terima kasih Sepertinya kita harus menunggu sebentar.
jozefk
4
Temukan ini dalam mode regex ^ $ \ n dan ganti dengan kosong juga akan berfungsi dengan baik. Selamat Coding !!!
sajal rajabhoj
Langkah mudah: stackoverflow.com/a/50042582/6597375
Deepu Reghunath

Jawaban:

194

Bagi mereka yang mungkin tertarik - apa yang berhasil untuk saya di versi 1.3.1 (dan masih berfungsi di 1.33.1) untuk menghapus baris kosong yang saya gunakan ctrl+ h(temukan dan ganti) alt+ r(Gunakan ekspresi reguler)

Kemudian di kotak cari:

\n\n

Di kotak ganti:

\n

Ini harus membuat dua tanda garis berurutan menjadi satu.

diedit:

Jika Anda perlu mengganti lebih banyak baris kosong (lebih dari dua) sekaligus, Anda dapat menggunakan persamaan reguler berikut di kotak cari:

\n+

Jika Anda perlu mengganti juga baris kosong dengan spasi putih, maka Anda perlu menggunakan persamaan reguler berikut di kotak cari:

\n+\s*\n

Kode VS menggunakan ekspresi reguler javascript

Suchoss
sumber
10
Sejalan dengan ini, saya menggunakan^[\r\n]{3,}
RJ Cuthbertson
Ini bekerja sekarang. Terima kasih :) Banyak versi VSC di antaranya tapi tidak apa-apa. Ganti \ n \ n dengan \ n bekerja dengan baik.
jozefk
Lihat juga solusi @Dzumret di bawah ini. Dalam solusi saya, itu hanya menghapus garis di mana tidak ada. Solusinya menghapus garis di mana ada juga beberapa karakter spasi putih (spasi, tab)
suchoss
Jawaban ini tidak mengambil semua kasus, bagaimana jika Anda memiliki spasi di baris kosong
dhaker
1
Bagus! Untuk menghapus lebih dari satu baris kosong berturut-turut, saya mengganti \ n + dengan \ n. Untuk mengakuisisi ruang putih juga ganti (^ \ s * \ n) + dengan tidak ada
Ilario
114

Yang juga berfungsi adalah pola regex ini:

^\s*$\n

Kemudian CTRL+Enteruntuk mengganti semua lini.

Penjelasan pola di atas:

-----------------------------------------------
|  ^ | beginning of string anchor             |
-----------------------------------------------
| \s | any whitespace character               |
-----------------------------------------------
| '*'| zero or more repetitions               |
-----------------------------------------------
|  $ | end of string anchor                   |
-----------------------------------------------
| \n | new line                               |
-----------------------------------------------
Dzumret
sumber
Tidak yakin tetapi hanya ini yang berhasil bagi saya, dibandingkan dengan semua jawaban lainnya. Dijelaskan dengan baik juga. Terima kasih.
Sai
Menempatkan bagian \nluar jangkar adalah yang berhasil bagi saya. VSCode kemudian membiarkannya diganti dengan yang tidak ada (bidang "ganti dengan" kosong).
Eric
46

Visual Studio Code 1.13.0 Linux Lite:

  • Hit CTRL+H
  • Pilih "Gunakan Ekspresi Reguler"
  • Temukan kotak: ^ (\ s) * $ \ n (masukkan banyak akhiran \ n sesuai kebutuhan)
  • Ganti kotak: kosong
  • Klik ganti semua

Baris kosong hilang!

Antonio Delgado
sumber
18

Inilah regex saya, ia menangkap semua baris baru ekstra dan baris kosong yang hanya berisi ruang, tab, dll

\n\s*\n

Dan saya mengganti semua kecocokan dengan \n

Penjelasan

\n       : New Line
\s*      : Zero or more consecutive white space characters or new lines
\n       : Another New Line

PS: Ingatlah untuk memilih opsi regex di jendela pencarian !!

Muhammad Shabin
sumber
13

Coba gunakan ^ \ s * \ n dalam dialog Ganti Kode VS -

Lihat disini

NEO
sumber
6

tidak, kamu melakukannya dengan benar.

Saya mendapatkan perilaku yang sama di sini.

Saya juga mencoba regex lain: (\r?\n){2,} tetapi tampaknya hanya berfungsi untuk satu baris.

mungkin ada preferensi untuk mengubah perilaku regexp default, atau mungkin VS hanya dibangun sedemikian rupa (berbasis garis)

Tentu saja ini bukan masalah besar untuk menyisipkan dan kembali dari editor teks lain.

kobi7
sumber
3
ini membantu saya hanya setelah saya mengganti semuanya ^\s*$dengan yang kosong, kemudian saya mencoba(\r?\n){2,}
Mihai Popescu
4

Saya tidak tahu tentang Anda, tetapi menghafal banyak perintah bagi saya membuang-buang waktu!

Gunakan ekstensi "Blank Line Organizer", berikut uraiannya:

Ekstensi ini akan membantu Anda mengatur baris kosong dalam kode dengan menghapus beberapa baris kosong. Ekstensi menghapus baris kosong hanya dari baris yang dipilih jika ada, jika tidak dari seluruh file

Cara menggunakannya: periksa deskripsi ekstensi, tetapi benar-benar bagus!

blankLine.triggerOnSave boolean true    If set to true, the command will be triggered on save.

Dengan kata lain, setelah menyimpan file, secara otomatis membersihkan!

Marcelo Agimóvel
sumber
Hai, Yun! Saya menggunakan Sublime Text3 yang telah memecahkan banyak masalah, plus lebih ringan dan memiliki beberapa fitur yang bagus.
Marcelo Agimóvel
plugin apa yang Anda gunakan dengan Sublime Text3? Saya dulu menggunakan Webstorm dan sudah terintegrasi.
Jun711
Html / CSS / JS Prettify
Marcelo Agimóvel
3

Saya menemukan karya-karya berikut yang terbaik bagi saya di Visual Studio:

Menggantikan: ^\n$ Dengan: <no value here>

Ini akan menemukan semua baris kosong dan menghapusnya.

Alan
sumber
3

Pada kasus saya. solusi kobi7 (\r?\n){2,}hanya bekerja untuk saya, saya harus menjalankannya lagi dengan modifikasi kecil untuk membuatnya berfungsi untuk satu baris (hanya berubah 2 ke 1)

^(\r?\n){1,}
Mamdouh
sumber
0

Ekstensi Pembantu Kode adalah semua yang Anda butuhkan. Anda dapat menggunakan pintasan Ctrl M + Space bar untuk Membersihkan file Anda, Ini akan menghapus baris kosong dan memformat kode Anda. Anda juga dapat mengonfigurasi tentang format dan aturan pembersihan. Semoga ini bermanfaat.

Nguyễn Top
sumber
Tidak ditemukan (di Manjaro Linux).
Marcelo Agimóvel
2
Itu karena itu adalah ekstensi Visual Studio bukan ekstensi Visual Studio Code.
Rene Juuse
0

Satu atau beberapa jeda baris (\ n) + dan ganti dengan \ n

Hector Matias Gonzalez
sumber
0

Ada versi saya untuk membersihkan garis kosong dengan ruang putih:

find:    (?:\s*$(\r?\n)){2,}
replace: $1
Artur Paszek
sumber
-1

Ganti: ^ \ n $ Dengan: "ruang kosong"


sumber
dan hapus setiap ruang kosong di dokumen Anda?
Marah 84
-4

Windows 10, Visual Studio 2015

Ctrl + H

Temukan ... -> ^ s *

Menggantikan semua

Ctrl + A

Ctrl + K + F

Terima kasih atas pertanyaan Anda, saya belajar sesuatu yang baru.

nama itu tidak masalah
sumber
5
Visual Studio 2015 bukan Visual Studio Code.
Robert Kaucher