Tôi đang cố gắng xác định một macro sẽ nhanh chóng tạo ra một danh sách các từ ngẫu nhiên.
Tôi muốn macro biến nó thành một danh sách như
a
b
c
d
e
vào đây
arezzo
bywords
czars
détente
eyrie
Những gì tôi có cho đến nay:
- đặt con trỏ trên chữ
a - bắt đầu ghi macro
qq avào chế độ chèn<C-x><C-k> - perform dictionary completion on the character before cursor - in this case the lettera`<C-p>chọn mục cuối cùng trong danh sách hoàn thành xuất hiện, trên hệ thống của tôi đó là từarezzo. (NB Tôi đãlongestbao gồm trong'completeopt'cài đặt của mình , được yêu cầu<C-p>để hoạt động theo cách này trong khi hoàn thành'set completeopt=longest,menuone,preview':).<C-y>chấp nhận hoàn thành^[^[thoát chế độ chènjchuyển xuống dòng tiếp theo, sẵn sàng thực hiện thao tác tương tự trên dòng tiếp theoqdừng ghi âm
Khi tôi tạo macro và thực hiện các bước theo cách thủ công, mọi thứ đều hoạt động tốt, tuy nhiên khi tôi thực thi macro, tôi thấy một thông báo nhấp nháy trong dòng lệnh như:
quét tập tin từ điển
và không có gì xảy ra, trong số các lệnh trong macro chỉ jđược chạy, tức là con trỏ di chuyển xuống dòng, nhưng không có lệnh nào hoàn thành chạy.
Có thể sử dụng hoàn thành chế độ chèn trong một macro không, và nếu vậy, làm thế nào tôi có thể làm điều đó?
set completeopt=longest,menuone,previewcác của nó longestlựa chọn gây <C-p>chèn ngay lập tức. Nếu tôi xóa longestkhỏi completeoptchuỗi, tôi sẽ có hành vi tương tự như bạn. Ngoài ra, có các phím mũi tên làm việc! cảm ơn (tôi quên bạn có thể sử dụng chúng để điều hướng danh sách hoàn thành)
:set completeopt=và a<c-x><c-k><esc>jnhư vĩ mô của bạn.
<C-p>bước của bạn ... khi tôi làm điều đó trong vim của mình, nó chỉ đưa ra thông báoback at original- không chọn mục cuối cùng .. Tôi đã sử dụng phím mũi tên lên hai lần để chọn từ cuối cùng (trường hợp của tôiazures), nhấn enter và sau đóEsc+j+q.. nó hoạt động khá tốt khi thực thi macro