7

私は最も緩い意味で「プロジェクトファイル」と言います。Windows用のemacsW32を使用してropemacsで作業しているPythonプロジェクトがいくつかあります。デスクトップをクリックしてemacsを開き、ropeプロジェクトを開き、そのプロジェクトの最上位ディレクトリにスピードバーを設定できるアイコンがあれば理想的です。次に、同じ方法で設定された独自のemacsで次のプロジェクトを開く方法もあるかもしれません(ただし、そのプロジェクトの場合)。もちろん、デスクトップ上のアイコンの代わりに、同じ効果を達成するために使用できるemacsコマンドまたはshellコマンドがあったとしても許容されます。

これを行う方法はありますか?elisp-fuは絶対にありません。:-(

4

7 に答える 7

6

プロジェクトに必要な方法ですべてをセットアップしてから、desktop.elと名前付きセッションの使用について投稿した回答を使用できます。

Emacsで利用できる代替セッションマネージャーは何ですか?

于 2009-06-27T21:37:17.360 に答える
4

私は実際にこの問題の解決に取り組んでいます。同時に開いたり閉じたりしたいファイルのグループが常にあり、magit ステータス ウィンドウや dired バッファなどを開くこともありました。メタプロジェクトと呼ばれる独自のプロジェクト モードを開始しました。これは非常に初期の段階ですが、十分に機能するので、現在職場のプロジェクト グループで使用しています。

ここでチェックしてください:http://nafai77.github.com/metaproject/

まばらに文書化されていますが、git にあるものはかなり安定しています。ここでまたすぐに作業を開始する予定です。私は現在、小さなプラグイン アーキテクチャの基本を持っているので、プロジェクトを開いたときに実行できるカスタム アクションを登録できます。

于 2009-06-28T21:58:15.603 に答える
2

eprojectがありますが、ドキュメントが非常にまばらなようです。

于 2009-06-28T15:15:02.473 に答える
2

私は自分自身で次の「解決策」を使用します。プロジェクトルートは、Makefile. F12 を、対応する Makefile の最初のターゲットを作成することによってプロジェクトを「コンパイル」するモード固有の elisp 関数にバインドしました。これは、現在のファイルのディレクトリから再帰的に上に行くことによって見つかります。

少しセットアップが必要ですが、.metadata以前の Eclipse でよくあったように、ディレクトリを再構築する必要はありません。セットアップが完了したら、適切な Makefile を配置するだけで、プロジェクトが完成します。

(defun get-makefile-recursively-higher ()
  (loop for i below 100 for cwd = (expand-file-name default-directory)
      then next for next = (expand-file-name (concat cwd "/..")) for file =
      (concat cwd "/" "Makefile") do (cond ((and (file-exists-p file))
                                            (return file))) until (equal cwd next))
)

これは、LaTeX や Python モードなどで次のように使用されます。

(defun py-execute-prog (&optional target) 
  "Invoke python on the file being edited in the current buffer using
   arguments obtained from the minibuffer.  It will save all of the modified
   buffers before trying to execute the file."
  (interactive)
  (let* (makefile file cmd)
    (setq makefile (get-makefile-recursively-higher))
    (setq file (buffer-file-name (current-buffer)))
    (setq cmd (concat "make -f " makefile))
    (setq default-directory (file-name-directory makefile))

    (save-some-buffers (not py-ask-about-save) nil)
    (setq py-pdbtrack-do-tracking-p t)
    (if (get-buffer py-output-buffer)
        (kill-buffer py-output-buffer)) ; Get rid of buffer if it exists.
    (global-unset-key "\C-x\C-l" )
    (global-unset-key  "\C-x\C-p" )
    (global-unset-key  "\C-x\C-e" )
    (global-unset-key  "\C-x\C-n" )
    (global-set-key  "\C-x\C-l" 'py-last-exception)
    (global-set-key  "\C-x\C-p" 'py-previous-exception)
    (global-set-key  "\C-x\C-e" 'py-current-line-exception)
    (global-set-key  "\C-x\C-n" 'py-next-exception) 
    (define-key comint-mode-map [mouse-3] 'py-current-line-exception)
    (make-comint "Python Output" "make" nil "-f" makefile)
    (if (not (get-buffer py-output-buffer)) 
        (message "No output.")
      (setq py-exception-buffer (current-buffer))
      (pop-to-buffer py-output-buffer)  
      )))


(defun make-tex (&optional target)
  (interactive)
  (let (makefile cmd)
    (setq makefile (get-makefile-recursively-higher))
    (save-buffer)
    (TeX-save-document (TeX-master-file))

    (setq cmd (concat "make -j4 -f " makefile " LATEXPARAM=\"-halt-on-error -file-line-error\""
                      " TEXMASTER=" (expand-file-name (TeX-master-file)) ".tex"
                      " TEXMASTERDIR=" (file-name-directory makefile) "/"))

    (when (stringp target)
      (setq cmd (concat cmd " " target))
      )
    (ad-activate-regexp "auto-compile-yes-or-no-p-always-yes")
    (compile cmd)
    (ad-deactivate-regexp "auto-compile-yes-or-no-p-always-yes")
    )
  ) 
于 2009-06-27T15:11:36.090 に答える
1

http://www.emacswiki.org/emacs/CategoryProgrammerUtils#ProjectSupportを参照してください。「プロジェクト」を管理するパッケージがいくつかあります。私は mk-project を支持しますが、繰り返しになりますが、私はそれを書きました。;-)

于 2010-01-20T23:13:46.087 に答える
1

bash/cmd.exe で独自のロールを作成できます。Windows emacs ディストリビューションには、引数として開くファイルを受け入れる runemacs.bat という .bat ファイルが付属しています。小さなスクリプトを作成すると、1 つのアイコンからすべてを開くことができるはずです。

于 2009-06-27T15:08:10.683 に答える
0

デスクトップブックマーク、Diredブックマーク、またはブックマークリストブックマークを使用して、必要な操作を実行できます。Bookmark+を参照してください。コードと複数のブックマークを1つのブックマークにカプセル化して、必要な状態と設定だけを取得することもできます。

参照:その他のオプションについては、プロジェクトのつららのサポート。

于 2011-09-05T00:44:09.737 に答える