是否可以在Emacs中使用带有TRAMP的Ropemacs?

sal*_*ane 18 python emacs tramp ropemacs

我最近安装了Ropemacs的hg tip版本,我想在使用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'
Run Code Online (Sandbox Code Playgroud)

我想ropemacs不支持使用TRAMP的远程文件.只是想知道是否有人找到了解决方法.也许一些定制的elisp?或者也许我应该使用sshfs并在本地挂载远程文件系统...

我在位于的virtualenv中安装了ropemacs /home/saltycrane/lib/python-environments/default.我在Ubuntu Lucid上使用GNU Emacs 23.1.50.1.

我应该提一下,M-/当我不使用TRAMP时,完成工作正常.

Bra*_*des 6

不,这是不可能的使用流浪汉,因为Python的rope图书馆里没有当它要扫描的Python文件的文件系统找到自己的类和函数进行调用回Emacs的-相反,它使用电话一样listdir(),并open()直接在文件系统中,而不让Emacs有机会阻挡并拦截您正在编辑的特殊TRAMP前缀路径.

sshfs正如评论所提到的那样,使用可能是可能的,但是rope我认为这将是一个非常慢的解决方案,因为rope必须打开这么多文件来找出项目的状态.

我通常会离开rope,或者在跨远程文件系统链接进行编辑时弄清楚如何从远程系统导出Emacs会话.我不知道你是否可以使用类似rsync或者dropbox甚至是DVCS,以便这些文件将存在于您的本地硬盘上的立即访问的副本,但这样的改变,你会节省整个被复制?