Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Normalde, "yeni sekme" ve "bölme" eylemleri her zaman bu profil için olan her şeyde startingDirectory yeni bir sekme/bölme açar. Ancak diğer platformlarda, yeni sekmelerin yeni bir sekme için başlangıç dizini olarak geçerli sekmenin çalışma dizinini otomatik olarak kullanması yaygındır. Bu, kullanıcının tek bir dizinde hızla birden çok görev yapmasına olanak tanır.
Ne yazık ki Windows'ta, bir işlem için geçerli çalışma dizininin ("CWD") ne olduğunu belirlemek zordur. Arama yapabilsek bile, tüm uygulamalar CWD'lerini gezinirken ayarlamaz. Özellikle, Windows PowerShell CWD'sini siz dosya sisteminde olduğu cd gibi değiştirmez! PowerShell'in CWD'sinin otomatik olarak çoğaltılması neredeyse her zaman yanlış olacaktır.
Neyse ki geçici bir çözüm var. Uygulamalar özel bir kaçış dizisi (özellikle "OSC 9; 9" biçimi) CWD'nin ne olması gerektiğini Terminale el ile söylemek için.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Kabuğu terminale geçerli çalışma dizininden bahsedecek şekilde yapılandırın
- Eylemi kullanarak
duplicateTabaynı CWD ile bir sekme açın - Eylemi kullanarak
splitPaneaynı CWD ile bir bölme açma - Sekme bağlam menüsünü kullanarak aynı CWD ile sekmeleri veya bölmeleri açma
Kabuğunuzu yapılandırma
Terminale CWD'nin ne olduğunu söylemek için, işletim sisteminde gezinirken bir kaçış dizisi yaymak için kabuğunuzu değiştirmeniz gerekir. Neyse ki çoğu kabuk, her komuttan sonra çalıştırılan "istemi" yapılandırmak için bir mekanizmaya sahiptir. Bu tür bir çıktı eklemek için mükemmel bir yerdir.
Windows
Komut: cmd.exe
cmd
%PROMPT%, istemi yapılandırmak için ortam değişkenini kullanır. Aşağıdaki komutla CWD'yi ayarlamak için istemi komutuyla kolayca ön ekleyebilirsiniz:
set PROMPT=$e]9;9;$P$e\%PROMPT%
Bu, geçerli isteminize eklenir $e]9;9;$P$e\ . cmd bu istemi değerlendirdiğinde,
-
$ekaçış karakteriyle -
$pgeçerli çalışma diziniyle
Yukarıdaki komutun yalnızca geçerli cmd.exe oturum için çalışacağını unutmayın. Değeri kalıcı olarak ayarlamak için yukarıdaki komutu çalıştırdıktan sonra
setx PROMPT "%PROMPT%"
PowerShell: powershell.exe veya pwsh.exe
PowerShell isteminizi daha önce hiç değiştirmediyseniz, önce about_Prompts göz atmalısınız.
PowerShell profilinize aşağıdakileri ekleyin:
function prompt {
$loc = $executionContext.SessionState.Path.CurrentLocation;
$out = ""
if ($loc.Provider.Name -eq "FileSystem") {
$out += "$([char]27)]9;9;`"$($loc.ProviderPath)`"$([char]27)\"
}
$out += "PS $loc$('>' * ($nestedPromptLevel + 1)) ";
return $out
}
Posh-git ile PowerShell
Posh-git kullanıyorsanız, bu zaten isteminizi değiştirir. Bu durumda, yalnızca gerekli çıkışı zaten değiştirilmiş isteme eklemek istersiniz. Aşağıdaki örnek, ConEmu belgelerinden bu örneğin hafifçe değiştirilmiş bir sürümüdür:
function prompt
{
$loc = Get-Location
$prompt = & $GitPromptScriptBlock
$prompt += "$([char]27)]9;12$([char]7)"
if ($loc.Provider.Name -eq "FileSystem")
{
$prompt += "$([char]27)]9;9;`"$($loc.ProviderPath)`"$([char]27)\"
}
$prompt
}
Starship ile PowerShell
Starship kullanıyorsanız, bu zaten isteminizi değiştirir. Bu durumda, yalnızca gerekli çıkışı zaten değiştirilmiş isteme eklemek istersiniz.
function Invoke-Starship-PreCommand {
$loc = $executionContext.SessionState.Path.CurrentLocation;
$prompt = "$([char]27)]9;12$([char]7)"
if ($loc.Provider.Name -eq "FileSystem")
{
$prompt += "$([char]27)]9;9;`"$($loc.ProviderPath)`"$([char]27)\"
}
$host.ui.Write($prompt)
}
WSL
Linux dağıtımları için Windows Alt Sistemi öncelikle komut satırı kabuğu olarak BASH kullanır.
bash
Yapılandırma dosyanızın .bash_profile sonuna aşağıdaki satırı ekleyin:
PROMPT_COMMAND=${PROMPT_COMMAND:+"$PROMPT_COMMAND ; "}'printf "\e]9;9;%s\e\\" "$(wslpath -w "$PWD")"'
PROMPT_COMMAND Bash'teki değişken, istemi görüntülemeden önce bash'e hangi komutun çalıştırılması gerektiğini bildirir. deyimi printf , Terminal ile çalışma dizinini ayarlama sırasını eklemek için kullandığımız deyimdir. Bit, $(wslpath -w "$PWD") geçerli dizini Windows benzeri yoluna dönüştürmek için yürütülebilir dosyayı çağırır wslpath . Bit ${PROMPT_COMMAND:+"$PROMPT_COMMAND; "} , bu komutu var olan herhangi bir komuta eklediğimizden emin olmak için biraz bash büyüsüdür (zaten başka bir yere ayarladıysanız PROMPT_COMMAND .)
zsh
Dosyanızın .zshrc sonuna aşağıdaki satırları ekleyin:
keep_current_path() {
printf "\e]9;9;%s\e\\" "$(wslpath -w "$PWD")"
}
precmd_functions+=(keep_current_path)
Kanca, precmd_functions zsh'ye istem görüntülenmeden önce hangi komutların çalıştırılması gerektiğini söyler. deyimi printf , Terminal ile çalışma dizinini ayarlama sırasını eklemek için kullandığımız deyimdir. Bit, $(wslpath -w "$PWD") geçerli dizini Windows benzeri yoluna dönüştürmek için yürütülebilir dosyayı çağırır wslpath . kullanarak precmd_functions+= , işlevi bu kanca için önceden tanımlanmış olan herhangi bir işleve eklediğimizden keep_current_path emin olun.
Balık
Fish shell kullanıyorsanız, konumundaki ~/.config/fish/config.fishyapılandırma dosyanızın sonuna aşağıdaki satırları ekleyin:
function storePathForWindowsTerminal --on-variable PWD
if test -n "$WT_SESSION"
printf "\e]9;9;%s\e\\" (wslpath -w "$PWD")
end
end
Bu işlev, geçerli oturumun Windows Terminali ($WT_SESSION doğrulaması) tarafından açıldığını onaylamak ve İşletim Sistemi Komutu (OSC 9; 9;), geçerli yolun Windows eşdeğer yolu (wslpath -w) ile.
MINGW
MINGW, Git Bash ve Cygwin için WSL: yerine PROMPT_COMMAND değerini ile wslpathdeğiştirmeniz cygpath gerekir.
Dosyanızın .bashrc sonuna aşağıdaki satırı ekleyin:
PROMPT_COMMAND=${PROMPT_COMMAND:+"$PROMPT_COMMAND; "}'printf "\e]9;9;%s\e\\" "`cygpath -w "$PWD" -C ANSI`"'
Uyarı
Burada en sevdiğiniz kabuğu görmüyor musunuz? Bunu çözerseniz tercih ettiğiniz kabuk için bir çözüme katkıda bulunmak için bir çekme isteği açabilirsiniz !
Yolu çoğaltmak için eylemleri kullanma
Kabuğu Terminal'e geçerli dizinin ne olduğunu söyleyecek şekilde yapılandırdıktan sonra, bu yola sahip yeni bir sekme veya bölme açmak kolaydır.
Ile yeni bir sekme açma duplicateTab
Şu anda etkin olan terminalle aynı yola (ve profile) sahip yeni bir sekme açmak için "Sekmeyi Çoğalt" eylemini kullanın. Bu, aşağıdaki gibi varsayılan olarak Ctrl+Shift+D tuşlarına bağlıdır:
{ "command": "duplicateTab", "keys": "ctrl+shift+d" },
(bkz duplicateTab. ) daha fazla ayrıntı için.
Ile yeni bir bölme açma splitPane
Şu anda etkin olan terminalle aynı yolu (ve profili) içeren yeni bir bölme açmak için "Bölmeyi Çoğalt" eylemini kullanın. Bu, varsayılan olarak bağlı DEĞİlDR . Bu eylemin en basit biçimi:
{ "command": { "action": "splitPane", "splitMode": "duplicate" } },
(bkz splitPane. ) daha fazla ayrıntı için.
Yolu çoğaltmak için menüyü kullanma
yukarıdaki eylemler sekme bağlam menüsünde, "Sekmeyi Çoğalt" ve "Bölme Bölmesi" girdilerinin altında da kullanılabilir.
Windows Terminal