Dua jawaban sebelumnya tidak berhasil untuk saya:
(setq process-connection-type nil)
bangkrut org-plot/gnuplot
setsid xdg-open ...
bekerja sebentar, tapi kemudian berhenti karena suatu alasan.
Sekarang saya menggunakan setsid -w
, yang seharusnya membuat setsid
menunggu sampai program yang dipanggil selesai.
Jika seseorang membutuhkannya, saya menggunakan ini dengan AUCTeX (dan saya menemukan pertanyaan ini ketika mencoba untuk memperbaiki perilaku AUCTeX di Arch linux), dan saya TeX-command-list
diatur ke
(quote
(
;; ...
("View" "setsid -w xdg-open %s.pdf" TeX-run-command t t :help "Run Text viewer")
;; ...
)
Tampaknya berfungsi dengan baik untuk saat ini ...
-w
(tunggu):setsid -w xdg-open 1.pdf
Ini mungkin masalah dengan menggunakan ptys untuk komunikasi subproses. Cobalah mengatur tipe proses-koneksi hingga nol untuk menggunakan pipa saja.
Di .emacs Anda
Saya menggunakan fungsi penerbitan dari mode org dan tanpa perubahan ini, tidak ada file yang dihasilkan dibuka melalui xdg-open, meskipun tidak ada pesan kesalahan.
sumber
org-plot/gnuplot
dengan kursor / titik di atas meja dengan dan tanpaprocess-connection-type
disetel kenil
, untuk lebih jelasnya lihat subbagian pertama halaman ini .kerja xdg-terbuka dalam mode sinkron:
(shell-command "xdg-open .")
, tapi tidak dalam modus async:(async-shell-command "xdg-open .")
.sepertinya proses anak menelurkan xdg-open untuk membuka file kemudian keluar. sebelum anak memproses file terbuka, xdg-buka, jadi keluar shell juga. keluar shell membunuh semua proses anak.
jadi buat saja shell lebih lama:
(async-shell-command "xdg-open . ; sleep 1")
(async-shell-command akan ditambahkan&
setelahnyasleep 1
; toh, shell masih akan menunggu proses latar belakang&
selesai.)sumber