it-swarm-vi.tech

Làm thế nào để làm mới

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.

3294
jclancy

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. ZZzz 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.

4468
dirvine

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:helpReturn 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.

159
Nick Volynkin

Hình ảnh đáng giá cả ngàn lệnh và tùy chọn Unix:

 Enter image description here

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ự, . 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ự:

  • i: đi đến INSERT ở vị trí của con trỏ
  • I: chuyển đến chế độ INSERT ở đầu dòng
  • a: chắp thêm sau con trỏ
  • A: nối vào cuối dòng
  • o: mở một dòng mới bên dưới dòng hiện tại
  • O: mở một dòng mới ở vị trí của dòng hiện tại

Bây giờ, trả lời câu hỏi: thoát.

Bạn có thể thoát vi từ chế độ EX:

  • q: nếu bạn chưa thực hiện bất kỳ sửa đổi nào, hoặc lưu chúng trước
  • q!: bỏ qua mọi sửa đổi và thoát
  • wq: lưu và thoát
  • x: điều này tương đương với wq

wx 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.

135
Gergely

Nếu bạn muốn thoát mà không lưu trong Vimcó 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ý.

71
Sue Spence

Đâ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-cEnterEnterviEnterCtrl-\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:

  • iCtrl-ovg (bạn vào chế độ chèn, sau đó là chế độ trực quan và sau đó là chế độ chờ xử lý)

  • QappendEnter

  • iCtrl-ogQCtrl-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:

viEnter: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à

viEnterEscEscEsc:qa!Nhập

40
Heikki Naski

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.

36
wsams

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!).

25
deleteMe

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 :qEnter

18
Caltor

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 ...

16
Bjørn van Dommelen

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).

5
Subash

Đây là cách bạn có thể thoát Vim. Nhấn Ctrl & 'Z' rồi 'X' và 'C'.

Ctrl -> +Z -> +X -> +C
5
Alimov Shohrukh

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. :)

1
Connie