Visual Studio Code - xóa tất cả các dòng trống - regex


133

Tôi đã dành một chút thời gian để cố gắng tìm ra cách xóa tất cả các dòng trống trong Visual Studio Code và tôi không thể làm cho nó hoạt động được. Bất cứ ai biết làm thế nào để làm điều đó xin vui lòng?

Nếu tôi tìm kiếm ^$trong khi gõ nó vào trường tìm kiếm, VSC sẽ tìm thấy các dòng trống (các dòng hoàn toàn trống, có nghĩa là không có khoảng trắng) nhưng nó không xóa chúng khi tôi nhấn Thay thế tất cả. Nó không làm gì cả: ^ $

Đối với các dòng trống có khoảng trắng ^\s+$Tìm kiếm hoạt động, nhưng nó không loại bỏ chúng. Những gì nó làm là nó thay thế chúng bằng một dòng trống không có dấu cách :)) ^ \ s + $

Chắc là tôi đang làm gì đó sai. Tôi chỉ không thể tìm ra nó là gì. Có ai biết không? Cảm ơn.


1
Tôi đã thêm một nhận xét về vấn đề bạn đã mở về vấn đề này nhưng đối với bất kỳ ai khác, $không thực sự khớp với ký tự dòng mới, nó khớp với mã thông báo có độ rộng bằng không tồn tại trước ký tự dòng mới. Để thay thế một dòng mới, bạn cần sử dụng \nnhưng VS Code hiện không hỗ trợ các trận đấu regex nhiều dòng ( # 313 )
Marie

Cảm ơn bạn Marie. Có vẻ như chúng ta phải chờ một lúc.
jozefk

4
Tìm cái này trong chế độ regex ^ $ \ n và thay thế bằng khoảng trống cũng sẽ hoạt động tốt. Chúc mừng mã hóa !!!
sajal rajabhoj

Câu trả lời:


194

Đối với những người có thể quan tâm - những gì đã làm việc cho tôi trong phiên bản 1.3.1 (và vẫn hoạt động trong 1.33.1) để xóa các dòng trống tôi đã sử dụng ctrl+ h(tìm và thay thế) alt+ r(Sử dụng biểu thức chính quy)

Trong hộp tìm sau đó:

\n\n

Trong hộp thay thế:

\n

Điều này sẽ làm cho hai dấu hiệu cuối dòng liên tiếp thành một.

đã chỉnh sửa:

Nếu bạn cần thay thế nhiều dòng trống hơn (nhiều hơn hai) cùng một lúc, bạn có thể sử dụng biểu thức chính quy sau trong hộp tìm kiếm:

\n+

Nếu bạn cũng cần thay thế các dòng trống bằng khoảng trắng, thì bạn cần sử dụng biểu thức chính quy sau trong hộp tìm kiếm:

\n+\s*\n

Mã VS đang sử dụng các biểu thức chính quy javascript


10
Dọc theo những dòng này, tôi sử dụng^[\r\n]{3,}
RJ Cuthbertson

Nó đang làm việc bây giờ. Cảm ơn :) Rất nhiều phiên bản của VSC ở giữa nhưng không sao. Thay thế \ n \ n bằng \ n hoạt động tốt.
jozefk

Cũng xem giải pháp @Dzumret dưới đây. Trong giải pháp của tôi, nó chỉ xóa các dòng không có gì. Giải pháp của anh ta xóa các dòng trong đó cũng có một số ký tự khoảng trắng (dấu cách, tab)
ví dụ như

Câu trả lời này không có trong tất cả các trường hợp, điều gì sẽ xảy ra nếu bạn có khoảng trắng ở dòng trống
dhaker 7/2/19

1
Tuyệt quá! Để xóa nhiều hơn một dòng trống liên tiếp, tôi đã thay thế \ n + bằng \ n. Để thay thế cho khoảng trắng quá thay thế (^ \ s * \ n) + không có gì
Ilario

114

Những gì cũng hoạt động là mô hình regex này:

^\s*$\n

Sau đó CTRL+Enterđể thay thế tất cả các dòng.

Giải thích về mẫu trên:

-----------------------------------------------
|  ^ | beginning of string anchor             |
-----------------------------------------------
| \s | any whitespace character               |
-----------------------------------------------
| '*'| zero or more repetitions               |
-----------------------------------------------
|  $ | end of string anchor                   |
-----------------------------------------------
| \n | new line                               |
-----------------------------------------------

Không chắc chắn nhưng chỉ điều này làm việc cho tôi, so sánh với tất cả các câu trả lời khác. Cũng được giải thích là tốt. Cảm ơn bạn.
Sai

Đặt \nbên ngoài của các neo là những gì làm việc cho tôi. VSCode sau đó cho phép nó được thay thế bằng không có gì (trường "thay thế bằng" trống).
Eric

46

Mã Visual Studio 1.13.0 Linux Lite:

  • Lượt truy cập CTRL+H
  • Chọn "Sử dụng biểu thức chính quy"
  • Tìm hộp: ^ (\ s) * $ \ n (nhập nhiều kết thúc \ n khi bạn cần)
  • Hộp thay thế: trống
  • Nhấn vào thay thế tất cả

Dòng trống đã biến mất!


18

Đây là regex của tôi, nó bắt tất cả các dòng mới và các dòng trống chỉ chứa không gian, các tab, v.v.

\n\s*\n

Và tôi thay thế tất cả các trận đấu bằng \n

Giải trình

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

PS: Hãy nhớ chọn tùy chọn regex trong cửa sổ tìm kiếm !!


13

Hãy thử sử dụng ^ \ s * \ n trong hộp thoại Thay thế của Mã VS -

xem ở đây


6

không, bạn đang làm đúng

Tôi nhận được hành vi tương tự ở đây.

Tôi cũng đã thử một regex khác: (\r?\n){2,} nhưng có vẻ như nó chỉ hoạt động cho các dòng đơn.

có thể có một ưu tiên để thay đổi hành vi regrec mặc định hoặc có thể VS chỉ được xây dựng theo cách như vậy (dựa trên dòng)

dĩ nhiên, việc cắt và dán lại từ một trình soạn thảo văn bản khác không phải là vấn đề lớn.


3
điều này chỉ giúp tôi sau khi tôi thay thế tất cả ^\s*$bằng sản phẩm nào, sau đó tôi đã thử(\r?\n){2,}
Mihai Popescu

4

Tôi không biết về yout, nhưng việc ghi nhớ rất nhiều lệnh cho tôi rất lãng phí thời gian!

Sử dụng tiện ích mở rộng "Trình sắp xếp dòng trống", đây là phần mô tả:

Tiện ích mở rộng này sẽ giúp bạn sắp xếp các dòng trống trong mã bằng cách xóa nhiều dòng trống. Tiện ích mở rộng chỉ xóa các dòng trống khỏi các dòng đã chọn nếu có, nếu không, từ toàn bộ tệp

Cách sử dụng: kiểm tra mô tả về phần mở rộng, nhưng nó thực sự rất đẹp!

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

Nói cách khác, sau khi lưu tệp, nó sẽ tự động dọn sạch!


Xin chào @Jun! Tôi đang sử dụng Sublime Text3 đã giải quyết được rất nhiều vấn đề, cộng với nhẹ hơn và có một số tính năng hay.
Marcelo Agimóvel

Bạn sử dụng plugin nào với Sublime Text3? Tôi đã từng sử dụng Webstorm và nó được tích hợp sẵn.
Jun711

Html / CSS / JS Prettify
Marcelo Agimóvel

3

Tôi tìm thấy những công việc sau đây tốt nhất cho tôi trong Visual Studio:

Thay thế: ^\n$ Với: <no value here>

Điều này sẽ tìm thấy tất cả các dòng trống và xóa chúng.


3

Tại trường hợp của tôi. Giải pháp kobi7 (\r?\n){2,}chỉ hoạt động với tôi, tôi phải chạy lại với sửa đổi nhỏ để làm cho nó hoạt động cho các dòng đơn (chỉ thay đổi 2 thành 1)

^(\r?\n){1,}

0

mở rộng Maid Maid là tất cả những gì bạn cần. Bạn có thể sử dụng phím tắt Ctrl M + Space bar để Dọn dẹp tệp của mình, Nó sẽ xóa các dòng trống và định dạng mã của bạn. Bạn cũng có thể cấu hình về định dạng và quy tắc dọn dẹp. Hy vọng điều này hữu ích.


Không tìm thấy (trên Manjaro Linux).
Marcelo Agimóvel

2
Đó là bởi vì đó là một phần mở rộng Visual Studio không phải là một phần mở rộng Visual Studio Code.
Rene Juuse


0

Có phiên bản của tôi để làm sạch các dòng trống với khoảng trắng:

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

-1

Thay thế: ^ \ n $ bằng: "khoảng trống"


và loại bỏ mọi khoảng trống trong tài liệu của bạn?
Tức giận 84

-4

Windows 10, Visual Studio 2015

Ctrl + H

Tìm ... -> ^ \ s *

Thay thế tất cả

Ctrl + A

Ctrl + K + F

Cảm ơn câu hỏi của bạn, tôi đã học được một cái gì đó mới.


5
Visual Studio 2015 không phải là Visual Studio Code.
Robert Kaucher
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.