Xmonadにアクティブなターミナルと同じディレクトリで新しいターミナルを開かせることは可能ですか(アクティブなウィンドウがターミナルまたはvimのようなプログラムが1つで実行されている場合)?現状では、すべての端末が$HOME
で開いています。別のワークスペースで新しいターミナルを開いた場合にこれが発生するかどうかは、私には関係ありません。そうしないと、作業しているディレクトリまでcd
する必要があるため、これは生産性の大幅な向上になります。
Xmonadを使用してこれを直接行うことができない場合は、これに対する代替ソリューションに興味があります。私が考えることができる唯一のことは、Prompt_COMMANDをオーバーロードして現在のディレクトリをファイルに書き出し、.bashrc
にこのファイルを見てどこに行くかを決定させることです。しかし、これは非常に不完全な解決策であり、多くの場合に機能しますが、大部分が正しくないままになります。
私はデフォルトをあまりいじっていませんし、ctrl+shift+n
私のためにそれをします。
それは本当にあなたの質問に答えませんが、私はあなたの時間を節約してあなたの問題を解決することができる代替手段を持っています: autojump
これは、ターミナル内のフォルダ間を移動するときにあなたの習慣を保存するソフトウェアです。フォルダ内でcd
するたびに、関連する可能性が高くなります。たとえば、私のシステムでは、次のようになりました。
343368.3820292514 /home/fb
66.1004508305352 /home/fb/documents
65.2439790325514 /home/fb/workspace/MyProject
55.78935025659235 /very/long/path/boring/to/join/Folder
51.78935025659235 /home/fb/master-thesis
49.150383518340945 /usr/share/opencv
43.1282216187962 /home/fb/.dotvim
...
その後、フォルダに移動する場合は、名前の一部のみを指定すると、対応する最も可能性の高いフォルダに移動します。通常、コマンドj
は自動ジャンプに関連付けられています。たとえば、あなたの場合、使用法は次のようになります。
cd
を使用して/very/long/path/boring/to/join/Folder
フォルダーに移動しますj fol<ENTER>
と入力すると、直接/home/fb/very/long/path/boring/to/join/Folder
に移動しますもちろん、これは、参加したいフォルダが頻繁にアクセスするフォルダである場合にのみ機能します。
ワークスペースごとにディレクトリを設定します。次に、そのワークスペースで開いたすべての端末がそのディレクトリで開きます。これは、workspacedir拡張機能を使用して行われます: http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Layout-WorkspaceDir.html
基本的に、キーをchangeDirにバインドしました。そのキーを押すと、プロンプトがポップアップ表示され、ディレクトリを設定できます(作業タブが完了します)。
現在のウィンドウで実行されているシェルのPIDを取得できる場合は、urxvt -cd $(readlink /proc/$PID/cwd)
(または別の端末で同様のこと)を実行するようなことを行うよりも可能です。 XMonadで現在のウィンドウのpidを取得する方法はわかりません。