Làm cách nào để tạo Notepad ++ xóa các dòng như Eclipse?


74

Eclipse có một phím tắt giúp xóa dòng hiện tại (nếu không có gì được chọn) hoặc tất cả các dòng là một phần của văn bản hiện được chọn: Ctrl+ D.

Có cách nào để tạo Ctrl+ Dlàm điều tương tự trong Notepad ++ không?

Điều tốt nhất tôi có thể làm là ánh xạ lại lối tắt đến Scintilla SCI_LINE_DELETE, nhưng điều đó chỉ xóa một dòng tại một thời điểm, ngay cả khi lựa chọn kéo dài nhiều dòng.

Câu trả lời:


93

Ctrl+ Shift+ Lsẽ đạt được hiệu quả tương tự.

Ctrl+ Lsẽ xóa dòng nhưng cũng sẽ giữ nó trong clipboard của bạn thay thế nội dung clipboard.

Tôi không chắc liệu bạn có thể ánh xạ Ctrl + D để làm điều tương tự hay không. Tôi đã không thực sự nhầm lẫn với ánh xạ bàn phím với Notepad ++ vì chúng rất giống với Visual Studio


14
Xuất sắc! Bây giờ tôi chỉ cần tìm những gì Ctrl+Lđược ánh xạ tới ... chỉnh sửa aha, nó được ánh xạ tới SCI_LINECUT. Đó thực sự là lệnh Scintilla tiếp theo bên dưới SCI_LINE_DELETE.
Matt Ball

26
Xin lưu ý rằng Ctrl+Lsẽ cắt dòng (sao chép nó vào clipboard của bạn). Để thực sự xóa dòng là Ctrl+Shift+L, điều này sẽ xóa các dòng đã chọn mà không ghi đè lên bảng tạm của bạn.
Rosdi

1
@ RØŠĐÎ SCI_LINEDELETElà những gì Ctrl+Shift+Lđã được ánh xạ tới. Tôi đã thử điều đó nhưng nó chỉ xóa (không sao chép vào clipboard) dòng đầu tiên được chọn, tương tự như OP. Tui bỏ lỡ điều gì vậy?
jinglểula

4
Tại sao điều này không có trong thực đơnEdit > Line Operations
aliopi

20

Tôi đã phải ánh xạ Ctrl+ Dcho cả hai SCI_LINEDELETESCI_LINECUTđể làm cho nó hoạt động giống như Eclipse. Hy vọng điều này là hữu ích.

Bạn cũng cần phải vô hiệu hóa hoặc rebind SCI_SELECTIONDUPLICATEđể không có xung đột trên Ctrl+ D.
Để tắt một phím tắt, tô sáng nó, nhấp vào Modifyđặt DropDownList thành None, nhấp vào Applytrước và sau đó Okay.


1
Làm thế nào đến cả hai được yêu cầu?
Jonathan Benn

1
Khi tôi ánh xạ cùng một phím tắt cho cả hai điều đó xảy ra là nó sẽ chuyển từ chỉ xóa dòng đầu tiên của dòng được chọn sang chỉ xóa dòng mà con trỏ đang bật. (Tôi đã sử dụng Ctrl + Shift + D, vì vậy tôi không phải lo lắng về ràng buộc trùng lặp lựa chọn.)
jinglểula

14

Macro là một lựa chọn tốt ở đây. Mặc dù macro tôi đã tạo ra độ trễ một chút (bạn có thể thấy có thể là một phần tư độ trễ thứ hai giữa lần nhấn CTRL-D và các dòng bị xóa trên một lựa chọn lớn), nó hoạt động rất tốt trên cả một dòng và nhiều lựa chọn dòng và bao gồm nhiều dòng khác nhau trường hợp khó khăn.

Vì vậy, vĩ mô của tôi là:

CTRL + J - nếu nhiều dòng được chọn, chúng được nối vào một dòng
HOME - nút HOME thông thường. Đưa con trỏ đến đầu một dòng (hoặc bắt đầu của một dòng đã nối)
SHIFT + END - chọn dòng cho đến khi kết thúc bắt đầu từ vị trí con trỏ
CTRL + SHIFT + L - xóa toàn bộ dòng

Tập hợp các hành động này bao gồm tất cả các tình huống có thể xảy ra về xóa dòng mà tôi đã gặp cho đến nay trong quá trình sử dụng notepad ++.


Tôi biết tôi đã trễ vài năm, nhưng liệu macro này có hoạt động tốt không khi chỉ XÓA thay vì CTRL + SHIFT + L như lệnh cuối cùng? Nếu tôi hiểu bạn chính xác, bạn đã đánh dấu tất cả văn bản bạn muốn xóa bằng ba lệnh đầu tiên.
Bjarte Aune Olsen

9

Có một phím tắt trong Notepad ++ để xóa một dòng: Ctrl+ Shift+ L.. nhưng điều này sẽ chỉ xóa một dòng duy nhất.

Ngay cả khi một vài dòng được chọn, nó sẽ chỉ xóa dòng nơi con trỏ đang nghỉ chứ không phải các dòng được tô sáng.

Vì vậy, cách đơn giản nhất để xóa một loạt các dòng được chọn, bạn phải Ghi một Macro bằng các tổ hợp phím tắt sau:

Ctrl+J

theo dõi bởi

Ctrl+ Shift+L

Điều này đầu tiên sẽ JOINlà các dòng được chọn và sau đó DELETElà toàn bộ dòng.

Điều này tốt hơn so với sử dụng kết hợp CUTDELETEtiếp cận như đã đề cập ở trên (mà tôi đã thử) vì trong một số trường hợp, nó cũng sẽ xóa các dòng không được chọn.


4

Là một thay thế không vĩ mô cho câu trả lời của @Jan Domozilov, tôi đã làm theo các bước sau (sử dụng Notepad ++ v6.5.1 (UNICODE)):

  1. Trong menu Cài đặt , chọn Shortcut Mapper.
  2. Trong tab Menu chính , đặt Join Lines(dòng 26) thành Ctrl+Alt+D.
  3. Nhấp vào tab lệnh Scintilla .
  4. Đặt SCI_LINEDELETE(dòng 90) thành Ctrl+D.
  5. Đóng cửa sổ.

Điều này cho phép bạn thực hiện hành vi mong muốn với một sửa đổi nhỏ. Bạn chọn văn bản của mình, chạy lệnh Nối dòng với Ctrl+Alt+D, chỉ nhả Altphím và nhấn Dlại để xóa văn bản.


0

Một cách đơn giản khác là sử dụng backspacenút sau khi chọn, điều này sẽ thay thế dòng được chọn bằng backspace.


-1

Bạn có thể sử dụng CTRL + XÓA để xóa toàn bộ nội dung của một dòng. Sau đó, tất cả những gì bạn làm là sử dụng lại XÓA để loại bỏ nguồn cấp dữ liệu. Nếu điều đó là không đủ cho bạn, bạn có thể tạo một macro để thực hiện cả hai hành động.

Vì dường như nó đã ngừng hoạt động trong phiên bản mới nhất, tôi khuyên bạn nên sử dụng phương pháp Macro cho toàn bộ vấn đề. Chuyển đến Macro, "Bắt đầu ghi", sau đó nhấn "Trang chủ", "Shift" + "KẾT THÚC", "XÓA", "XÓA", sau đó chuyển đến Macro và dừng Macro của bạn. Sau đó, đi tới Lưu Macro đã ghi hiện tại "và chọn tên và lối tắt, (ví dụ: CTRL + DEL). Điều này cho phép phím tắt để xóa dòng.


Ctrl+Deletekhông xóa các dòng trong Notepad ++ đối với tôi (Tôi chưa ánh xạ lại bất kỳ phím nào khác Ctrl+D).
Matt Ball

Bạn đang sử dụng phiên bản nào của Notepad ++? Nó hoạt động trên Notepad ++ 5.8.2 trong Win7
private_meta

5.8.7 (phiên bản mới nhất) trên Win7 x64. Ý bạn là Ctrl+Backspacesao (cũng không hiệu quả với tôi)
Matt Ball

À, tôi vừa thử nó với 5.8.7, và nó cũng không hoạt động, để tôi xem
private_meta

Tôi đã cập nhật Câu trả lời của mình
private_meta

-1

CTRL + SHIFT + DELDETE hoạt động với tôi rất tốt để xóa toàn bộ một dòng.


2
OP muốn xóa tất cả các dòng là một phần của văn bản hiện được chọn . Phím tắt của bạn không xóa dòng đầu tiên của lựa chọn.
nixda
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.