Tôi có thể mở một trình bao bằng cách sử dụng lệnh: shell trong Vim, tuy nhiên tôi không thể chỉnh sửa tệp và đồng thời sử dụng trình bao.
Có cách nào để chia Vim trong nhiều Windows (hoặc tab) và mở một trình bao trong một trong số chúng không?
Tôi có thể mở một trình bao bằng cách sử dụng lệnh: shell trong Vim, tuy nhiên tôi không thể chỉnh sửa tệp và đồng thời sử dụng trình bao.
Có cách nào để chia Vim trong nhiều Windows (hoặc tab) và mở một trình bao trong một trong số chúng không?
Câu trả lời:
Neovim và Vim 8.2
hỗ trợ điều này thông qua :ter[minal]
lệnh.
Xem terminal-window
trong tài liệu để biết chi tiết.
vsplit term://bash
nếu bạn đang sử dụng Neovim.
terminal
lệnh chia nhỏ cửa sổ và đưa ra một vỏ lệnh với màu đặc biệt trên thanh trạng thái cửa sổ. Bóng mượt.
Nó phụ thuộc vào hệ điều hành của bạn - thực sự thì tôi đã không thử nghiệm nó trên MS Windows - nhưng Conque là một trong những plugin tốt nhất hiện có.
Trên thực tế, nó có thể tốt hơn, nhưng hoạt động.
:vsp
hoặc :sp
- chia vim thành hai trường hợp nhưng bạn không thể sử dụng: shell chỉ trong một trong số chúng.
Tại sao không hiển thị tab khác của thiết bị đầu cuối mà không phải là tab khác của vim. Nếu bạn thích ý tưởng, bạn có thể thử nó: Ctrl-shift-t.
và di chuyển giữa chúng với Ctrl - pageup
vàCtrl - pagedown
Nếu bạn chỉ muốn một vài lệnh shell, bạn có thể thực hiện bất kỳ lệnh shell nào trong vim bằng cách sử dụng !
Ví dụ :!./a.out
.
vim
con đường kỳ diệu như vậy::!./%
Ctrl
bất cứ điều gì tôi cho rằng câu trả lời của bạn giả định là gnome-terminal hoặc một trình mô phỏng tương tự.
Bạn có thể sử dụng tmux
hoặc screen
(thứ hai là chỉ có thể thực hiện tách ngang mà không có miếng dán) để chia thiết bị đầu cuối của bạn. Nhưng tôi không biết cách để có một phiên bản Vim trong cả hai ngăn.
Nếu bạn chưa tìm hiểu, bạn có thể sử dụng plugin màn hình .
Conque cũng đặc biệt nhưng tôi thấy màn hình thực tế hơn nhiều (ví dụ như nó sẽ không "xả rác" vào bộ đệm của bạn và bạn chỉ có thể gửi các lệnh mà bạn thực sự muốn sau khi chỉnh sửa chúng trong bộ đệm của mình)
Tôi đoán đây là một câu hỏi khá cũ, nhưng bây giờ vào năm 2017. Chúng tôi có neovim, là một nhánh của vim bổ sung hỗ trợ thiết bị đầu cuối.
Vì vậy, việc gọi :term
sẽ mở ra một cửa sổ đầu cuối. Vẻ đẹp của giải pháp này trái ngược với việc sử dụng tmux (một bộ ghép kênh đầu cuối) là bạn sẽ có các ràng buộc cửa sổ giống như vim
thiết lập của bạn . neovim tương thích với vim, vì vậy về cơ bản bạn có thể sao chép và dán.vimrc
và nó sẽ hoạt động.
Ưu điểm hơn nữa là bạn có thể chuyển sang chế độ bình thường trên thiết bị đầu cuối đã mở và bạn có thể sao chép và chỉnh sửa cơ bản. Tôi đoán nó cũng khá hữu ích cho các cam kết git, vì mọi thứ trong bộ đệm của bạn, bạn có thể sử dụng trong chế độ tự động hoàn thành.
Tôi sẽ cập nhật câu trả lời này vì vim cũng đang có kế hoạch phát hành hỗ trợ thiết bị đầu cuối, có thể là trong vim 8.1. Bạn có thể theo dõi tiến trình tại đây: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM
Sau khi nó được phát hành, tôi tin rằng đây là một thiết lập vượt trội hơn so với việc sử dụng tmux.
Không hoàn toàn là những gì bạn đang yêu cầu, nhưng bạn có thể quan tâm bởi plugin vim-notebook của tôi cho phép người dùng giữ cho một quy trình nền tồn tại và làm cho nó đánh giá một phần của tài liệu hiện tại (và ghi kết quả đầu ra trong tài liệu). Nó được thiết kế để được sử dụng trên các tài liệu kiểu sổ ghi chép có chứa các đoạn mã được đánh giá.
Bạn có thể muốn mở một chương trình "màn hình", chia đôi màn hình, mở trình bao trên một chương trình và vim trên một chương trình khác. Làm việc cho tôi.
Tôi hiện đang sử dụng tmux.
Cài đặt: sudo apt-get install tmux Chạy nó: tmux
Ctrl + b theo sau là Ctr +%: nó chia cửa sổ đầu cuối của bạn thành hai nửa dọc.
Ctrl + "mũi tên trái | mũi tên phải": di chuyển giữa các thiết bị đầu cuối.