Làm cách nào để chọn / xóa cho đến khi kết thúc tập tin trong vim / gvim?


42

Vô tình tôi quản lý để sao chép-dán một đoạn trong vim một trăm lần. Làm cách nào để chọn và sau đó xóa văn bản từ vị trí hiện tại của tôi đến cuối tệp?

Trong Windows, đây sẽ là Ctrl-Shift-End, sau đó là Xóa.


Vim đã hoàn tác. Nhấn u.
Kusalananda

Câu trả lời:


49
VGx

Vào Chế độ trực quan, đi đến Kết thúc tệp, xóa.

Ngoài ra, bạn có thể làm:

Vggx

Để xóa từ vị trí hiện tại đến đầu tập tin.


1
Ugh, tôi sẽ không bao giờ nhớ tất cả các phím tắt vim này. Các phím tắt Windows rất trực quan hơn nhiều.
ripper234

Cá nhân, tôi thấy vim là trực quan hơn. V, vào chế độ trực quan G, gần giống như "đi", đến cuối tệp. Và x, loại bỏ.
Mark Szymanski

10
@ ripper234: đừng cố nhớ "đoạn trích" để thực hiện các nhiệm vụ cụ thể, tập trung vào các tiểu ban. Đó là một phần của phép thuật của vim: sử dụng các lệnh nhỏ hơn này để xây dựng những thứ lớn hơn, phức tạp hơn. Nó gần như vô cùng linh hoạt.
Reid

Và nó thực sự giúp ích rất nhiều cho việc dành thời gian và đọc qua các phần vim-help-help có liên quan với: h lệnh-you-need-help-for
Gjallar

1
Để thêm vào điều này: chạy vimtutortừ dòng lệnh để làm quen với chúng @ ripper234
Bernhard

48

dlà xóa và Gdi chuyển đến cuối tập tin, vì vậy dGsẽ xóa đến cuối tập tin. Nó bao gồm toàn bộ dòng hiện tại mặc dù; nếu bạn ở giữa dòng và muốn giữ mọi thứ trước vị trí hiện tại, bạn cần sử dụng phương pháp của Mark


+1 Cách khác để bảo tồn một phần của dòng hiện tại là D<enter>dG: Dxóa sang EOL, <enter>chuyển sang dòng tiếp theo, dGxóa sang EOF.
Jim L.

8

Một phương pháp khác: :.,$d

Điều đó có nghĩa là trong chế độ cũ, địa chỉ dòng hiện tại kết thúc và xóa.


7

Bạn cũng có thể chỉ cần gõ uđể hoàn tác các thay đổi dẫn đến việc sao chép-dán sai lầm.


không phải lúc nào cũng có thể, xem "chọn". Hãy tưởng tượng bạn đã viết một số mã ở cuối tệp (và muốn nó ở một nơi khác), dG cho phép bạn chèn với p | P
relascope

2
vGx

hoạt động tốt cho lựa chọn nhiều dòng (trong trường hợp này là đoạn văn), nhưng nếu bạn muốn chọn trong một dòng duy nhất thì nó hoạt động một cách bí ẩn (chọn từ con trỏ đến đầu dòng).

Trong trường hợp lựa chọn trong một dòng duy nhất, bạn phải sử dụng:

v$x

Chuyển sang chế độ Visual ("v") và đi đến cuối dòng ("$") và xóa ("x") từ vị trí hiện tại cho đến cuối dòng.


0

Vggx không làm việc cho tôi, nhưng vG $ d đã làm. vG $ chọn EOF (ký tự cuối cùng của dòng cuối cùng), sau đó bất kỳ lệnh nào bạn muốn thực hiện.

= Cách tiếp cận này (lệnh sau khi lựa chọn) dường như hoạt động tốt hơn. Tất nhiên, tôi đang sử dụng Vim 8.1 trên Windows 10 và một vài năm sau đó.

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.