18

最近、Ropemacs の hg チップ バージョンをインストールしました。TRAMP を使用してリモート ファイルを編集するときに使用したいと考えています。誰かがこれをしましたか?M-/を使用して変数名を完成させようとすると、 を入力するように求められ、 Rope project root folder:/ssh:myhost:/path/to/myproject/と入力すると、次のエラーが表示されます。

Opening [/ssh:myhost:/path/to/myproject/] project ... 
pymacs-report-error: Python: Traceback (most recent call last):
  File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/Pymacs/pymacs.py", line 147, in loop
    value = eval(text)
  File "<string>", line 1, in <module>
  File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/decorators.py", line 53, in newfunc
    return func(*args, **kwds)
  File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/interface.py", line 254, in code_assist
    _CodeAssist(self, self.env).code_assist(prefix)
  File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/interface.py", line 538, in code_assist
    proposals = self._calculate_proposals()
  File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/interface.py", line 597, in _calculate_proposals
    self.interface._check_project()
  File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/interface.py", line 448, in _check_project
    self.open_project()
  File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/decorators.py", line 53, in newfunc
    return func(*args, **kwds)
  File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/interface.py", line 88, in open_project
    self.project = rope.base.project.Project(root)
  File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/rope/base/project.py", line 134, in __init__
    os.mkdir(self._address)
OSError: [Errno 2] No such file or directory: '/ssh:myhost:/path/to/myproject'

私は、ropemacs が TRAMP を使ったリモートファイルをサポートしていないと思います。誰かが回避策を見つけたかどうか疑問に思っています。多分いくつかのカスタムelisp?または、sshfs を使用して、リモート ファイルシステムをローカルにマウントする必要があるかもしれません...

にあるvirtualenvにropemacsをインストールしました/home/saltycrane/lib/python-environments/default。Ubuntu Lucid で GNU Emacs 23.1.50.1 を使用しています。

M-/TRAMP を使用していないときは、 での補完が正常に機能することに言及する必要があります。

4

1 に答える 1

6

いいえ、これは TRAMP を使用して行うことはできません。なぜなら、Pythonropeライブラリはファイルシステムをスキャンして Python ファイルのクラスと関数を見つけたいときに、Emacs にコールバックしないためです。 Emacs が邪魔になり、編集中の特別な TRAMP プレフィックス付きパスを傍受する機会を与えます。listdir()open()

sshfsコメントが述べているように、使用は可能かもしれませんが、プロジェクトの状態を調べるために非常に多くのファイルを開く必要があるためrope非常に遅い解決策になると思います。rope

リモートファイルシステムリンクを介して編集するとき、私は通常、ropeオフにするか、リモートシステムからEmacsセッションをエクスポートする方法を見つけます。ファイルがすぐにアクセス可能なコピーとしてローカル ハード ドライブに存在し、保存した変更がコピーされるように、DVCS のようなものrsync、またはDVCS を使用することはできますか?dropbox

于 2011-09-13T23:07:36.773 に答える