Lặp lại lệnh cuối cùng thứ n trong vim


13

Tôi đã nhận thấy vim có thể khá trực quan, nhưng tôi gặp khó khăn khi tìm cách lặp lại lệnh thứ hai đến cuối cùng (hoặc thứ ba đến cuối cùng, thứ tư đến cuối cùng, v.v.). Bằng cách gõ .ở chế độ bình thường, nó sẽ lặp lại lệnh cuối cùng. Nhấn 3.sẽ lặp lại lệnh cuối cùng ba lần.

Hãy nói tôi gõ oHello<Esc>rồi A, World!<Esc>. Bây giờ tôi nhận được

Hello, World!

trên màn hình. Bây giờ, nói rằng tôi muốn có được

Hello, World!
Hello
Hello
Hello

không cần gõ Xin chào. Có phải vim lưu trữ lịch sử ngoài một lệnh, vì vậy tôi có thể nhập một cái gì đó như 3,2.(tức là lặp lại lệnh thứ hai đến cuối cùng ba lần)?


2
Hãy nhớ rằng bạn có thể ghi lại bất cứ điều gì dưới dạng macro ( qaoHello<esc>qsau đó @alặp lại Hellobất cứ khi nào bạn muốn.) Cũng có @@thể lặp lại macro được sử dụng cuối cùng.
James McLaughlin

2
Tôi cho rằng bạn cũng có thể làm 3@ađể lặp lại macro nhiều lần
redbmk

Câu trả lời:


8

Không, .lệnh trong vimkhông có lịch sử, cũng không có bất kỳ loại lịch sử lặp lại nào cho các lệnh chế độ thông thường mà tôi biết. Đối với số lượng tổ hợp phím ít nhất, tôi khuyên bạn nên 4oHello<Esc>3jA, World<Esc>. Nếu bạn đã hoàn thành oHello<Esc>A, World<Esc>, bạn có thể làm theo uyy<Ctrl-r>3p.


4

Có plugin này có tên là Lặp lại, nó thực hiện những gì bạn muốn với chi phí: vim của bạn luôn ở chế độ macro ghi. Bạn có thể cài đặt nó với trình quản lý gói bạn đang sử dụng như mọi gói vim khác hoặc bạn có thể chỉ cần sao chép và thả nó vào ~/.vim/pluginnếu bạn đang sử dụng vim hoặc ~/.config/nvim/plguinnếu bạn đang sử dụng neovim. Để lặp lại hành động thứ hai đến hành động cuối cùng, bạn nên gõ 2\.ở chế độ bình thường và để lặp lại hành động cuối cùng, bạn nên nhập <n>\.ở chế độ bình thường.

http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim


2
@Sassan, có lẽ bạn có thể chỉnh sửa câu trả lời của mình và nhanh chóng giải thích cách cài đặt plugin này và cách chính xác nó có thể được sử dụng để giải quyết vấn đề của OP?
terdon

2
@terdon nếu ai đó đọc câu trả lời của tôi và không biết cách sử dụng trình quản lý gói, anh ấy thực sự tốt hơn để tò mò và dành thời gian và tìm hiểu về các trình quản lý gói trong vim. Tương tự đối với người đọc nó và không biết về việc lấy thông tin từ docs / README.md cho các plugin vim.
Sassan

Đó không phải là vấn đề. Một câu trả lời chỉ là một liên kết không được coi là một câu trả lời . Câu trả lời nên được khép kín và cung cấp tất cả các thông tin cần thiết để áp dụng giải pháp đề xuất. Cảm ơn đã chỉnh sửa!
terdon

1
Trên thực tế tôi đồng ý, plugin này quá hack để được sử dụng bởi những người không biết cách cài đặt nó :)
Boris Churzin
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.