Thỉnh thoảng tôi tình cờ M-! some_command
thấy rằng lệnh chạy lâu hơn tôi mong đợi và giữ cho emacs của tôi bị đóng băng trong vài giây. Vì vậy, tôi trừng mắt với emacs đông lạnh của mình và tự đá mình vì không sử dụng M-& some_command
và tự hứa với mình sẽ sử dụng M-&
lần sau. Nhưng M-!
trong trí nhớ cơ bắp của tôi trong nhiều thập kỷ. Và tất nhiên là có Ctrl-G
, nhưng có những trường hợp khi phá lệnh và chạy lại thì không nên dùng (có thể nó sẽ bị hỏng, có thể sẽ rất tốn kém khi chạy lại).
Lỗi tương tự trong shell konsole là không đáng kể để sửa Ctrl-Z
, bg
và công việc đang chạy trong nền.
Có tồn tại một số mẹo tương tự trong emacs - một cách để biến lệnh foreground (đồng bộ) hiện đang chạy thành nền tảng (không đồng bộ) không?
Lưu ý: trong trường hợp không thể mặc định M-!
, tôi sẵn sàng đề xuất cách sắp xếp lại M-!
thành một thứ khác (những gì sẽ tương đương về mặt chức năng ngoài thủ thuật này).
M-!
để async-shell-command
. :-) Có vẻ như điều duy nhất bạn mất là nhận được đầu ra trong vùng echo khi nó đủ ngắn.
async-shell-command
. Nó thêm một &
phần cuối của COMMAND
chuỗi và thực thi shell-command
.
&
vào cuối của mộtshell-command
(M-!
) thông thường sẽ làm cho nó không đồng bộ. Tất nhiên, bạn phải làm điều này trước khi chạy một lệnh, nhưng ít nhất bạn có thể sử dụng cùng một thao tác gõ phím.