Cara mengubah direktori jendela baru default dari dalam tmux

42

Saya baru-baru ini pindah dari layar GNU ke tmux .
Saya merasa sangat mirip tetapi dengan dukungan yang lebih besar (saya beralih karena masalah dengan waktu pelarian di neovim - resolusi hanya untuk tmux).

Sayangnya di tmux saya tidak dapat menemukan perintah yang mirip dengan ini:

screen -X eval "chdir $(some_dir)"

Perintah di atas mengubah direktori default untuk jendela / layar / panel baru dari dalam layar GNU sehingga ketika saya menekan Ctrl+ a(mirip dengan tmux Ctrl+ b) - jendela baru dibuka di $(some_dir)direktori.

Apakah ada hal serupa di tmux?

JAWABAN:
Saya telah menggunakan jawaban @Lqueryvg dan menggabungkannya dengan saran @Vincent Nivoliers dari sebuah komentar dan itu memberi saya pengikatan baru untuk sebuah perintah attach -c "#{pane_current_path}"yang menetapkan direktori saya saat ini sebagai yang default.
Terima kasih.

Lewiatan
sumber
Anda dapat menggunakan jawaban kedua dari pertanyaan ini
Vincent Nivoliers
Terima kasih, ini sangat membantu. new-window -c "#{pane_current_path}"berfungsi tetapi yang saya butuhkan adalah mengatur path secara permanen, yaitu: Saya bekerja dalam sebuah proyek di / aaa / bbb tetapi entah bagaimana saya ketika saya mengubah path untuk mengatakan / ccc / ddd dan mulai baru dengan Cb dan c saya ingin mendarat sekali lagi di / aaa / bbb. Bisakah Anda memikirkan solusi untuk ini?
lewiatan
Saya pribadi baik-baik saja dengan penambahan tiga baris terakhir di saya .tmux.conf. Dengan begitu saya hanya perlu menavigasi sekali ke folder dan kemudian membuat windows / split saya dari sana, tapi saya akui ini bukan solusi untuk masalah Anda, itu sebabnya saya tidak memposting jawaban!
Vincent Nivoliers

Jawaban:

61
  1. Mulai tmuxsebagai berikut:

    (cd /aaa/bbb; tmux)
    

    Sekarang, semua jendela baru (atau panel) yang Anda buat akan mulai di direktori /aaa/bbb, terlepas dari direktori saat ini dari panel saat ini.

  2. Jika Anda ingin mengubah direktori default setelah tmuxdan berjalan, gunakan attach-sessiondengan -c.

    Mengutip dari tmuxhalaman manual untuk attach-session:

    -c will set the session working directory (used for new windows)
    to working-directory.
    

    Sebagai contoh:

    • Ctrl+b :

    • attach -c /ddd/eee

    Jendela baru (atau panel) sekarang akan mulai di direktori /ddd/eee, terlepas dari direktori panel saat ini.

Lqueryvg
sumber
7
Pilihan kedua adalah persis apa yang saya inginkan. Saya akan menggunakan attach -c "#{pane_current_path}"yang akan sama dengan apa yang saya miliki di layar. Terima kasih.
lewiatan
Iya nih! attach -cpersis apa yang saya cari. Terima kasih
Byron Mansfield
3

Bagi mereka yang mungkin mencari referensi sedikit lebih banyak daripada jawaban yang dipilih, ada jawaban lain yang bagus untuk pertanyaan ini di StackOverflow:

https://stackoverflow.com/questions/27307815/how-to-change-the-starting-directory-of-a-tmux-session

Yang menyediakan cara-cara yang dapat Anda lakukan tanpa meninggalkan sesi, dan bagi mereka yang menggunakan tmux secara multi-sesi (seperti saya), jawaban di atas memberikan konteks yang lebih baik tentang bagaimana attach/ attach-sessionbekerja.

Lihat kedua jawaban yang tersedia untuk berbagai cara penggunaannya. Saya menemukan keduanya membantu / wawasan.

nicklamuro
sumber