我看过python-mode和python.el.我正在使用python-mode.el.我也在使用绳索和绳索.我正在寻找关于这些的一些文档,这些文档可以帮助我,或者其他elisp软件包或其他东西.
我目前的问题是我给出的代码具有不一致的缩进大小.对于一些块,它将是两个,对于一些它将是4.我想要清理它,但出于某种原因,当我告诉emacs"修复缩进"时,它只是基本上击中每一行的选项卡,这搞砸了代码.我想要的是保持相同的相对缩进,但标准化为4个空格.有什么能让我轻松做到这一点吗?
我想我可以找到每个坏缩进的实例,阻止它,并用4个空格查询替换2个空格.但这对我的精确度有点过分依赖,注意到应该在哪里完成.此外,它是很多代码.
有人告诉我,自行车修理工会解决这个问题,但现在几年已经没有开发......还有其他任何建议吗?
谢谢.
我曾经在这里和这里看到过类似的问题,但是它们已经有4年历史了,没有给出符合我要求的答案。
例如,如果我在Python中输入Python代码:
os.path.join('my', 'path')
resp = requests.get('http://example.com')
HttpResponse('success')
Run Code Online (Sandbox Code Playgroud)
假设我在site-packages文件夹中有第三方模块'requests'和'django',那么有没有Vim插件-不使用Rope库-可以自动将相关的import语句添加到Python中文件(无论对于内置和第三方模块,即使用import或from根据需要),如下所示:
import os
import requests
from django.http import HttpResponse
Run Code Online (Sandbox Code Playgroud)
传统上我会使用古老的Rope软件包,但我一直在用现代替代方法替换Rope函数,以避免.ropeproject文件夹的开销。但是,我还没有找到自动导入的Vim替代品。
看来我的/usr/include/c++/4.5.1/ext/rope(和ropeimpl.h)中有一个执行绳索.我将它与SGI STL进行了比较,代码似乎与代码库完全相同.
我不知道它的状态或功能与否.我也不知道这是否是超级陈旧的陈旧代码或代码正在进行中
在任何情况下,我都没有找到任何关于如何使用它的参考(如果功能).你知道我错过的东西吗?有可以使用的用法示例吗?
我想在emacs中使用python进行自动完成和重构.
我认为我需要绳索才能做到这一点.要使用emacs执行此操作,我需要ropemacs.Ropmacs依赖于pymacs.
Pymacs很难安装......或者至少说明书对我来说并不清楚.
我需要做两件事吗?安装pymacs,然后安装一个告诉emacs与pymacs交谈的文件?我已经非常轻松地安装了绳索和绳索
pip install rope ropemacs
这是我做的:
pip install -e "git+https://github.com/pinard/Pymacs.git#egg=Pymacs"
Run Code Online (Sandbox Code Playgroud)
根据PIP,这在mac os x mountain lion上安装正常.
但我有一种感觉,我没有完成 - 或者是我?
如何测试pymacs,绳索和绳索是否全部工作?
我正在尝试使用 package.json 进行一些重构rope。根据代码的不同,它可能会抛出异常,并且有 10 多个绳索异常。
我不想做
from rope.base.exceptions import *
try:
# do something
except (AttributeNotFoundError, ModuleDecodeError,
..., ..., ..., RefactoringError) as e:
# do something else
Run Code Online (Sandbox Code Playgroud)
我只想捕捉所有绳子异常,像这样
import rope
try:
# do something
except rope.base.exceptions.*:
# do something else
Run Code Online (Sandbox Code Playgroud)
如何捕获特定模块的所有异常?
如何python.el在Emacs 24中设置自动完成以使用ropemacs ?
我的.emacs文件中有以下内容
; Auto-complete:
; --------------------------
(add-to-list 'load-path "~/.emacs.d/auto-complete/auto-complete-1.3.1")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete/auto-complete-1.3.1/dict")
(ac-config-default)
; Auto-complete rope integration:
; --------------------------
(ac-ropemacs-initialize)
(add-hook 'python-mode-hook
(lambda ()
(add-to-list 'ac-sources 'ac-source-ropemacs)))
Run Code Online (Sandbox Code Playgroud)
但这似乎不足以获得Python方法,类成员等的自动完成(在自动完成工具提示上).
例如
my_text = "hello world"
my_text.
Run Code Online (Sandbox Code Playgroud)
没有为String类显示任何可能的自动完成.
使用上面的配置,自动完成本身适用于通用自动完成(以及目录).
我正在使用eric4及其绳索插件来重构一些代码.我有很多方法,其签名使用*args和**kwargs语法.我想更改这些签名删除此参数.
我尝试过使用Refactoring>Refactoring>Change Method Signature但不会删除*args和**kwargs参数.
我想知道这是否是绳索本身的限制,或者它是否是eric的插件不支持此功能.
rope ×7
python ×5
emacs ×3
ropemacs ×2
autocomplete ×1
c++ ×1
exception ×1
libstdc++ ×1
pymacs ×1
refactoring ×1
sgi ×1
signature ×1
stl ×1
vim ×1
vim-plugin ×1