2012-05-07 12 views
8

Có thể xóa các cột văn bản cụ thể (ví dụ: các số cột cụ thể) trong Emacs/XEmacs chỉ bằng bàn phím không? Tôi biết rằng có thể chọn một hình chữ nhật của văn bản bằng cách sử dụng chuột (hoặc các phím mũi tên), nhưng đối với một tập tin văn bản 1 triệu dòng, điều này có thể khá tốn thời gian.Xóa các cột cụ thể của văn bản trong Emacs/XEmacs bằng bàn phím

Cảm ơn!

Trả lời

10

Bạn có thể xóa một hình chữ nhật với delete-rectangle (C-x r d) hoặc kill-rectangle (C-x r k). Hoặc là một trong những sẽ giết hình chữ nhật với các góc được xác định bởi các điểm và nhãn hiệu. kill-rectangle cũng sẽ lưu nó để tải xuống với yank-rectangle.

+1

Cảm ơn. Nhưng làm cách nào để tạo một hình chữ nhật lựa chọn một cách nhanh chóng (không sử dụng chuột), cho một tệp văn bản một triệu dòng? Tôi đã thử giữ phím shift trong khi giữ Page Up hoặc Page Down để nhanh chóng cuộn qua và chọn văn bản, nhưng điều này vẫn còn tương đối chậm. – Andrew

+1

Tôi đề nghị viết một kịch bản SED nhanh cho các công việc lớn. – kmarsh

+2

Nếu bạn muốn xóa cột cho mỗi dòng, trước tiên hãy đặt dấu ở đầu cột trên dòng đầu tiên, sau đó nhấn 'cuối bộ đệm' ('M->'), di chuyển đến cuối của trên dòng cuối cùng và chạy 'delete-rectangle'. – ataylor

1

Nếu bạn có sed hoặc awk trên hệ thống của mình, bạn có thể thuận tiện sử dụng C-u M-|.

Từ các tài liệu:

M | chạy lệnh shell-command-on-region [...]

Thực hiện chuỗi COMMAND trong vỏ kém hơn với vùng làm đầu vào. Thường hiển thị đầu ra (nếu có) trong bộ đệm tạm thời `Đầu ra lệnh Shell '; Tiền tố arg có nghĩa là thay thế khu vực bằng nó. Trả lại mã thoát của COMMAND. [...]

Lưu ý bit về tiền tố arg (C-u).

Mẹo: C-x h sẽ đặt khu vực thành toàn bộ bộ đệm của bạn.