Văn bản cao siêu 2: Cách xóa các dòng trống / trống


271

Giả sử tôi có một tệp văn bản với chín dòng sau:

foo

bar

baz

qux

quux

Làm cách nào tôi có thể sử dụng Sublime Text 2 để xóa tất cả bốn dòng trống / trống, chỉ để lại năm dòng?

Câu trả lời:


658

Chọn văn bản

Nhấn:

  • Ctrl+ Htrên PC hoặc
  • Command+ Alt+ Ftrên máy Mac hoặc
  • Bấm Tìm-> Thay thế.

Đảm bảo bạn đã chọn 'biểu thức chính quy' bằng cách nhấn:

  • Alt+ Rtrên PC hoặc
  • Command+ Alt+ Rtrên máy Mac hoặc
  • Nhấp vào .*hộp Tìm kiếm.

Tìm cái gì: ^\n

Thay thế bằng: (không có gì, để trống).


3
Đó là công việc, cảm ơn bạn! Có cách nào để liên kết tìm / thay thế bằng phím tắt hoặc bằng cách nào đó lưu nó để truy cập nhanh không? Tôi đã googled nó và không thể tìm thấy bất cứ điều gì
Nick

46
Đề nghị nhỏ sử dụng ^(\r|\n\r?)để bao gồm tất cả các ngắt dòng có thể.
Haris Krajina

5
Đối với tôi, phím tắt (Sublime Text 2) là (Alt + Cmd + F) sau đó theo mô tả của Hugp Corra
Maxence

24
Cách tốt hơn để tìm tất cả các dòng trống (bao gồm cả các dòng có khoảng trắng) sẽ là: ^[\s]*?[\n\r]+
Crates

5
@Crates bạn không cần ?, vì nó *cũng khớp với số lần xuất hiện bằng 0 và \s*sẽ khớp với '\ r' bổ sung khi ví dụ chỉnh sửa văn bản windows trong môi trường linux, cũng vậy, ^\s*$mẹo này cũng vậy .
drevicko

67

Biểu thức chính quy trong câu trả lời của Hugo là chính xác khi không có khoảng trắng trong dòng. Trong trường hợp nếu có không gian regrec có thể được^\s+$


32
Điều đó giả định rằng có khoảng trắng IS. Ngoài ra, nó sẽ không hoạt động để thực sự thay thế các dòng không có gì. Hãy thử ^[\s]*?[\n\r]+thay thế. Tôi đã thử nghiệm điều đó, và nó hoạt động.
Thùng

24

Ngoài ra còn có một số Plugin ST2 / ST3 cho các tác vụ như vậy. Tôi thích hai cái này:

Cách thứ nhất có hai phương thức để loại bỏ các dòng trống / không cần thiết. Một trong số họ được gọi Delete Surplus Blank Lineslà mát mẻ. Nó chỉ xóa những dòng được theo sau bởi một dòng trống khác


10

Giải pháp Tìm / Thay thế:

Regex Tìm:\s+

Thay thế bằng: // không gian đơn


3
Trên thực tế, điều này: $ \ s +
kris

8

Thậm chí không biết làm thế nào toàn bộ điều này hoạt động, nhưng tôi đã thử ^\s*$và không hoạt động (vẫn còn một số dòng trống).

Điều này thay vào đó ^\s*hoạt động với tôi

{văn bản cao siêu 3}


7

Tôi đã phải sử dụng:

thay thế \ n ^ \ s * \ n bằng \ n

Các https://github.com/NicholasBuse/sublime_DeleteBlankLines Plugin đã không làm gì cả.


2
Đảm bảo bạn chọn khu vực bạn muốn nó có hiệu lực và sau đó sử dụng các phím tắt tương ứng Windows : Ctrl + Alt + Backspace (Xóa dòng trống) Ctrl + Alt + Shift + Backspace (Xóa dòng trống thừa) OSX : Ctrl + Alt + Delete (Xóa các dòng trống) Ctrl + Alt + Shift + Xóa (Xóa các dòng trống) Linux : Ctrl + Alt + Backspace (Xóa các dòng trống) Ctrl + Alt + Shift + Backspace (Xóa các dòng trống thừa)
Xtremefaith 23/10/14

5

Văn bản cao siêu 2 & 3

Nhận xét của @crates hoạt động với tôi,

Bước 1: Chỉ cần nhấn vào ctrl+H

Bước 2: nhấn phím RegEX

Bước 3: viết phần này trong phần Tìm kiếm: ^[\s]*?[\n\r]+

Bước 4: thay thế tất cả


5

Đơn giản hơn tôi nghĩ. Ctrl+ ATiếp theo là Ctrl+ HSau đó chọn Biểu thức chính quy .*. Thay thế \n\nbằng \n. Voila!


3

Bạn đang tìm kiếm điều này:

^\n|^\s+$

nó sẽ không xóa dòng, nếu có nội dung với khoảng trắng hoặc các tab ở phía trước>

ví dụ:

những thứ này sẽ không bị xóa: ... dung lượng ... abc

... tab ... abc

điều này sẽ:

... không gian ... ... không có gì khác ...

... tab ... ... không có gì khác ...


3

Sử dụng nhiều lựa chọn: chọn một cặp ngắt dòng, sau đó sử dụng Tìm nhanh tất cả ( Alt+ F3) hoặc Thêm nhanh tiếp theo ( Ctrl+ D) để chọn tất cả; sau đó nhấn Enterđể thay thế chúng bằng các ngắt dòng đơn.


1
Trong các tài liệu lớn, tôi tìm thấy sự cố này Sublime.
Thalecress

3

Họ là một cách dễ dàng hơn để làm điều đó mà không cần regex. bạn chỉ cần chọn toàn bộ văn bản. sau đó chuyển đến: Chỉnh sửa -> Permute Lines -> Unique.

Đó là tất cả. và tất cả các dòng trống sẽ bị xóa.


Điều này sẽ xóa TẤT CẢ các dòng không duy nhất. Không chỉ là khoảng trống. Vì vậy, giả sử bạn có HTML với rất nhiều dòng là một lần đóng </ div>, nó sẽ xóa tất cả chúng ngoại trừ dòng đầu tiên. Hoặc trong mã, nó sẽ xóa tất cả đóng của bạn}. Điều này không đáng tin cậy để chỉ xóa các dòng trống, hiểu những gì nó làm.
Ivan McA

2

Một cách khác, bạn có thể sử dụng dòng lệnh cc.dblcủa ConyEdit (một plugin) để xóa các dòng trống hoặc dòng trống.


1

Ngoài ra còn có "Tham gia đường dây". Nếu trên OSX, hãy chọn tất cả văn bản của bạn và nhấn CMD-J một vài lần và nó sẽ thu gọn lựa chọn của bạn theo dòng, loại bỏ các ngắt dòng.

Chỉnh sửa: Cách tiếp cận này sẽ để lại cho bạn mọi thứ trên một dòng, đó không phải là những gì bạn yêu cầu.


2
Tôi thấy bạn đang đi đâu với điều này mặc dù .. đề xuất này dẫn đến việc kéo tất cả nội dung vào một dòng, nhưng một macro sẽ làm cho việc này hoạt động: (khóa OSX) ctrl-q(macro ghi), cmd-j(nối dòng) down arrow, ctrl-q(macro kết thúc) . Sau đó, shift-ctrl-qđể lặp lại thường xuyên theo yêu cầu ...
ptim



0

Trong trường hợp của tôi, một số dòng trống chứa không gian chiều rộng bằng 0 ký tự unicode (U + 200b). Để loại bỏ các dòng trống, bao gồm cả những dòng có ký tự unicode này:

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

0

Sử dụng find / thay thế, hãy thử dán một lựa chọn bắt đầu ở cuối dòng phía trên dòng trống và kết thúc ở đầu dòng sau khoảng trống. Điều này làm việc cho một dòng trống duy nhất. Bạn cũng có thể lặp lại quá trình cho nhiều dòng trống. CTRL- H, đặt lựa chọn của bạn vào hộp tìm và đặt một dòng mới vào hộp thay thế thông qua sao chép / dán hoặc phương pháp khác.


0

Để tìm thêm khoảng trắng và dòng trống, bấm Ctrl+ Shift+ F Chọn Tìm biểu thức chính quy

[\n\r]{2,}

và sau đó thay thế bằng

\n

để loại bỏ tất cả các loại không gian trong cao siêu và dreamviewr


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.