2

コンパイルモードのソースファイルをリモートパスに基づいてローカルパスに変換できるようにするために、Emacsで利用できるある種の一般的なパス名書き換え/正規化機能はありますか? シンボリック リンクを使用したいと思っていましたが、Windows では機能しません。

私は GNU Emacs 23.1.1 を実行しており、cygwin-mount と w32-symlinks.el (with (customize-option 'w32-symlinks-handle-shortcuts)) を試しました。open-file/dired/completions または compile-mode next-error を取得して、Windows ショートカットまたは cygwin シンボリック リンクをたどることができません。

私はリモートで(ssh経由で)コンパイルしていますが、警告/エラーにより、リモートホスト上の絶対パス名のプレフィックス(例:)を別のパス(実際には)に/nfs/topaz置き換える必要があるファイル名が表示されます。z:/シンボリックリンク付き。

/(emacs でタブ展開される)c:/cygwinと(my ) に移動~します。z:/$HOME

私が望んでいるのは、シンボリックリンク解決の修正(タブ補完またはWindowsショートカットを開くと、それが指すものではなく.lnkファイルを取得する)、またはパス名のプレフィックスの書き換えのリストを提供する機能です。必要な代替パスが別のドライブ上にあるため、ジャンクションはオプションではありません (これも Samba マウントです)。

4

3 に答える 3

3

これが部分的な解決策です:

(custom-set-variables '(compilation-search-path (quote (nil "z:/dir1" "~/dir2"))

もちろん、私は何十ものパスを追加する必要がありますが、それは大きな改善です(次のエラーは実際に機能します!)

于 2009-12-12T01:12:46.927 に答える
1

これは、他の複雑なビルド環境でも役立ちます。私は OpenWRT を使用しており、ビルド プロセスは、コンパイルが行われる別のビルド ディレクトリにソース コードをコピー (または抽出) します。そのため、emacs のコンパイル バッファーで単純にファイル名をたどると、元のファイルではなく、一時的なコピーが編集されます。危険。

于 2010-01-16T18:16:58.690 に答える
0

何度か読み直した後でも、あなたの状況がどうなっているのかよくわかりません - リモートでコンパイルしてローカルで編集していますか? もしそうなら、同じマシンで両方のタスクを実行するか、emacs でトランプモードを試す必要があるようです。リモート パスをローカル パスに変換する簡単な方法がわかりません。

于 2009-12-11T01:33:32.283 に答える