Trong Vim, tôi đã hoàn tác quá nhiều. Làm thế nào để tôi hoàn tác điều này (nghĩa là làm lại)?
Trong Vim, tôi đã hoàn tác quá nhiều. Làm thế nào để tôi hoàn tác điều này (nghĩa là làm lại)?
Câu trả lời:
Ctrl+r
Cmd + r
làm mọi thứ rối tung lên? Nó chắc chắn làm một cái gì đó kỳ lạ; nhưng Ctrl + r
chỉ hoạt động tốt với tôi (Mac + tmux + vim)
Ngoài ra hãy kiểm tra :undolist
, cung cấp nhiều đường dẫn trong lịch sử hoàn tác. Điều này rất hữu ích nếu bạn vô tình gõ một cái gì đó sau khi hoàn tác quá nhiều.
:undolist
và gõ :undo 178
(nói) để tua lại bước 178.
:undolist
?
Sử dụng :earlier
/ :later
. Để làm lại mọi thứ bạn chỉ cần làm
later 9999999d
(giả định rằng bạn lần đầu tiên thay đổi nội dung các tập tin tối đa là 9.999.999 ngày trước), hoặc, nếu bạn còn nhớ sự khác biệt giữa hiện tại hoàn tác nhà nước và cần một, sử dụng Nh
, Nm
hoặc Ns
trong nhiều giờ, phút và giây tương ứng. + :later N<CR>
<=> Ng+
và :later Nf
để ghi tệp.
:later
đã làm việc cho tôi trong vi
(không phải vim - đã tìm kiếm "vi" trên google nhưng tất cả các kết quả là cho "vim"), cảm ơn!
vi
lệnh, nó là một liên kết tượng trưng đến một tệp thực thi vim hoặc một bản sao của nó. Không hoàn toàn ở khắp mọi nơi mặc dù.
vim: command not found
. Điều tiếp theo tôi làm là alias vim=vi
vì tôi gõ nó rất tự động, tuy nhiên nó vẫn là vi cũ. Ngoài ra, làm lại (ctrl + r) sẽ hoạt động đúng nếu vi là bí danh cho vim.
<Undo> or *undo* *<Undo>* *u*
u Undo [count] changes. {Vi: only one level}
*:u* *:un* *:undo*
:u[ndo] Undo one change. {Vi: only one level}
*CTRL-R*
CTRL-R Redo [count] changes which were undone. {Vi: redraw screen}
*:red* *:redo* *redo*
:red[o] Redo one change which was undone. {Vi: no redo}
*U*
U Undo all latest changes on one line. {Vi: while not
moved off of it}
Trong chế độ lệnh, sử dụng Uphím để hoàn tác và Ctrl+ rđể làm lại. Hãy xem http://www.vim.org/htmldoc/undo.html .
Đầu tiên nhấn Escphím để thoát khỏi chế độ chỉnh sửa.
Sau đó,
Đối với hoàn tác , sử dụng ukhóa nhiều lần bạn muốn hoàn tác.
Để làm lại , sử dụng phím Ctrl+r
Tham khảo phần "hoàn tác" và "làm lại" trong tài liệu Vim .
: red [o] (Làm lại một thay đổi đã được hoàn tác) và {Count} Ctrl+ r(Làm lại {đếm} thay đổi đã hoàn tác) đều ổn.
Ngoài ra, {Count} trước đó (chuyển sang trạng thái văn bản cũ hơn {Count} lần) luôn có thể thay thế cho việc hoàn tác và làm lại.
CTRL+r
"R" là chữ thường.
^r
và ^R
, và Vim tuân theo điều đó.
^X
(nơi X
có thể là bất kỳ chữ cái nào).
Sử dụng VsVim cho Visual Studio?
Tôi đã bắt gặp điều này khi thử nghiệm với VsVim, cung cấp các ràng buộc cho các lệnh Vim trong Visual Studio .
Tôi biết về Ctrlrchính Vim, nhưng ràng buộc cụ thể này không hoạt động trong VsVim (ít nhất là không phải trong thiết lập của tôi?).
Những gì không hoạt động tuy nhiên, là lệnh :red
. Đây là một chút rắc rối hơn so với ở trên, nhưng nó vẫn ổn khi bạn thực sự cần nó.
Thực tế mà nói, :undolist
rất khó sử dụng và việc theo dõi các thay đổi của Vim :earlier
và :later
thời gian chỉ có thể sử dụng được cho các bản sửa lỗi hạt.
Do đó, tôi sử dụng một trình cắm kết hợp các tính năng này để cung cấp một cây trực quan của các bản hoàn tác có thể duyệt được, được gọi là Drake Gundo.
Rõ ràng, đây là thứ chỉ được sử dụng khi bạn cần một bản sửa lỗi chi tiết hoặc bạn không chắc chắn về trạng thái chính xác của tài liệu bạn muốn quay lại. Xem: Gundo. Vẽ đồ thị cây Vim của bạn theo phong cách