Làm cách nào để chuyển đổi giữa chế độ lệnh và chế độ chèn trong Vim?


87

Tôi chỉ mới bắt đầu sử dụng Vim làm IDE. Tôi đã sử dụng nó như một trình chỉnh sửa thử nghiệm trong một thời gian, vì vậy tôi không phải truy cập chế độ lệnh thường xuyên. Nhưng, vì tôi lập trình bằng Java nên tôi phải chuyển sang chế độ lệnh để tạo tệp, biên dịch / chạy nó ... v.v.

Vấn đề là: Tôi cần một cách tốt để chuyển đổi giữa hai chế độ.

Tôi đã xem trực tuyến và nó nói rằng <Esc>chìa khóa phải làm điều đó, nhưng điều đó không hiệu quả với tôi (có thể nó không dành cho gVim? Tôi không biết tại sao.)

Tôi phải nhấn CTRLOmỗi lần để chuyển đến chế độ lệnh; phím thoát hoạt động từ chế độ đó ... nó đưa tôi trở lại chế độ chèn. Nhưng có cách nào tốt hơn hoặc dễ dàng hơn để chuyển đổi giữa chế độ lệnh và chế độ chèn không?


2
Esc chắc chắn là phím phù hợp để hoàn tất một lần chèn. Một chèn có thể được bắt đầu bằng nhiều cách khác nhau. Chữ thường tôi để bắt đầu chèn vào con trỏ của bạn, chữ hoa tôi để bắt đầu chèn vào đầu dòng vv
Vaughn Cato

Bắt đầu từ một tệp trống, các ký tự sau sẽ cung cấp cho bạn một tệp có từ "xin chào" trong đó: ihello<ESC>:w hello.txt<ENTER>
Vaughn Cato

8
ctrl-[hoạt động như một thay thế cho Esc trên nhiều bàn phím.
Vaughn Cato

Câu trả lời:


52

Có vẻ như Vim của bạn được khởi chạy ở chế độ dễ dàng . Thấy chưa :help easy.

Điều này xảy ra khi Vim được gọi với -yđối số hoặc as evim, hoặc có thể bạn có một vị trí :set insertmodenào đó trong .vimrccấu hình của mình . Tìm nguồn và vô hiệu hóa nó; tạm thời điều này cũng có thể được thực hiện thông qua Ctrl+ O :set noim Enter.


Tôi nghĩ đó là nó. Tôi đã bật chế độ chèn trong tệp của mình. Sau khi tôi gỡ bỏ nó, phím thoát hoạt động hoàn hảo. Cảm ơn!
Ravish Chawla

8
đây là chế độ dễ dàng !?
Stachu

5
Vim chế độ dễ dàng, bây giờ đó là một oxymoron. Đó có phải là nơi có thể thoát khỏi vim?
Davos

1
@Davos đó là chế độ mà nó được bắt đầu trong chế độ chèn, vì vậy trớ trêu thay đó là một chế độ mà nó không thể thoát vim: p "chế độ bình thường" là cách dễ dàng hơn chỉ alt + :, x XD
Fuseteam

115

Nhấn sẽ ESCthoát từ chế độ chèn sang chế độ bình thường, nơi bạn có thể nhấn :để nhập lệnh. Nhấn ilần nữa để quay lại chế độ chèn và bạn đã sẵn sàng.

Tôi không phải là chuyên gia Vim, vì vậy ai đó có thể có kinh nghiệm hơn và cung cấp cho bạn các lựa chọn khác.


3
Đối với hầu hết chúng ta, nhưng câu trả lời được chấp nhận có câu trả lời cho vấn đề cụ thể.
Saul Axel Martinez Ortiz

19

Điều này đã được đề cập trong các câu hỏi khác , nhưng ctrl + [tương đương với ESCtrên tất cả các bàn phím.


Tôi chưa bao giờ biết điều đó, hữu ích khi khóa thoát không được hỗ trợ
shuva 16/02

Wow, cảm ơn vì thông tin đó! Tmux sao chép chuỗi tổ hợp phím giờ đây có ý nghĩa hơn nhiều.
Thomas Legris

4

Sử dụng jj

Trong trường hợp của tôi, cài đặt .vimrc (hoặc trong gVim _vimrc) bên dưới.

inoremap jj <Esc>   """ jj key is <Esc> setting

Đây là một ánh xạ lại phổ biến. Tôi thấy nó có một chút chậm trễ vì nó đang đợi nhập ký tự bổ sung. Ngoài ra, hãy sửa lại khóa capslock của bạn để esc bằng cách sử dụng một cái gì đó như KeyRemap4MacBook trên Macbook: github.com/tekezo/KeyRemap4MacBook
Koobz

tôi tìm thấy nó dễ dàng hơn để tab remap để esc: 3
Fuseteam

3

Đến từ emacs, tôi thấy rằng tôi thích ctrl +các phím để làm công việc, và trong vim, tôi thấy rằng cả hai [ctrl + C][alt + backspace]sẽ vào chế độ Bình thường từ chế độ chèn. Bạn có thể thử và xem liệu bất kỳ cách nào trong số đó phù hợp với bạn.


2

Đối với tôi, vấn đề là tôi đang ở chế độ ghi âm . Để thoát khỏi chế độ ghi, bấm q. Sau đó, Esclàm việc như mong đợi cho tôi.


1

Bạn có thể sử dụng Alt + H, J, K, L để di chuyển con trỏ trong chế độ chèn.


1
Không, bạn không thể. Đó có thể là một bản sửa lại cấu hình của bạn.
Saul Axel Martinez Ortiz

@SaulAxelMartinezOrtiz vâng bạn có thể, tho về mặt kỹ thuật nó thoát chế độ bình thường sau đó bạn có thể di chuyển xung quanh trong chế độ bình thường: p
Fuseteam

0

Ngoài ra còn có một giải pháp nữa cho loại vấn đề đó, tôi nghĩ là khá hiếm và bạn có thể gặp phải, nếu bạn đang sử dụng vim trên OS X Sierra. Trên thực tế, đó là vấn đề với nút Esc - không phải với vim. Ví dụ: tôi không thể thoát video toàn màn hình trên youtube bằng Esc, nhưng tôi đã sống với điều đó trong vài tháng cho đến khi tôi gặp phải vấn đề tương tự với vim.

Tôi đã tìm thấy giải pháp này . Nếu bạn đủ lười để theo liên kết bên ngoài, hãy tắt Siri và giết quá trình trong Activity Monitor.

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.