Cách tạm thời thoát Vim và quay lại


303

Làm thế nào tôi có thể thoát Vim, không :q, và sau đó quay lại để tiếp tục chỉnh sửa?

Câu trả lời:


571

Giả sử thiết bị đầu cuối Vim có hương vị của * nix:

Để tạm dừng Vim đang chạy của bạn

Ctrl + Z

sẽ đình chỉ quá trình và lấy lại vỏ của bạn

fg

sẽ tiếp tục (mang đến f ore g round) Vim bị treo của bạn.

Để bắt đầu một vỏ mới

Bắt đầu một subshell bằng cách sử dụng:

:sh

(như được cấu hình bởi)

:set shell?

hoặc là

:!bash

theo dõi bởi:

Ctrl+ D(hoặc exit, nhưng tại sao gõ quá nhiều?)

để giết vỏ và trở về Vim.


5
psđể xem các quy trình tiền cảnh unix.stackexchange.com/questions/6115/ trộm
Vlad Vinnikov

1
Điều gì xảy ra nếu tôi muốn tiếp tục chạy máy chủ của mình trong khi chỉnh sửa tệp của mình. Ví dụ: giả sử tôi làm nodemon app.js(gật đầu làm mới máy chủ về chỉnh sửa tệp cho bạn) và sau đó tôi muốn quay lại chỉnh sửa vim của mình. Tôi có thể làm điều đó mà không có hai cửa sổ đầu cuối riêng biệt?
Costa

5
hoặc jobsđể truy cập các quá trình tiền cảnh với một tiêu đề dễ đọc hơn (với tôi). Sau đó, ví dụ fg %2để chọn thứ hai.
đẳng cấu

Nếu điều này không hiệu quả với bạn và control-zhoạt động như 'hoàn tác', hãy kiểm tra vimrc của bạn để xem behave mswincó tồn tại không. Nếu nó được gỡ bỏ và control-zsẽ hoạt động
schuess

3
trong windows bạn có thể quay lại vim nếu bạn gõexit
JonnyRaa 20/03/18

107

Bạn có thể sử dụng :shđể thoát khỏi shell mặc định của mình sau đó gõ $ exitvào dấu nhắc shell sẽ đưa bạn trở lại Vim.


1
Tôi ước tôi có thể nâng cao điều này hơn. Đây chính xác là lý do tại sao: vỏ tồn tại.
Randy Morris

8
Công bằng mà nói, đôi khi bạn muốn cùng một môi trường chứ không phải môi trường phụ. Vì vậy, nếu bạn đang tìm kiếm các thay đổi cho các biến môi trường khi bạn thoát hoàn toàn Vim, bạn sẽ muốn CTRL-z /: sus.
Tango Bravo

Có thể sử dụng $ psđể tìm xem liệu chúng tôi có trong vỏ phụ vim trước khi gọi $ exitđể tránh vô tình đóng thiết bị đầu cuối không. Tìm thấy cái này ở đây (Tôi chưa thử chỉ báo nhanh chóng được đề cập trên trang web).
Daniel

34

Bạn có thể tạm thời chuyển sang chế độ shell bằng cách:

:! <command>

nhu la

:! ls

14

Nếu bạn đang sử dụng hệ thống Unix, Ctrl+ Zsẽ tạm ngưng Vim và cung cấp cho bạn trình bao.

fgđể quay lại. Lưu ý rằng Vim tạo tệp hoán đổi trong khi chỉnh sửa và tạm dừng Vim sẽ không xóa tệp đó (rốt cuộc bạn không thoát Vim). Trên các thiết bị đầu cuối câm, phương pháp này khá chuẩn cho các chu trình chỉnh sửa-biên dịch-chỉnh sửa bằng vi . Tôi chỉ phát hiện ra rằng đối với tôi, gVim giảm thiểu khi gõ Z.


13

Bạn cũng có thể làm điều đó bằng cách :susrơi vào vỏ và quay lại fg.


5

Có một số cách để thoát Vim và có mọi thứ giống nhau khi bạn quay lại. Có tài liệu rất tốt trong chính Vim giải thích các cách khác nhau có thể được thực hiện. Bạn có thể sử dụng lệnh sau trong vim để truy cập trang trợ giúp có liên quan::help usr_21

Để cung cấp cho bạn một bản tóm tắt ngắn gọn, đây là các phương pháp khác nhau để thoát và quay lại với phiên của bạn nguyên vẹn:

  1. Tạm dừng và tiếp tục - Bạn không thực sự bỏ Vim với điều này; bạn chỉ cần ẩn phiên của bạn trong nền cho đến khi bạn cần nó. Nếu bạn đặt lại máy tính hoặc ra lệnh kill cho Vim, bạn sẽ mất phiên. Điều này tốt cho khi bạn muốn chuyển sang một tác vụ khác tạm thời, nhưng nếu đây là trường hợp, thì bạn có thể muốn xem xét sử dụng tiện ích GNU Screen thay thế.

  2. Phiên - Đây là cách thực sự để lưu phiên của bạn giữa các phiên bản của Vim. Ngay cả khi bạn thực sự bỏ Vim, phiên của bạn sẽ ở đó cho bạn khi bạn quay lại. Đây có lẽ là những gì bạn đang tìm kiếm.


5

Để mở rộng câu trả lời của người dùng Zen , bạn có thể thêm dòng sau vào ~/.vimrctệp của mình để cho phép chuyển đổi nhanh giữa Bash và Vim:

noremap <C-d> :sh<cr>

Năm năm sau tôi chỉ muốn đề cập rằng sử dụng Cd có lẽ là một lời khuyên tồi vì nó ghi đè lên hành vi mặc định của Vim. Theo mặc định, cửa sổ scoll ctrl-d trong bộ đệm. xem vimdoc.sourceforge.net/htmldoc/scroll.html#CTRL-D
xaa

3

Chỉ cần đặt vào fgvà quay trở lại chương trình bị đình chỉ gần đây nhất của bạn.


3

Nếu bạn đang sử dụng Neovim , bạn có thể làm như sau:

  • :terminal lệnh để đưa lên một cửa sổ đầu cuối.
  • Làm công cụ thiết bị đầu cuối của bạn
  • exitđể giết tiến trình đầu cuối
  • Nhấn phím bất kỳ để trở về Neovim

0

Nếu bạn không phiền khi sử dụng chuột một chút:

  • Bắt đầu thiết bị đầu cuối của bạn,
  • Chọn một tập tin,
  • chọn Mở tab .

Điều này tạo ra một tab mới trên thiết bị đầu cuối mà bạn có thể chạy Vim trên. Bây giờ sử dụng chuột của bạn để chuyển đến / từ thiết bị đầu cuối. Tôi thích điều này thay vì luôn phải gõ ( :shellvà thoát).

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.