new-window
Şu an içinde bulunduğum dizine ayarlanmış bir çalışma diziniyle açmak mümkündür . Önemli ise, zsh kullanıyorum .
new-window
Şu an içinde bulunduğum dizine ayarlanmış bir çalışma diziniyle açmak mümkündür . Önemli ise, zsh kullanıyorum .
Yanıtlar:
Başlayarak tmux 1,9 default-path
Kullanmak gerek nedenle, opsiyon kaldırıldı -c
ile seçeneği new-window
ve split-window
(yeniden bağlama örneğin c
, "
ve %
bağlamaları içerecek şekilde
-c '#{pane_current_path}'
). Ayrıntılar için bu sorunun diğer cevaplarına bakın.
İlgili bir özellik, Şubat 2012'nin başlarında tmux SVN bagajına düştü . Bu kodu içeren tmux sürümlerinde, çağıran tmux anahtar bağlantıları new-window
, geçerli bölmenin etkin işlemleriyle aynı default-path
oturum diziniyle ( oturum sürece) yeni bir pencere oluşturacak seçenek boştur, varsayılan olarak). split-window
Aynısı, bir bağlayıcı aracılığıyla çağrıldığında komut tarafından oluşturulan bölmede de geçerlidir .
Bu, platforma özgü özel kodlar kullanır, bu nedenle şu anda yalnızca belirli işletim sistemleri desteklenir: Darwin (OS X), FreeBSD, Linux, OpenBSD ve Solaris.
Bu, bir sonraki tmux sürümünde mevcut olmalıdır (1.7?).
Tmux 1.4 ile genellikle kullanıyorum
tmux neww
Zaten istenen mevcut çalışma dizini olan bir kabukta.
Bununla birlikte, aynı geçerli çalışma dizinine sahip birçok pencere oluşturmak istediğimi (veya bunları normal <prefix> c
anahtar ciltlemeyle başlatabilmek istiyorum) beklediğimde default-path
oturum seçeneğini şu şekilde ayarlıyorum:
tmux set-option default-path "$PWD"
Zaten istenen geçerli çalışma dizinine sahip bir kabukta (açıkça herhangi bir dizinden yapıp, sadece değerini belirtebilseniz de).
Eğer default-path
boş olmayan bir değere ayarlanır, değeri yerine komut satırı çağırmaları gelen “miras” geçerli çalışma dizini kullanılacaktır tmux neww
.
Tmux SSS başlıklı bir girdi olan başka bir yaklaşım anlatılmaktadır “Ben geçerli pencere ile aynı dizinde yeni bir pencere açmak nasıl?”; biraz sarsılmış olsa da.
/proc/PID/cwd
Linux'ta) mümkün olsa da ). Olası kısmi bir çözüm yoktur bir giriş bölgesinin tmux SSS (bu, kabuk kaydı bir istemi yazdırabilir CWD sahip sonra kaydedilen dizinde yeni bir kabuk başlatan bir anahtar olarak bağlanır).
default-path
(eğer ayarlanmışsa) oturum seçeneğinin değerini kullanır . Tmux SSS geçerli pencerede kabuk çalışan CWD'sindeki ile yeni bir pencere başlatan bir anahtar bağlamak için bir yol açıklayan bir giriş içerir ( “Ben geçerli pencere ile aynı dizinde yeni bir pencere açmak nasıl?”) , ancak yöntem oldukça karmaşık. Aynı muhtemelen split-window
ve new-session
(yerine neww
) için yapılabilir .
Geçerli (1.9a) Tmux kılavuz sayfası -c start-directory
, new-window
ve dahil bazı komutlar için isteğe bağlı bir parametre listeler split-window
. Aynı zamanda pane_current_path
ifade
eden format değişkenini de içerir Current path if available
.
Bunları birleştirerek
new-window -c "#{pane_current_path}"
, mevcut yolun boşluk içermesi durumunda, tırnak içine alınması gereken geçerli çalışma dizini ile yeni bir pencere açabiliriz .
Geçerli bölmeyi dikey olarak bölmek istiyorsanız
split-window -c "#{pane_current_path}"
, yatay bölme için veya düğmesini kullanın.
split-window -h -c "#{pane_current_path}"
Anahtar bağlantılarının geçerli çalışma diziniyle yeni bölmeler ve pencereleri varsayılan olarak açmasını sağlamak için, aşağıdakini ekleyin .tmux.conf
. "
Çevre tırnak bir dize başlamak ziyade bağlamak olmamalı tmux söylemektir "anahtarı.
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
prefix
- :
, sonra yazınsource ~/.tmux.conf
tmux source-file .tmux.conf
.
Evet, kullan new-window -c "#{pane_current_path}"
. ~/.tmux.conf
Kalıcı hale getirmek için aşağıdakini ekleyebilirsiniz (varsayılan tuş bağlamalarını varsayarak):
bind c new-window -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
default-path
Yol ayarı yapıldı kaldırıldı kullanarak o işlemek mesajında önerilen memba kodu ve tmux yazarın -c "#{pane_current_path}"
veya -c "$PWD
içinde new-window
ve split-window
komutlar.
Ayrıca bu yinelenen soruya cevap verdim .
Diğer cevaplar benim için işe yaramazsa onları bağlayıcı olarak koymaya çalıştığımda (özellikle tmux split-window -c
). Ancak, bir yıldan uzun süredir hem yeni pencere hem de bölmeler için çalışan kendi çözümümü oluşturdum:
~/.bashrc
:
PS1="$PS1"'$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#D" | tr -d %) "$PWD")'
~/.tmux.conf
:
unbind-key c
bind-key c run-shell 'tmux new-window "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind-key C new-window
bind-key - run-shell 'tmux split-window -v "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind-key | run-shell 'tmux split-window -h "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"
En azından $ (tmux -V) 1.8 ile çalışır. Şov ortamı komutuna sahip olmayan eski smokinlerde çalışan sürüm için buradaki yorumlu satırlara bakın .
tmux, 1.8 sürümünde yaptı ancak 1.9'da bu özellik -c
bayrak kullanımı lehine kaldırıldı .
Bu çözüldü ancak yeniden bağlayıcı olabilir new-window
ancak durumda bunu çok ağız olur başka bir şey çalıştırmak istiyorum: yerine yazarak neww man tmux
yazdığınız gerekecek neww -c "#{pane_current_path}" man tmux
hangi büyük olasılıkla yapmak istemiyoruz.
Takma ad kullanmaya izin vermek, 'mode' modunda birden çok komut bağlamak, değişkenler, döngüler, vb. İçin tmux'a uygun bir betik dili eklemek için bir tmux modu var (ben yazarım). : geçerli dizinde yeni pencereler ve pencereler açılır.
Buradaki kaynaklardan inşa edilebilir: http://ershov.github.io/tmux/
<prefix>c
Altta yatan kabuk örneğinin (varsa) çalışma dizinini okumak vedefault-path
yürütmeden önce ayarlamak için eşleştirebileceğim bir yol var mınew-window
? Yoksa bu bir istemek çok tmux :)