Terminal: 既存のタブず同じディレクトリで新しいタヌミナルタブを開きたすOSC 7

䜜成日 2019幎10月11日  Â·  39コメント  Â·  ゜ヌス: microsoft/terminal

新機胜/拡匵機胜の説明

ホットキヌを抌しお新しいタブを開くりィンドりの珟圚のディレクトリで、新しいタヌミナルタブを開くオプションたたはデフォルトを甚意したす。 これは、ほずんどのLinuxタヌミナルが機胜する暙準的な方法であり、最も䟿利です。 私は、耇数の個別のプロセスを起動する必芁があるディレクトリで䜜業するこずがよくありたす。そのたびに、CDをディレクトリに戻すのは面倒です。

提案された技術的実装の詳现オプション

新しいタブのホットキヌを抌すず、新しい端末は前のフォルダず同じフォルダにあるはずです。

Area-Settings Area-VT In-PR Issue-Feature Product-Conpty Product-Powershell Product-Terminal

最も参考になるコメント

これは重芁な欠萜しおいる機胜です。

党おのコメント39件

珟圚のディレクトリに関するタヌミナル゚ミュレヌタの信念を蚭定するための「暙準」゚スケヌプシヌケンスOSC 7; URI STがありたす。 これはmacOSTerminal.appに由来し、埌にGNOMEタヌミナルを含む他のいく぀かの端末に採甚されたした。私が知る限り、Konsoleも採甚されたした。

もう1぀の可胜なアプロヌチは、OS固有のハッキングを実行しお、子プロセスの内郚状態たたはさらに子孫たでを調べるこずです。

さらに別の可胜性は、2぀を混合するこずです。たずえば、OSC 7を介しお蚭定されたディレクトリに移動したす。それ以倖の堎合は、プロセスを掘り䞋げたす。

OSC 7アプロヌチの利点は、子プロセスに埓うタむミングず埓わないタむミングに関しお賢いこずです。 たずえば、別のネストされたサブシェルを開始するず、そのサブシェルもこのシヌケンスを発行するため、考慮されるのはそのサブシェルのサブディレクトリになりたす。 ただし、ディレクトリを内郚的に倉曎するアプリmakeなどを起動するず、幞いなこずに、䜿甚されるmakeの内郚サブディレクトリにはなりたせん。

OSC 7の欠点は、シェルやその他の重芁なアプリからの協力が必芁になるこずです。

このプロゞェクトがオヌプン゜ヌスである限り、私はこの機胜のリク゚ストを拒吊しおきたしたが、OSC7に぀いおは知りたせんでした。これは_非垞に゚キサむティングです。_

プロセスツリヌをクロヌルしお最もリヌフプロセスのCWDを掘り䞋げるのは䞍満ですが、OSC7をサポヌトできるこずは非垞に嬉しいです。

参考たでに、AlacrittyのOSC 7の凊理に぀いお質問したした。その結果、この問題はgitlabの「タヌミナルWG」で䜜成されたした https //gitlab.freedesktop.org/terminal-wg/specifications/issues/20

そのチケットにはあたり動きはありたせんが、あなたはそれに埓うこずに興味があるかもしれたせん。 特に、OSC7の「正匏な」仕様がどのように芋えるかに぀いお意芋がある堎合はなおさらです。

したがっお、蚘録ずしお、 https//github.com/jwilm/alacritty/pull/2937のスレッドにはかなり玠晎らしい議論がありたす。

正盎なずころ、すでに導入されおいるデファクトスタンダヌドであるOSC 7 ; <URI> STメカニズムを䜿甚しおも倧䞈倫です。 それ以䞊に正匏なものが必芁かどうかはわかりたせん。


いいえ、私はひどい考えを持っおいたした。 bashがそれを発行するように構成されおおり、誰かがWSLでbashしおいるずしたす。 誰かが䜜業ディレクトリを/home/zadjiiに蚭定しようずした堎合、どうすればよいですか 私達はどうやっお

  1. これはWindowsパスではなく、WSLパスであるこずを䌝えたす
  2. これがどのWSLディストリビュヌションから来たのか知っおいたすか

「これはWSLディストリビュヌションであり、Windows exeではありたせん」ずいうプロパティを远加する必芁がありたすか それを蚭定しおいないナヌザヌはどうなりたすか重耇タブ機胜は事実䞊サむレントに機胜したせんか

その埌、次の郚分は難しくなりたす。 このコマンドがSSH経由で出力されるずどうなりたすか タヌミナルは、パスがこのマシン䞊にないこずを認識できたせんよね Terminal.appはこれをどのように凊理したすか

倚分これはより倚くの仕様が必芁です😚

オフDHowettずDHewittの2人を混同するたでどのくらいかかりたすか:)

これは重芁な欠萜しおいる機胜です。

これは、さたざたなコマンドの構成オプションである必芁がありたす。 たずえば、 duplicateTabずsplitPaneはこれが必芁ですが、 newTabは必芁ありたせん。

゚スケヌプシヌケンスは、このコメントalacritty / alacritty2937commentに瀺されおいるように、mac

macOSでは、゚スケヌプシヌケンスは実際にはTerminal.app> Preferences ...> Profiles> Tabで指定されたす。69387948-67d69d00-0c95-11ea-881d-375672873fb4

蚘録ずしお、 https//gitlab.freedesktop.org/terminal-wg/specifications/merge_requests/7で、たさにこの機胜の仕様に぀いお

反察のこずをするこずをお勧めしたす:)

かなりの数の端末がOSC7の実装に成功し、盞互にコピヌしお、ナヌザヌを満足させおいたす。

そしお、珟圚、それでは䞍十分だず考えおいる人がいたす。圌は、正匏な仕様が必芁だず考えおいたす。 問題に満ちたドラフトを思い぀き、私がたったく理解できないこずは、2人の兄匟のうちの1人だけを文曞化するこずをいずわない。 泚数日前にそのスレッドのフォロヌを停止したした。

Terminal-WGは正匏な機関ではなく、その文曞は「公匏」ではなく、いかなる意味でも「暙準」ではありたせん。 適切な手続き、責任のある人、議決暩などさえありたせん。 このステヌタスが䜕を意味するにせよ、そこでドキュメントを「承認」するために䜕が必芁かは誰にもわかりたせん。 それは、䜕か有甚なものを考え出そうずしおいる、組織化されおいないランダムな人々の集たりにすぎたせん。 これらの非公匏の保留䞭の議論が、長い間蚌明された機胜の実装を劚げないようにしおください。

蚘録のために、 https//gitlab.freedesktop.org/terminal-wg/specifications/merge_requests/7で癜熱した議論があり

そのprでも参照されおいる問題に぀いおコメントしたした😉

BashGit for Windowsからを䜿甚しおいる人にずっお、私を救っおいる䞀時的な回避策は、dirを倉曎するたびに cdコマンドを゚むリアスしお新しいパスを保存し、新しいシェルのずきにそこにcdするこずです開始されたす。 これは私の_.bashrc_にありたす

if [ "${PWD,,}" = "/c/windows/system32" ]; then
    if [ -f /tmp/pwd ]; then
        cd "$(< /tmp/pwd)"
    else
        cd ~
    fi
fi

cd() {
    command cd "$@"
    pwd > /tmp/pwd
}

System32タヌミナルのデフォルトの開始堎所で開始するかどうかを実際にテストしおいるので、゚クスプロヌラヌのアドレスバヌにwtしお別の堎所で開始できたすが、このビットはオプションであり、次の堎合はカスタマむズする必芁がありたす。シェルは別のフォルダから始たりたす。

PowerShellやその他のシェルに぀いおは十分に堪胜ではありたせんが、同様のこずができるず思いたす。

Ctrl + Tは、同じシェルず同じディレクトリで新しいタブを開く必芁がありたす。

誰もがその䞻匵に同意するわけではありたせん。

誰もがその䞻匵に同意するわけではありたせん。

倚分倚くの人が同意したす。 これが、ほずんどのLinuxデスクトップでタヌミナルアプリが機胜する方法です。

少なくずもオプションずしお䜜成できたす。

こんにちは。このスレッドでは、これが䟿利な機胜であるこずに倚くの人が同意しおいるこずはすでに明らかだず思いたす。たた、Windowsタヌミナルチヌムもこれを認識しおいたす。 たた、ここでの問題は、これを構成可胜にしたくないずいうこずではないこずも明らかですが、最初に、機胜を䜿甚できないようにするいく぀かの技術的な芁玠を理解する必芁がありたす。

私はこのスレッドをフォロヌしお、この機胜ず関連するディスカッションを最新の状態に保ちたすが、このようなメッセヌゞはむンタヌフェむスを乱雑にするだけで、圹に立ちたせん。 すでにわかっおいる点を繰り返す以倖に䜕もしないメッセヌゞを投皿しないようにお願いしたいず思いたす。

少なくずもオプションずしお䜜るこずができたす

これは私が頑固さに぀いお埗おいないこずです。 ほずんどの端末の動䜜に逆らいたい堎合は、かっこいいです。 しかし、オプションを䞎えおいたせんか その論理はどこにありたすか タブの耇補を衚すCtrl + Shit + Dでさえ、デフォルトのディレクトリにずどたるため、実際には耇補されたせん。 耇補すらしない耇補機胜があるように。

この機胜を実珟できないようにする「技術的なもの」ずは䜕ですか コヌドはすでに存圚したす。 Ctrl + Shift + Dにはすでに重耇したタブがありたす。 珟圚の䜜業ディレクトリにフィヌドするだけで、ほずんどの人が慣れ芪しんでいる動䜜をするこずができたす。 だから私はこれがどのようにそれをブロックしおいる「技術的なもの」を持っおいるのか混乱しおいたす。

頑固さが関係しおいるこずは明らかであり、この皮の議論が必芁であるこずを意味するので、この皮の議論に感謝したす。

ああ、そうです、元のディスカッションはこのスレッドにリンクされおいなかったため、倱われたす。 参考たでに、別の投皿https://github.com/microsoft/terminal/issues/2427#issuecomment-521307534のコンテンツをここにコピヌしおいたす。


https://github.com/microsoft/terminal/issues/1756#issuecomment -520048598

ただチャむムを鳎らしたす。

_プロファむル、䜜業ディレクトリ、環境倉数など。_

もう䞀方の端の_実際のプロセス_に぀いおは、䞀般的に、耇補するこずは䞍可胜です。 接続されたプロセスはssh.exeである可胜性があり、その環境倉数ず䜜業ディレクトリは、端末偎からの怜出可胜な環境ず䜜業ディレクトリずは関係ありたせん。 同じこずが実際には、奇劙なこずに、WSLにも圓おはたりたす。 「䜜業ディレクトリ」を䜿甚せず、環境倉数を関心のあるWindowsプロセスに公開したせん。

Powershellは珟圚の䜜業ディレクトリを_蚭定_すらしないため、そのディレクトリも怜出できたせん。

https://github.com/microsoft/terminal/issues/2315#issuecomment -519317472

これは、䞀般的なケヌスでは䞍可胜ですが、_技術的には可胜_なこずの1぀です。 ここには、次のような耇雑な点がたくさんありたす。

powershell
cd d:\users

ええず、PowerShellは私たちが立ち䞊げた最初のプロセスではありたせん。 パスd:\usersは無芖したす

(in powershell)
cd d:\users

powershellは_珟圚の䜜業ディレクトリを実際に蚭定しない_ため、 d:\usersは無芖したす!!

「シェル」がssh [email protected] シェルを「タヌミナルがナヌザヌに代わっお生成する最初のプロセス」ず厳密に定矩しおいる堎合の堎合、その䜜業ディレクトリは、䜕に関係なく垞にC:\windows\system32なりたす。リモヌト䜜業ディレクトリはです。

ドキュメントペヌゞを埋め尜くすほど倚くの譊告を機胜に提䟛するよりも、機胜を提䟛したくありたせん。 ☹ごめんなさい。

https://github.com/microsoft/terminal/issues/1536#issuecomment -519107586

いいえ、それは䞀般的な意味で行うこずはほが䞍可胜である可胜性が高いためです。 たずえば、vimのむンスタンスをどのように耇補したすか フォアグラりンドプロセスが排他的アクセスのためにある皮のファむルを開いた堎合はどうなりたすかそのプロセスをどのように耇補できたすか

これを安党に行う方法があれば、䞀般的に私は提案された技術的解決策に耳を傟けたすが、それが可胜であるずは思わないので、調査する぀もりはありたせん。


Powershellが䜜業ディレクトリを_did_蚭定したずしおも、Windowsで別のプロセスのCWDを取埗するこずが_技術的に_可胜であるずはただ確信が持おたせん。 これが、これが機胜するのを劚げおいる「技術的な」ものです。 これを蚭定ずしお远加したいず思いたす。 しかし、答える必芁のある技術的な質問はただ確かにありたす。

このスレッドで説明されおいる解決策には、タヌミナルに別のVTシヌケンスのサポヌトを远加するこずが含たれたす。これにより、_shell_は、タヌミナルがどのパスにあるかを瀺すために攟出できたす。このVTシヌケンスは、あたり明確に定矩されおおらず、次のようになっおいたす。ただ解決が必芁な゚ッゞケヌス。 すなわち

  • WSLシェルが「私のCWDは/home/fooです」ず蚀うずどうなりたすかタヌミナルがパスがWSLパスであるこず、たたはパスがどのディストリビュヌションに属しおいるかを知る方法がないため、このタブを耇補するず、 C:\home\foo 存圚する堎合
  • SSH経由で別のマシンに接続するずどうなりたすか タヌミナルはそれらのパスを自分のロヌカルマシン䞊のパスず区別するこずができないので、繰り返したすが、そのパスを耇補するこずは間違った振る舞いになりたす
  • すべおのナヌザヌは、この動䜜に協力するために、さたざたなシェルのプロンプトを_手動で_カスタマむズする必芁がありたす。 これはブロッカヌではありたせんが、これは、そのたたでは機胜しない蚭定になるこずを意味したす。

実行䞭のプロセスを耇補しようずしおいたすか たずえば、Linuxを芋おみたしょう。 タヌミナルでSSHを実行しおいお、新しいタブを開いた堎合、新しいタブはSSH接続を開かず、SSH接続の珟圚の堎所を参照したす。 それはあなたがあなたのマシン䞊にいる新しいタブを開きたす。 プロセスがロヌカルでSSHではない堎合でも、プロセスは実行されたせん。 耇補されおいるのはタブだけであり、実行䞭のプロセスではありたせん。

これは非垞に耇雑になっおいるようです。 VIMやSSH、たたは実行䞭の他のアプリケヌションを耇補しおいたせん。 あなたはタヌミナルを耇補しおいお、それぱッゞケヌスに答えたす

  • WSLの堎合、ロヌカルを閲芧しおいたせん。 戻り倀が/ home / fooの堎合、それが堎所です。 堎所がC\ home \ fooの堎合、/ mnt / c / home / fooが返されたす。
  • SSHはプロセスです。 シェルで実行されたす。 プロセスを耇補しおいたせん。 他の端末はそうではありたせん。 タブを耇補しおいたす。
  • ナヌザヌが䜕をカスタマむズする必芁があるかわかりたせんが、カスタマむズが問題になるのはい぀からですか

プロセスを耇補しおも問題はありたせん。 きっず気に入る人もいるでしょう。 それは、タブを耇補するオプションに加えお、別のオプションになるだけです。 それは障害になるべきではありたせん。 それは䜙分でオプションです。

@PandaClone _䞀郚の人々は、シェルから実行せずに、プロファむルが最初に起動するものずしおssh.exeを蚭定しおいるこずを知っお驚くかもしれたせん_。

そうではないように、タヌミナルがLinuxプロセスず通信するラッパヌアプリケヌションであるwsl.exeに問い合わせお、珟圚の䜜業ディレクトリがそのプロセスの最初のプロセスのものであるかどうかを確認する方法は実際にはありたせん。朚。
WDをプロセス環境ブロックに栌玍するWindows䜜業ディレクトリむンフラストラクチャを䜿甚しないため、退屈な叀いWindows APIを䜿甚するだけでは、䜜業ディレクトリが䜕であるかを刀断するのに十分ではありたせん。

これらは私たちが解決しなければならない技術的な問題です。 それ以倖の堎合は、25の人にしか機胜しない機胜を䜜成したす。

それが簡単であるこずが刀明した堎合私たちは垞にコミュニティの貢献を喜んで受け入れたす。

  • WSLの堎合、ロヌカルを閲芧しおいたせん。 戻り倀が/ home / fooの堎合、それが堎所です。 堎所がC\ home \ fooの堎合、/ mnt / c / home / fooが返されたす。

ああ、でも、この機胜が仕様どおりに機胜する方法を芋おください。タヌミナルは、「珟圚の䜜業ディレクトリは/home/foo 」ず誰が䜕を蚀ったかを知りたせん。 これはcmd.exe可胜性がありたす-そうです、ナヌザヌはC:\home\foo望んでいたす。 これは、UbuntuディストリビュヌションたたはFedoraディストリビュヌションである可胜性がありたす。あるいは、centosたたはその他の可胜性にssh接続されおいる可胜性がありたす。 端末が取埗するのは、「これは珟圚䜜業ディレクトリです」ずいう文字列だけです。

  • ナヌザヌが䜕をカスタマむズする必芁があるかわかりたせんが、カスタマむズが問題になるのはい぀からですか

ナヌザヌが実行するほずんどすべおのシェルは、このシヌケンスの送信を有効にするために手動で構成する必芁がありたす。 cmdナヌザヌの堎合、シヌケンス$e]7;$P$eを含めるようにPROMPTを手動で構成する必芁がありたす。 bashナヌザヌは、 PS1で蚭定する必芁がありたす。 PowerShellには確かに別の方法がありたす。 ただし、ここでの基本的な問題は、シェルがデフォルトでこのシヌケンスを攟出しないこずです。

SSHはシェルではありたせん。 プロファむルを最初に実行するように蚭定できたすが、それでもシェルから実行されたす。 プロファむルがアプリケヌションをすぐに実行するように指瀺されおいるだけです。 そのアプリケヌションは䜕でもかたいたせん。 SSHで接続する必芁はありたせん。 必芁に応じお、プロファむルに別のシェルを実行するように指瀺できたす。

そしお、端末がない堎合でも、どうしお問題になるのでしょうか。 垞に䟋倖がありたす。 移動するディレクトリがない堎合、デフォルトでホヌムディレクトリに蚭定するのは問題ありたせん。 それはあなたがただ「ああ、これはできない」ずいう堎合には問題ではありたせん。

たた、これはタブ付きの倧倚数の端末に暙準装備されおいる機胜です。 独自のタヌミナルフレヌバヌを持぀Linuxディストリビュヌションを実行するず、すべおが新しいタブを開くずいうこの動䜜を瀺したす。 これは、WindowsTerminalの画期的な魔法ずなる機胜ではありたせん。 これは暙準機胜です。

タヌミナルはシェルをスポヌンするだけではありたせん。 これは、プロファむル構成で指定したものCreateProcess文字通り

ほら、私たちはこの機胜がどれほど可胜かに぀いお議論しおいたす。 _私たちはこれを望んでおり、誰もがそれを望んでいたす。ナヌザヌが気にかけおいるナヌスケヌスの倧郚分で機胜する合理的な方法があれば、私たちはすでにそれを行っおいるだろうずいうこずに同意できたすか 事前の䌁画・蚭蚈䜜業で「できない」ず蚀わざるを埗ない回数を枛らしたいず思っおいたす。

これは画期的な魔法ではなく、WindowsずWSLのプロセスモデルによっお耇雑になっおいるだけで、状況によっおは倱敗するず思いたす。 それ以䞊のこずは誰も蚀っおいたせん。

  • WSLの堎合、ロヌカルを閲芧しおいたせん。 戻り倀が/ home / fooの堎合、それが堎所です。 堎所がC\ home \ fooの堎合、/ mnt / c / home / fooが返されたす。

ああ、でも、この機胜が仕様どおりに機胜する方法を芋おください。タヌミナルは、「珟圚の䜜業ディレクトリは/home/foo 」ず誰が䜕を蚀ったかを知りたせん。 これはcmd.exe可胜性がありたす-そうです、ナヌザヌはC:\home\foo望んでいたす。 これは、UbuntuディストリビュヌションたたはFedoraディストリビュヌションである可胜性がありたす。あるいは、centosたたはその他の可胜性にssh接続されおいる可胜性がありたす。 端末が取埗するのは、「これは珟圚䜜業ディレクトリです」ずいう文字列だけです。

珟圚の䜜業ディレクトリが誰であるか、䜕であるかをどうやっお知るこずができたせんか あなたはそれを求めおいる人です。 コマンドプロンプトなのか、WSLなのか、PowerShellなのかがわかりたす。 あなたはそれがどこから来おいるのかを知っおいるので、堎所をフォヌマットする方法を知っおいたす。

  • ナヌザヌが䜕をカスタマむズする必芁があるかわかりたせんが、カスタマむズが問題になるのはい぀からですか

ナヌザヌが実行するほずんどすべおのシェルは、このシヌケンスの送信を有効にするために手動で構成する必芁がありたす。 cmdナヌザヌの堎合、シヌケンス$e]7;$P$eを含めるようにPROMPTを手動で構成する必芁がありたす。 bashナヌザヌは、 PS1で蚭定する必芁がありたす。 PowerShellには確かに別の方法がありたす。 ただし、ここでの基本的な問題は、シェルがデフォルトでこのシヌケンスを攟出しないこずです。

それはどのように問題ですか これは、構成を必芁ずする最初のアプリケヌションではなく、最埌のアプリケヌションでもありたせん。 すべおがプラグアンドプレむであるわけではなく、それは理解できたす。 これを機胜させる唯䞀の方法がナヌザヌが構成を芁求するこずである堎合、その停止点はどのようになっおいたすか

WSLシェルが「私のCWDは/ home / fooですかパスがWSLパスであるこず、たたはパスがどのディストリビュヌションに属しおいるかをタヌミナルが知る方法がないため、このタブを耇補するずCになりたす。 \ home \ foo存圚する堎合

私は本圓に自分自身でしか話すこずができたせんが、あるプロファむルを䜿甚しおタブを開き、特定の堎所に移動しおから、別のプロファむルで新しいタブを開いた堎合、䜜業ディレクトリがなければ、少しでも驚いたり倱望したりするこずはありたせん。キャリヌオヌバヌし、代わりにデフォルトが䜿甚されたした。

この機胜を求めるほずんどの人は、GNOMEやmacOSに含たれおいる端末などの端末での動䜜を芋逃しおいるこずを理解しおいるず思いたす。 これらの端末は、これず同じ耇雑さに察凊する必芁はありたせんが、同時に、゜フトりェアに存圚しない゚ッゞケヌスをスマヌトに凊理するこずを期埅しおいる人はいないず思いたす。基準点ずしお䜿甚したす。

スコヌプを少し小さくしおも、かなり厄介な䜜業のように聞こえたす。 時間の節玄になるので、この機胜のいく぀かのバヌゞョンを含める方法が芋぀かるこずを願っおいたす。

このナヌスケヌスは、短期的には4472で凊理できたすか 私は個人的に、最近フォヌカスされたりィンドりほが確実にコマンドを入力したりィンドりで新しいタブを開くcmd.exe /c "wt.exe" new-tab -p "Ubuntu-20.04" -d $(pwd)バリアントおそらくBashマクロにバむンドされおいるに満足しおいたす。 。

ルヌトプロセスの珟圚のディレクトリの怜出を実装する方が、コマンドラむンリモヌト凊理ずIPCを実装しお、WTに同じりィンドりでタブを開かせるよりも簡単だず蚀いたすsmile

うわヌ、私はちょうどここに来お、それが長い旅を必芁ずしおいるようだず気づきたした:)

Windowsタヌミナルでは、ショヌトカットAlt + Shift + Dを抌すこずでシェルりィンドりを分割できるこずがわかりたしたが、同じディレクトリに蚭定されおいたせん

回避策がありたす。開始ディレクトリを倉曎したす。

この関数を$PROFILE 必ず$pathを調敎しおください

function sd {
    $path = 'C:\Users\Admin\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json'
     ((Get-Content -path $path) -replace '"startingDirectory":.*', ("`"startingDirectory`": `"$pwd`"") -replace "\\", "\\") | Set-Content -Path $path
}

..そしお、ほずんど手間をかけずに同じディレクトリで新しいタブを開くこずができたす。新しいタブを開く前に、必ずsdください。

もちろん、欠点は、関数が呌び出されるたびにstartingDirectoryが倉曎されるこずです。

このアプロヌチをキヌリマッパヌで䜿甚するのが最善です。これにより、 Ctrl+Tが抌されるず関数が自動的に呌び出され、 Ctrl+F4が抌されるずstartingDirectoryが元に戻されたす。元の倀に戻したす。

代替゜リュヌション

サンプルprofile.shたたは.zshrcを䜿甚しおいるプロファむル内に、$ HOMEディレクトリ内に〜/ paths.shファむルを䜜成したす。 setCWDを呌び出すたびに、パスが曎新されたす

この゜リュヌションは、 startingDirectoryを完党にオヌバヌラむドしたす。 新しいタヌミナルをスポヌンするずきはい぀でも、タヌミナルをスポヌンする前にsetCWDを呌び出したす。これは、最埌にずきに盎接開始されたす。

.zshrc以内にこれを行ったこずに泚意しおください

コヌド

source ~/paths.sh

if [[ $SAVED_PWD != $PWD  ]]
then
  cd $SAVED_PWD
fi

function setCWD(){
  echo export SAVED_PWD=$(pwd) > ~/paths.sh
}

初期ファむルを䜜成する必芁があるかもしれないので、 setCWDを呌び出す

ずころで、autohotkeyを䜿甚しおいる堎合は、これがうたく機胜するための玠晎らしくお簡単なスクリプトです

windows-terminal.ahkずいうファむルを䜜成し、このコヌドを䞋に貌り付けたす。 ファむルを実行するず、すべお蚭定されたす。 このファむルをスタヌトアップセクションに移動しお、再起動したずきにこの機胜が再適甚されるようにするこずをお勧めしたす。

#IfWinActive, ahk_exe WindowsTerminal.exe
  ^t::
    Send, setCWD {enter}
    Send, ^t

皆さん、これは生産性にずっお非垞に重芁です。他の䜕よりも重芁です。 これを修正しおください。私ず私の友人は、他のすべおの劣ったタヌミナル゚ミュレヌタを喜んで攟棄したす。

terminal-wgでOSC7を「暙準化」する詊みが停滞しおいるようです。

Terminal.appにあるOSC7を基本的に実装するこずにただ関心がありたすか

それを考えるず、特定の端末に「珟圚のホストずCWD」があり、「プロセスハッキング」の議論を非難するだけです。 次に、その情報を利甚するためのナヌザヌの行動を決定/実装できたす。䟋

  • 「珟圚のディレクトリの新しいタブ」コマンド。
  • 「分割」でこれをデフォルトで実行したす。
  • WSLセッションずWindowsセッションを区別するための魔法同じホスト名を報告しおいる堎合でも私は芋おいたせん...;
  • Windowsホストず同じホスト名を芁求するリモヌトマシンぞのsshingなど、䜿甚したくない有効な倖芳のOSC7を送信するこずを_知っおいる_プロファむルでの「OSC7の抑制」の構成オプション。
  • 倀をコマンドラむンに貌り付けるこずができるものに公開するため、sshたたはwslセッションは、耇補したものず同じ䜜業ディレクトリに衚瀺されたす。

この議論は最初の郚分珟圚のCWDを取埗するに非垞に焊点を圓おおいたしたが、これたでの既存のコメントに基づいお、2番目の郚分はさらに怜蚎が必芁な郚分だず思いたす。 そのアむデアのリストであっおも、それらの_すべお_に察しお合理的な異議が存圚するず確信しおいたす。

ただこのトピックに興味がある人のために、私は7668で初期のPRを行いたした。 これはフレンドリヌなpingです。 みんなから聞いおみたいです。

耇数のタブ、特に珟圚のディレクトリを継承しない堎合の高速耇補のポむントは䜕ですか これはずおも重芁な機胜です。 今のずころ「ハッキヌ」な回避策を远加しおみたせんか Windows自䜓に20幎以䞊にわたっおそのような゜リュヌションが耇数含たれおいるこずを考えるず、すべおのナヌザヌの生産性が向䞊する堎合、WindowsのプロセスからCWDを抜出するこずに問題はありたせん。

この機胜がデフォルトではない理由がわかりたせん。 この機胜を有効にする方法すら存圚しない理由に぀いお、私は本圓に困惑しおいたす。 これは、タヌミナルでの最倧のナヌザヌ゚クスペリ゚ンスの䜎䞋芁因です。利䟿性の芳点から、タヌミナルをalt+shift+d抌すよりも速く、適切な堎所にcdする必芁がありたす。

タヌミナルは、Windows開発者に倚くの生掻の質を远加したす。 この機胜は私にずっお倧きな前進になるでしょうそしお私は他の人を疑っおいたす。 この機胜を最優先事項ずしお提唱するこずに私の声を加えたす。

この機胜がデフォルトではない理由がわかりたせん。

このスレッド、7668、8214、8166、および他のリンクされたスレッドで行われたすべおの調査を読んで、これが実際に難しい問題である理由を理解するために人々がわざわざ読むこずができない理由を理解できたせん解決する。 クラむアントアプリにパスを出力させるこずはできたせん。タヌミナルは、それがWindows、WSL、cygwinのいずれのパスであるかを_必然的に_認識しないためです。

他のアプリずの䞋䜍互換性を損なうこずなく、この機胜のサポヌトを実装する正しい方法を芋぀けるために䞀生懞呜働いおいる才胜のある貢献者がたくさんいるのは良いこずです。 私たちは_今週_、満足のいく解決策を考え出したした。それが実装されるたでにそう長くはかからないはずです。

ありがずう@ zadjii-msft

私のコメントを読み盎すず、それが非垞に非難されおいるこずに気づきたした。それは私の意図ではありたせんでした。 私はこれを蚀うためにここに来たした

タヌミナルは、Windows開発者に倚くの生掻の質を远加したす。 この機胜は私にずっお倧きな前進になるでしょうそしお私は他の人を疑っおいたす。 この機胜を最優先事項ずしお提唱するこずに私の声を加えたす。

そしお、これたでの私のナヌザヌ゚クスペリ゚ンスは次のずおりです。

この機胜がデフォルトではない理由がわかりたせん。 この機胜を有効にする方法すら存圚しない理由に぀いお、私は本圓に困惑しおいたす。 これは最倧のナヌザヌ゚クスペリ゚ンスです...など

私はおそらく、最初の段萜の最初に「ナヌザヌずしお」を眮くべきでした。

ご迷惑をおかけしたしたこずをお詫び申し䞊げたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡