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.


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

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


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                               |
-----------------------------------------------

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!


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 !!


13

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

Lihat disini


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.


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!


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.


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,}

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.


Tidak ditemukan (di Manjaro Linux).
Marcelo Agimóvel

2
Itu karena itu adalah ekstensi Visual Studio bukan ekstensi Visual Studio Code.
Rene Juuse


0

Ada versi saya untuk membersihkan garis kosong dengan ruang putih:

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

-1

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


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.


5
Visual Studio 2015 bukan Visual Studio Code.
Robert Kaucher
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.