web-dev-qa-db-ja.com

同じディレクトリにあるXmonadオープンターミナル

Xmonadにアクティブなターミナルと同じディレクトリで新しいターミナルを開かせることは可能ですか(アクティブなウィンドウがターミナルまたはvimのようなプログラムが1つで実行されている場合)?現状では、すべての端末が$HOMEで開いています。別のワークスペースで新しいターミナルを開いた場合にこれが発生するかどうかは、私には関係ありません。そうしないと、作業しているディレクトリまでcdする必要があるため、これは生産性の大幅な向上になります。

Xmonadを使用してこれを直接行うことができない場合は、これに対する代替ソリューションに興味があります。私が考えることができる唯一のことは、Prompt_COMMANDをオーバーロードして現在のディレクトリをファイルに書き出し、.bashrcにこのファイルを見てどこに行くかを決定させることです。しかし、これは非常に不完全な解決策であり、多くの場合に機能しますが、大部分が正しくないままになります。

6
Thomas Eding

私はデフォルトをあまりいじっていませんし、ctrl+shift+n私のためにそれをします。

2
chevett

それは本当にあなたの質問に答えませんが、私はあなたの時間を節約してあなたの問題を解決することができる代替手段を持っています: 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は自動ジャンプに関連付けられています。たとえば、あなたの場合、使用法は次のようになります。

  1. ターミナルを開く
  2. (初回のみ)cdを使用して/very/long/path/boring/to/join/Folderフォルダーに移動します
  3. いくつかの作業を行います
  4. 後で別の端末が必要になったときに、新しい端末を開きます
  5. j fol<ENTER>と入力すると、直接/home/fb/very/long/path/boring/to/join/Folderに移動します

もちろん、これは、参加したいフォルダが頻繁にアクセスするフォルダである場合にのみ機能します。

2
StreakyCobra

ワークスペースごとにディレクトリを設定します。次に、そのワークスペースで開いたすべての端末がそのディレクトリで開きます。これは、workspacedir拡張機能を使用して行われます: http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Layout-WorkspaceDir.html

基本的に、キーをchangeDirにバインドしました。そのキーを押すと、プロンプトがポップアップ表示され、ディレクトリを設定できます(作業タブが完了します)。

1
user236456

現在のウィンドウで実行されているシェルのPIDを取得できる場合は、urxvt -cd $(readlink /proc/$PID/cwd)(または別の端末で同様のこと)を実行するようなことを行うよりも可能です。 XMonadで現在のウィンドウのpidを取得する方法はわかりません。

0
Vladimir Still