Apakah ada opsi atau paket yang menyebabkan default-directory
pembaruan jika direktori kerja berubah shell-mode
dan term-mode
? Yaitu ketika menggunakan cd
, tetapi solusinya harus lebih kuat daripada hanya mencari perintah khusus ini dan mungkin beberapa lainnya - itu benar-benar harus memeriksa nilai $PWD
setelah setiap perintah, saya akan berpikir.
Lebih penting lagi meskipun itu juga harus bekerja ketika menghubungkan ke mesin remote dari dalam shell-mode
atau term-mode
buffer yang pertama kali dibuat dengan default-directory
menjadi direktori lokal. Itu sebenarnya fitur yang benar-benar saya butuhkan: bisa memberi tahu secara terprogram apakah perintah yang saya ketik ke terminal seperti itu dijalankan pada mesin jarak jauh. Saya ingin mendapatkan informasi itu dalam bentuk set default-directory
dan gambar yang benar jika ada cara untuk mendapatkannya, maka alat yang melakukan ini juga akan bekerja secara lokal seperti dijelaskan di atas.
sumber
dirtrack-mode
? Memiliki kait yang dapat melakukan apa yang Anda inginkan.Jawaban:
Saya pikir bagian pertama dari pertanyaan Anda dapat dilakukan
dirtrack-mode
. Pertama, Anda mengatur prompt shell Anda untuk memasukkan direktori kerja saat ini. Selanjutnya, Anda mengaturdirtrack-list
ke regex yang memberi tahudirtrack-mode
cara mengekstraknya. Contoh: Saya menetapkanPS1
Bash menjadi ini:dan di Emacs saya mengatur
dirtrack-list
dan menghidupkandirtrack-mode
:(Diambil dari posting blog yang luar biasa ini .)
Setelah itu, saya dapat mengubah direktori sesuka hati, dan
default-directory
berubah seiring berjalannya waktu. Ini juga berfungsi jika, dalam sebuah shell, saya SSH ke mesin jarak jauh di mana saya telah mengatur prompt dengan cara yang sama -cd /etc/apache2
, pada mesin jarak jauh, berubahdefault-directory
menjadi/etc/apache2
. Perhatikan, bagaimanapun, bahwa ini adalah lokal - dalam kasus mesin jarak jauh,default-directory
masih akan diatur ke/etc/apache2
pada mesin lokal .Jika saya memahami bagian kedua dari pertanyaan Anda, Anda ingin
default-directory
disetel ke sesuatu sepertiremote-machine:/etc/apache2
ketika SSHing ke komputer lain. Saat menggunakan ssh-el , Anda dapat menjalankanssh-directory-tracking-mode
untuk membuat ini berfungsi. Misalnya, jika saya menjalankanM-x ssh
, cd to/etc/apache2
, kemudian jalankanC-x C-f
, prompt yang saya lihat adalah:Anda dapat menjalankan 'Mx ssh-directory-tracking-mode` dengan tangan, tetapi lebih mudah untuk mengaturnya sebagai pengait untuk ssh-mode:
Informasi lebih lanjut:
sumber
with-editor
yang akan digunakan oleh rilis Magit berikutnya. Magit sendiri tidak menggunakanwith-editor
'sshell-mode
/term-mode
-dukungan, jadi saya mungkin tidak akan mengintegrasikan ini sebelum rilis. Tetapi informasi yang Anda berikan akan membuatnya lebih mudah untuk melakukannya, setelah saya selesai dengan rilis Magit dan dapat kembali fokus pada hal-hal lain.with-editor
luar Magit: emacs.stackexchange.com/questions/27/… . Dan masalah Magit yang membuat saya menanyakan pertanyaan ini: github.com/magit/magit/issues/1638 .