Đình chỉ một quá trình âm thầm với ctrl-z


7

Với quy trình làm việc hiện tại của tôi, tôi thường xuyên sử dụng CTRL-z để tạm dừng Vim để tôi có thể nhập một vài lệnh nhanh trước khi tiếp tục chỉnh sửa mã của mình bằng fg (thực ra, lại là CTRL-z, nhờ mẹo ZSH tiện dụng trên bài đăng trên blog này ). Vấn đề là, thiết bị đầu cuối của tôi cuối cùng bị lộn xộn với các thông báo đình chỉ công việc gây mất tập trung từ đầu ra mà tôi muốn xem.

Đầu ra không mong muốn:

[1]  + continued  vim

zsh: suspended  vim

Ảnh chụp màn hình sau đây cho thấy kết quả này có thể trông như thế nào trong một phiên chuẩn: nhập mô tả hình ảnh ở đây

Vì vậy, câu hỏi của tôi; Có cách nào để dừng CTRL-z và fg in bất kỳ đầu ra nào không?


2
Tôi không nghĩ vậy. Bạn có thể nên xem xét sử dụng screenhoặc tmuxđể tránh vấn đề hoàn toàn.
Otheus

Tôi không thể tìm ra giải pháp, vì vậy tôi đã phát triển một giải pháp trên ahem
Gilles 'SO- ngừng trở nên xấu xa'

1
Nhìn vào nguồn, cả bash và zsh dường như không có cách nào để tránh những tin nhắn này.
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Thật không may. Dù sao cũng cảm ơn, nếu bạn chắc chắn thì bạn có thể đặt câu hỏi này làm câu trả lời để tôi có thể đánh dấu nó là đã giải quyết không?
JamoBox

2
Tại sao bạn không chạy lệnh từ bên trong vimbằng cách sử dụng :! your_command?
Jakuje

Câu trả lời:


0

Một cách là phá vỡ đường ống. Tuy nhiên, chương trình tiến bộ không thể được gọi bởi fgnữa.

Bạn có thể nắm tay từ bỏ công việc initbằng lệnh disown -h JobID|PIDsau khi chạy bg JobID|PID. Và sau đó bạn có thể đóng thiết bị đầu cuối.

Chương trình sẽ không dừng lại. Nó sẽ giống như một daemon kể từ đó. Tuy nhiên, nó không thể lấy bất cứ thứ gì từ stdinvà nó xuất ra stdoutstderrsẽ bị bỏ qua.


Mặc dù điều này không hoàn toàn đạt được những gì tôi muốn nhưng về mặt kỹ thuật trả lời câu hỏi, vì vậy tôi sẽ đánh dấu câu này là chính xác.
JamoBox

1

Tôi không chắc chắn nếu tin nhắn cho các phiên tương tác có thể dễ dàng thay đổi. Nhưng vấn đề của bạn có thể được giải quyết như Jakuje gợi ý với một nhánh con từ Vim. Thay vì chạy lệnh của bạn, chỉ :!zshhoặc :!bashkhi bạn hoàn thành exit.


Tất nhiên bạn có thể ánh xạ điều này trong Vim để làm cho nó dễ dàng hơn Cz và sử dụng Cd để thoát khỏi trình bao và quay lại Vim.
cxed
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.