Có thể có đầu ra của a :! lệnh trong một tách chứ không phải toàn bộ cửa sổ?


11

Nếu tôi có một phiên vim với hai lần phân tách, khi tôi thực hiện một :!lệnh, kết quả sẽ được hiển thị trong toàn bộ cửa sổ. Có thể có đầu ra được hiển thị chỉ trên phần tách hoạt động?


2
Không, điều này là không thể. Đầu ra nếu :!được hiển thị trong dòng lệnh, trong đó chỉ có một và chỉ có thể ở dưới cùng của màn hình. Điều tốt nhất tôi có thể nghĩ đến là tạo ra một bộ đệm mới /: tách ra bên dưới bộ đệm hiện tại ...
Martin Tournoij

@Carpetsmoker, Đối với tôi, đầu ra của :!không đi đến dòng lệnh. Thay vào đó, phiên vim biến mất và toàn bộ cửa sổ đầu cuối hiển thị đầu ra của thiết bị đầu cuối, bao gồm cả những gì đã được in trước đó vimđược gọi.
drs 19/2/2015

1
Có lẽ đó là do thiết bị đầu cuối bạn sử dụng và / hoặc TERMcài đặt?
Martin Tournoij

Sự khác biệt này có liên quan đến màn hình alts (in screen) hoặc màn hình thay thế (in tmux).
tommcdo

Câu trả lời:


8

Bạn có thể sử dụng lệnh này:

:new | 0read ! command

Điều này sẽ mở ra một phân chia mới và đặt đầu ra của lệnh trong phân tách này ( mặc dù không phải trong phân tách hiện đang hoạt động như bạn đã đề cập ).

mới - tạo sự phân chia mới

đọc - để có được đầu ra lệnh

lệnh - lệnh thực tế


6

Bạn có thể thực hiện một lệnh để làm điều này:

  1. Mở một phân chia mới (hoặc tab)
  2. Chạy một lệnh và hiển thị kết quả trong phần tách (hoặc tab) đó

Lệnh sẽ là một cái gì đó như thế này:

:Rsplit command

hoặc là

:Rtab command

Trong của .vimrcbạn, bạn có thể viết này:

" execute a command and show its output in a split window
command! -nargs=* -complete=shellcmd Rsplit execute "new | r! <args>"

" execute a command and show its output in a new tab
command! -nargs=* -complete=shellcmd Rtab execute "tabnew | r! <args>"

Bạn có thể tìm thấy làm thế nào để thực hiện các lệnh của riêng bạn với :help :command.


1

Điều đó sẽ không thể xảy ra. Bạn sẽ phải chia màn hình của mình bằng một công cụ khác như tmux (IIRC), màn hình, ...

Nếu bạn không cần phải tương tác với chương trình được thực thi, tuy nhiên bạn có thể nhập kết quả của chương trình trực tiếp vào bất kỳ cửa sổ nào (theo nghĩa vim :h windows) mà bạn muốn :r!command line.:h :r!

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.