Tôi bị mắc kẹt và không thể trốn thoát. Nó nói rằng:
"type :quit<Enter> to quit VIM"
Nhưng khi tôi gõ nó chỉ đơn giản là xuất hiện trong cơ thể đối tượng.
Lượt Esc Phím để vào "Chế độ bình thường". Sau đó, bạn có thể nhập :
để vào "Chế độ dòng lệnh". Dấu hai chấm (:
) sẽ xuất hiện ở cuối màn hình và bạn có thể nhập một trong các lệnh sau. Để thực thi một lệnh, nhấn phím Enter Chìa khóa.
:q
để thoát (viết tắt của :quit
):q!
để thoát mà không lưu (viết tắt là :quit!
):wq
để viết và thoát:wq!
để ghi và thoát ngay cả khi tệp chỉ có quyền đọc (nếu tệp không có quyền ghi: buộc ghi):x
để viết và thoát (tương tự :wq
, nhưng chỉ viết nếu có thay đổi):exit
để viết và thoát (giống như :x
):qa
để thoát tất cả (viết tắt của :quitall
):cq
để thoát mà không lưu và khiến Vim trả về lỗi khác không (nghĩa là thoát có lỗi)Bạn cũng có thể thoát Vim trực tiếp từ "Chế độ bình thường" bằng cách nhập ZZ
để lưu và thoát (giống như :x
) hoặc ZQ
để thoát (giống như :q!
). (Lưu ý rằng trường hợp này rất quan trọng ở đây. ZZ
và zz
không có nghĩa tương tự.)
Vim có trợ giúp rộng rãi - rằng bạn có thể truy cập bằng lệnh :help
- nơi bạn có thể tìm thấy câu trả lời cho tất cả các câu hỏi của mình và hướng dẫn cho người mới bắt đầu.
Trước khi bạn nhập lệnh, nhấn Esc khóa . Sau khi bạn nhập nó, nhấn Return xác nhận.
Esc hoàn thành lệnh hiện tại và chuyển Vim sang chế độ bình thường . Bây giờ nếu bạn nhấn :, :
sẽ xuất hiện ở dưới cùng của màn hình. Điều này xác nhận rằng bạn thực sự đang gõ một lệnh và không chỉnh sửa tệp.
Hầu hết các lệnh đều có chữ viết tắt, với phần tùy chọn được đặt trong ngoặc: c[ommand]
.
Các lệnh được đánh dấu bằng '*' là chỉ Vim (không được thực hiện trong Vi).
Thoát khỏi an toàn (không thành công nếu có các thay đổi chưa được lưu):
:q[uit]
Thoát khỏi hiện tại cửa sổ . Thoát khỏi Vim nếu đây là cửa sổ cuối cùng. Điều này không thành công khi những thay đổi đã được thực hiện trong hiện tại bộ đệm .:qa[ll]
* Thoát khỏi tất cả các cửa sổ và Vim, trừ khi có một số bộ đệm đã được thay đổi.Nhắc-thoát (nhắc nhở nếu có thay đổi chưa được lưu)
:conf[irm] q[uit]
* Thoát, nhưng đưa ra lời nhắc khi có một số bộ đệm đã được thay đổi.:conf[irm] xa[ll]
* Viết tất cả các bộ đệm đã thay đổi và thoát Vim. Đưa ra lời nhắc khi một số bộ đệm không thể được viết.Viết (lưu) thay đổi và thoát:
:wq
Viết tệp hiện tại (ngay cả khi nó không được thay đổi) và thoát. Viết thất bại khi tệp chỉ đọc hoặc bộ đệm không có tên. :wqa[ll]
* cho tất cả các cửa sổ.:wq!
Tương tự, nhưng ghi các tệp chỉ đọc. :wqa[ll]!
* cho tất cả các cửa sổ.:x[it]
, ZZ
(với chi tiết ). Chỉ viết tệp nếu nó đã được thay đổi và thoát, :xa[ll]
* cho tất cả các cửa sổ.Hủy thay đổi và thoát:
:q[uit]!
ZQ
* Thoát mà không cần viết, cũng như khi bộ đệm hiển thị có thay đổi. Không thoát khi có bộ đệm ẩn thay đổi.:qa[ll]!
*, :quita[ll][!]
* Thoát Vim, tất cả các thay đổi đối với bộ đệm (bao gồm cả ẩn) đều bị mất.Nhấn Return để xác nhận lệnh.
Câu trả lời này không tham chiếu tất cả Vim viết và thoát các lệnh và đối số. Thật vậy, chúng được tham chiếu trong tài liệu Vim .
Vim có trợ giúp tích hợp rộng rãi, loại Esc:help
Return mở nó ra.
Câu trả lời này được lấy cảm hứng từ người khác , ban đầu được tác giả bởi @dirvine và chỉnh sửa bởi người dùng SO khác. Tôi đã bao gồm thêm thông tin từ tài liệu tham khảo Vim, SO ý kiến và một số nguồn khác. Sự khác biệt cho Vi và Vim cũng được phản ánh.
Hình ảnh đáng giá cả ngàn lệnh và tùy chọn Unix:
Tôi vẽ điều này cho các sinh viên của mình mỗi học kỳ và họ dường như nắm bắt được vi sau đó.
vi là một máy trạng thái hữu hạn chỉ có ba trạng thái.
Khi bắt đầu, vi chuyển sang chế độ LỆNH, trong đó bạn có thể nhập các lệnh ngắn, vài ký tự, mù. Bạn biết những gì bạn đang làm; Điều này không dành cho người nghiệp dư.
Khi bạn thực sự muốn chỉnh sửa văn bản, bạn nên chuyển sang chế độ INSERT với một số lệnh một ký tự:
Bây giờ, trả lời câu hỏi: thoát.
Bạn có thể thoát vi từ chế độ EX:
w
và x
chấp nhận tham số tên tệp. Nếu bạn bắt đầu vi với một tên tệp, bạn không cần phải cung cấp nó ở đây một lần nữa.
Cuối cùng, điều quan trọng nhất: làm thế nào bạn có thể đạt đến chế độ EX?
Chế độ EX dành cho các lệnh dài mà bạn có thể thấy gõ ở dòng dưới cùng của màn hình. Từ chế độ LỰA CHỌN, bạn Đẩy dấu hai chấm, :
và dấu hai chấm sẽ xuất hiện ở dòng dưới cùng, nơi bạn có thể nhập các lệnh trên.
Từ chế độ INSERT, bạn cần nhấn ESC, tức là nút Escape, chuyển sang chế độ LỰA CHỌN và sau đó: để chuyển sang chế độ EX.
Nếu bạn không chắc chắn, hãy nhấn ESC và điều đó sẽ đưa bạn đến chế độ lệnh.
Vì vậy, phương thức mạnh mẽ là ESC -: - x-Enter giúp lưu tệp và thoát của bạn.
Nếu bạn muốn thoát mà không lưu trong Vim và có Vim trả về mã thoát khác không, bạn có thể sử dụng :cq
.
Tôi sử dụng điều này mọi lúc vì tôi không thể bị làm phiền khi chuyển sang màu hồng cho !
. Tôi thường dẫn mọi thứ đến Vim mà không cần phải lưu trong một tệp. Chúng tôi cũng có một trình bao bọc SVN lẻ tại nơi làm việc phải được thoát với giá trị khác không để hủy đăng ký.
Đây là trường hợp xấu nhất khi thoát Vim nếu bạn chỉ muốn ra ngoài, không biết bạn đã làm gì và bạn không quan tâm điều gì sẽ xảy ra với các tệp bạn đã mở.
Ctrl-cEnterEntervi
EnterCtrl-\Ctrl-n:qa!
Enter
Điều này sẽ giúp bạn ra ngoài hầu hết thời gian.
Một số trường hợp thú vị mà bạn cần một cái gì đó như thế này:
i
Ctrl-ovg
(bạn vào chế độ chèn, sau đó là chế độ trực quan và sau đó là chế độ chờ xử lý)
Qappend
Enter
i
Ctrl-ogQ
Ctrl-r=
Ctrl-k (cảm ơn các trường hợp cho trường hợp này)
:set insertmode
(đây là trường hợp khi Ctrl-\Ctrl-n đưa bạn trở lại chế độ bình thường)
Chỉnh sửa: Câu trả lời này đã được sửa chữa do các trường hợp trên. Nó từng là:
EscEscEsc:qa!
Enter
Tuy nhiên, điều đó không hoạt động nếu bạn đã vào chế độ Ex. Trong trường hợp đó, bạn sẽ cần phải làm:
vi
Enter:qa!
Enter
Vì vậy, một lệnh hoàn chỉnh cho "Tôi không muốn biết những gì tôi đã làm và tôi không muốn lưu bất cứ điều gì, tôi chỉ muốn ra ngay bây giờ!" sẽ là
vi
EnterEscEscEsc:qa!
Nhập
Trong trường hợp bạn cần thoát Vim trong chế độ dễ (trong khi sử dụng tùy chọn -y
), bạn có thể vào chế độ Vim bình thường bằng cách nhấn Ctrl + L và sau đó bất kỳ tùy chọn thoát bình thường sẽ hoạt động.
Sau khi đánh ESC (hoặc là cmd + C trên máy tính của tôi) bạn phải nhấn : cho lệnh Nhắc xuất hiện. Sau đó, bạn có thể nhập quit
.
Bạn có thể thấy rằng máy sẽ không cho phép bạn thoát vì thông tin của bạn chưa được lưu. Nếu bạn muốn thoát bằng mọi cách, hãy nhập ! trực tiếp sau khi thoát (tức là :quit!
).
Thật sự rất dễ dàng để thoát vim
.
Nhấn Escape, quay vòng hai lần, đá con mèo, pha tách trà hoàn hảo, chạy một bốn phút dặm , trèo lên đỉnh cao, tạo ra Kecraft Run ở dưới 12 Parsecs , giải cứu Kobayashi Mar , yêu cầu ngai sắt , đạt được hòa bình thế giới , nhấn :q
Enter
Tôi đã nhận được Vim bằng cách cài đặt ứng dụng khách Git trên Windows. :q
sẽ không thoát Vim cho tôi. :exit
đã làm tuy nhiên ...
Tôi muốn thêm hai xu vào đây. Câu hỏi đã được hỏi ở đây .
Lệnh q
với số đóng phân chia đã cho ở vị trí đó.
:q<split position>
hoặc :<split position>q
sẽ đóng phân chia ở vị trí đó.
Giả sử bố cục cửa sổ Vim của bạn như sau:
-------------------------------------------------
| | | |
-------------------------------------------------
| | | |
| | | |
| Split 1 | Split 2 | Split 3 |
| | | |
-------------------------------------------------
Nếu bạn chạy lệnh q1
, nó sẽ đóng phần tách đầu tiên. q2
sẽ đóng phần tách thứ hai và ngược lại.
Thứ tự của vị trí phân chia trong lệnh thoát không quan trọng. :2q
hoặc :q2
sẽ đóng lần phân chia thứ hai.
Nếu vị trí phân chia bạn chuyển cho lệnh lớn hơn số lần phân tách hiện tại, nó sẽ chỉ đơn giản là đóng phân tách cuối cùng.
Ví dụ: nếu bạn chạy q100
trên thiết lập cửa sổ ở trên, nơi chỉ có ba phần tách, nó sẽ đóng phần tách cuối cùng (Tách 3).
Đây là cách bạn có thể thoát Vim. Nhấn Ctrl & 'Z' rồi 'X' và 'C'.
Ctrl -> +Z -> +X -> +C
Nhấn Esc để thoát khỏi chế độ chèn và sau đó bạn có thể thực hiện :wq
để lưu và thoát hoặc chỉ :q
để thoát bình thường. :)