Khi sử dụng set showcmd
Vim hiển thị các lệnh một phần trong dòng cuối cùng của màn hình. Ví dụ, trong chế độ Bình thường khi gõ lệnh dt.
, dòng cuối cùng hiển thị dt
và sau đó, khi bạn nhấn .
lệnh hoàn tất và do đó không có gì được hiển thị.
Có cách nào để hiển thị các lệnh đầy đủ? Ví dụ khi gõ dt.gU(
, đầu tiên dt.
sẽ được hiển thị; và khi bắt đầu gõ lệnh thứ hai, lệnh đầu tiên sẽ bị xóa, do đó cuối cùng chỉ gU(
hiển thị.
Điều này có thể hữu ích ví dụ trong việc minh họa GIF; và để kiểm tra xem bạn đã gõ những gì bạn muốn nếu bạn gặp phải một kết quả không mong muốn.
dt.gU(
có 2 lệnh: dt.
và gU(
.... Vì vậy, những gì bạn thực sự muốn là hiển thị một số loại lịch sử lệnh (Vim đã hiển thị "toàn bộ comamnds").
src/normal.c
các cuộc gọi đang clear_showcmd()
ở một vài nơi ( normal_cmd()
, do_pending_operator()
, end_visual_mode()
). Tôi đang chơi với một tập tin showcmd_buf
vào những điểm đó, trông khá tốt, nhưng tôi chắc chắn rằng bạn không thể có được những gì bạn muốn mà không sửa đổi mã nguồn Vim tương tự và xây dựng lại nó. Tất nhiên, làm như vậy có thể là giá trị rắc rối để làm gifs của bạn.
dt
này được hiển thị bởi vì đó là toán tử hiện tại đang chờ xử lý. Một khi nó được đưa ra một chuyển động, nó không còn là một nhà điều hành đang chờ xử lý. Giả sử chúng ta đã đi xa hơn, và đã làmdt.gU(gu)daw
như vậy. Là tất cả "một lệnh đầy đủ", hay đó là bốn lệnh đầy đủ, hay cái gì khác?