Có cách nào để truy cập thiết bị đầu cuối trong khi sử dụng Vim không?
Tôi không thích mở một thiết bị đầu cuối khác hoặc lưu và thoát khỏi thiết bị đầu cuối hiện tại.
Có cách nào để truy cập thiết bị đầu cuối trong khi sử dụng Vim không?
Tôi không thích mở một thiết bị đầu cuối khác hoặc lưu và thoát khỏi thiết bị đầu cuối hiện tại.
Câu trả lời:
Bạn có thể gửi vim tín hiệu SIGTSTP. Bạn làm điều này bằng cách nhấn ctrl+ z. Vim sẽ bị treo trong nền và bạn có thể sử dụng thiết bị đầu cuối. Gõ fg
vào terminal để tiếp tục với vim.
Tiền thưởng: Điều này hoạt động trên gần như tất cả các ứng dụng đầu cuối. Sử dụng bg
để cho phép ứng dụng tiếp tục chạy trong nền.
%
thay vì fg
. Hoặc %1
, %2
vv nếu bạn có nhiều công việc nền. jobs
lệnh sẽ liệt kê chúng. (Giả sử bash
như cái vỏ.)
Trong vim, chỉ cần gõ:
:!sh
:!
khởi chạy một quá trình bên ngoài - trong trường hợp này sh
, một vỏ khác. Kiểm soát sẽ trở lại vim khi bạn thoát khỏi shell. Nếu bạn muốn sử dụng shell đồng thời với vim, hãy thêm &
vào cuối lệnh sh:
:!sh&
:shell
.
http-server
và nó sẽ in ra các bản ghi mà tôi muốn xem thì sao? Tôi muốn có thể chuyển sang tập tin của mình, chỉnh sửa, sau đó chuyển về nhật ký.
Bạn có thể sử dụng :shell
lệnh (hoặc dạng ngắn :sh
). Từ :help :shell
:
Lệnh này bắt đầu một shell. Khi shell thoát ra (sau lệnh "exit"), bạn quay lại Vim. Tên của lệnh shell xuất phát từ tùy chọn 'shell'.
Theo mặc định, trên Ubuntu, điều này sẽ cung cấp cho bạn bash. gõ exit
để trở về vim khi bạn hoàn thành.
Kể từ vim gần đây, bây giờ bạn có thể làm:
:terminal
Điều này ban đầu được thêm vào trong Vim 8.0.693 , nhưng có rất nhiều lỗi. Xem :help terminal
:
WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE
The terminal feature is optional, use this to check if your Vim has it:
echo has('terminal')
If the result is "1" you have it.
[...]
The terminal feature requires the +multi_byte, +job and +channel features.
==============================================================================
1. Basic use terminal-use
This feature is for running a terminal emulator in a Vim window. A job can be
started connected to the terminal emulator. For example, to run a shell:
:term bash
Or to run a debugger:
:term gdb vim
The job runs asynchronously from Vim, the window will be updated to show
output from the job, also while editing in any other window.
Ngoài tất cả các câu trả lời.
Bạn có thể cài đặt plugin ConqueTerm
Plugin này cung cấp khả năng chạy các chương trình tương tác bên trong bộ đệm vim.
Sau khi cài đặt, bạn có thể thêm 2 dòng này vào .vimrc
:
:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>
Và bạn sẽ có thể chạy bash
bằng cách nhấn Shift+ Tvà đóng tab Conque hiện tại bằng cách nhấn Shift+W
Đó là perferct nếu bạn cần mở / đóng nhanh bash
.
Đây là gif cho thấy nó trông như thế nào
Một tùy chọn khác với màn hình hoặc byobu là mở một tab trong các chương trình đó. Các chương trình này làm cho nó khá dễ dàng để giữ một vỏ cq phiên cuối mở và chuyển đổi giữa các màn hình với bàn phím.
Với phiên bản mới của vim 8.1, tất cả những gì bạn cần làm chỉ là :terminal
và voila! (cái này được tích hợp sẵn)