Cách quay lại (ctrl + z) trong vi / vim


106

Trong các trình soạn thảo văn bản thông thường [với tất cả sự tôn trọng đối với Vim], có một phím tắt Ctrl+ Zkhi bạn đã làm điều gì đó khó chịu và muốn quay lại phiên bản trước của văn bản. Giống như nút BACK trong Word. Tôi tự hỏi làm thế nào bạn có thể đạt được hành vi này trong Vim.



1
Tài liệu Vim cũng rất tốt - :help undochẳng hạn sẽ tìm cho bạn câu trả lời về vấn đề này.
Chris Morgan

2
trước khi hoàn toàn đi sâu vào vim, tôi khuyên bạn nên xem qua hướng dẫn (tương tác)
karth 15/09/12

1
Cảm ơn tất cả các bạn và xin lỗi vì q này. Phải đọc thêm lần sau.
Slazer

1
trên linux, CTRL-Z trong vi / vim / gvim có nghĩa là thoát ra bảng điều khiển hoặc đặt nó ở chế độ nền. sau đó bạn làm bất cứ điều gì bạn muốn trên bảng điều khiển và gõ fg (nền trước) để đưa bạn trở lại phiên chỉnh sửa vim.
mancocapac

Câu trả lời:


187

Bạn có thể sử dụng unút để hoàn tác sửa đổi cuối cùng. (Và Ctrl+ Rđể làm lại).

Đọc thêm về nó tại: http://vim.wikia.com/wiki/Undo_and_Redo


2
Tôi đồ U để làm lại để tôi có thể undo / redo một cách nhanh chóng, toàn bộ lịch sử sửa đổi nếu cần thiết, trong vimrc: nnoremap U <CR>
NeilG

10

Câu trả lời, u(và nhiều câu trả lời khác) là ở trong $ vimtutor.


bỏ phiếu chỉ vì tôi chưa bao giờ nghe nói về vimtutortrước đây
Paiusco

4

Đây là một mẹo nhỏ. Bạn có thể ánh xạ các phím Ctrl+ Z. Điều này có thể đạt được bằng cách chỉnh sửa .vimrctệp. Thêm các dòng sau vào tệp '.vimrc`.

nnoremap <c-z> :u<CR>      " Avoid using this**
inoremap <c-z> <c-o>:u<CR>

Đây có thể không phải là cách ưa thích, nhưng có thể được sử dụng.

** Ctrl+ Zđược sử dụng trong Linux để tạm ngừng chương trình / quá trình đang diễn ra.


1

Chỉ ở chế độ bình thường, nhấn:

  • u- hoàn tác ,
  • Ctrl+ r- redo các thay đổi đã được hoàn tác ( undo the undos ).

Hoàn tác và Làm lại


Tôi biết rằng hầu hết câu trả lời của tôi bị trùng lặp với những câu đã có, nhưng giá trị gia tăng của câu trả lời của tôi được làm lại dưới dạng Ctrl + r(chữ thường r) dựa trên tài liệu. Không ai trước khi đặt nó ở đây. Ngoài ra, tôi đã cố gắng làm cho câu trả lời rõ ràng nhất có thể.
simhumileco

0

Trên máy Mac, bạn cũng có thể sử dụng lệnh Z và lệnh đó sẽ hoàn tác. Tôi không chắc tại sao, nhưng đôi khi nó dừng lại, và nếu bạn giống như tôi và vimtutor của bạn ở cuối danh sách dài những điều bạn cần học, bạn chỉ cần đóng cửa sổ và mở lại và sẽ hoạt động tốt.


0

Tôi đã gặp vấn đề tương tự ngay bây giờ và tôi đã giải quyết nó. Bạn không cần nó nữa nên tôi viết cho người khác:

nếu bạn sử dụng gvim trên windows , bạn chỉ cần thêm cái này vào _vimrc của mình : $VIMRUNTIME/mswin.vim behave mswin

khác chỉ cần sử dụng imap ...

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.