- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在 python 中为我的类创建标签 (ctags 5.8) 文件。对于在类定义之外定义的函数和类成员,omnicompletion 工作正常。但是,如果我在构造函数 (self.x=2) 中定义数据成员,我将看不到 ctags 完成?
class A(object):
def __init__(self):
self.x = "whatever" # x will not seen in ctags/omnicompletion!!!
我做错了什么吗?为什么没有 omnicompletion(ctags 文件看起来没问题)?
最佳答案
如果我理解你的问题是对的,你总是可以在类定义中添加属性:
class A(object):
x = None
def __init__(self):
self.x = whatever
这样每个阅读您的代码的人都可以看到一个类具有哪些属性(您称它们为“类成员”)。
更新:检查
$ ctags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Mar 18 2011, 10:38:14
生成的标签文件如下所示:
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.9~svn20110310 //
A aaa.py /^class A(object):$/;" c
__init__ aaa.py /^ def __init__(self, x):$/;" m class:A
x aaa.py /^ x = None$/;" v class:A
可以看出,x
属性有自己的记录。
还通过首先创建与 emacs 兼容的标签文件来检查 Emacs:
ctags -e aaa.py # where aaa.py - file with code snippet above
(这个创建的 TAGS 文件)
Emacs 内部:
M-. x (enter)
~/TAGS (enter)
...瞧!光标位于 x = None
行。
此外,您的原始代码段不起作用。所以我在类命名空间中初始化属性的建议是有效的。
关于python - vim 中的 python 类成员没有 omnicompletion?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8961020/
我希望我的全能工具提示在我输入时出现,或者在我停止输入后 1 秒出现,甚至在我输入句点后出现。(类似于 Visual Studio)。这在 Vim 中可能吗? 对于那些不知道我在说什么的人,我希望这个
使用 Omnicomplete for Python 时,如何在 Vim 中显示函数描述? 最佳答案 开箱即用:) 您需要具备的一切: 使用 +python 选项编译 vim。 您可以使用 vim -
我正在尝试在 Ubuntu 12.04.1 (LTS) 上使用 ctags 5.9~svn20110310 在 vim 7.3 中为 PHP 设置 omni 补全,但我遇到了一个非常奇怪的问题,补
我正在使用带有大量插件的 Vim 7.3,主要用于 PHP 开发。 omnicompletion 效果很好,除了我遇到的一个小故障。我正在尝试弄清楚这是 Vim 中的错误还是我的设置有问题,所以情
我正在用全能的方式学习 vim。我想知道是否可以在不自动完成当前文本的情况下显示完整列表。例如, 如果我输入“str.c”然后调用 omnicomplete,它会显示一个包含可能以“c”开头的单词的列
我试图在我的 Python 代码中使用 Vim 的 omnicompletion,但每当我尝试 C-x + C-o 时,它都会提示以下错误消息: Runtime Error! Program E:\V
我从 emacs 转移到 vim 的原因之一是为了避免尴尬的键绑定(bind),例如 Ctrl+N 和 Ctrl+P 用于向上和向下。我更喜欢像 hjkl 这样更符合人体工程学的按键。但是,我没有找到
在 vim 中,有没有办法抑制像这样的全能消息: "-- Keyword completion (^N^P) Back at original" "-- Keyword completion (^N^
我已经阅读了大量关于 Vim 被认为是伟大的 omnicompletion 的博客,但无论我做什么,我都无法让它工作令人满意。我花了很长时间才发现预装在我系统上的 ctags 版本是 emacs 版本
我正尝试在我的 Python 之旅中使用 vim,基于 this guide . 我想我和a paid nerd有同样的问题但由于他们没有找到解决方案,我在这里再次发布。 出于某种原因,我无法使用 p
我已将我的 gVim 设置为具有 omnicompletion,但仅适用于标准库 atm.. 我如何包含其他库(Django、Pygame 等...)? 谢谢! 最佳答案 这是一个 tutorial
如果我尝试在具有 require 'xxx' 语句的 Ruby 文件中自动完成 smth,它会开始扫描所需的所有文件(以及所需文件所需的文件)。而且它每次都怪怪的! 是否可以让 vim 自动完成不扫描
我想知道是否有类似 OmniCppComplete 的工具对于 C#(缩写中显示的方法签名是我最感兴趣的)。我到处搜索都无济于事。 更新:我将主要从 shell 终端进行编辑,所以请不要建议 Vim
我想在 VIM 中设置自动完成(智能感知)。为此,我使用了 NeoComplCache 插件,它可以工作,但它没有显示 C-xC-o 显示的所有条目。例如,NeoComplCache 不显示任何新创建
我读到全能补全应该可以“开箱即用”,但事实并非如此,我想知道我做错了什么。 我编译了最新版本的vim,它显示“+python”: user$ vim --version VIM - Vi IMprov
我用 +python 设置了 Vim(:version 说没问题)。我的 .vimrc 包含 filetype plugin on set ofu=syntaxcomplete#Complete au
我想在 python 中为我的类创建标签 (ctags 5.8) 文件。对于在类定义之外定义的函数和类成员,omnicompletion 工作正常。但是,如果我在构造函数 (self.x=2) 中定义
我在一个大型项目中使用带有 php omnicompletion 的 vim。我有一个 ctags 文件并使用: au FileType python set omnifunc=pythoncompl
我开始学习 Python,并尝试为它设置我的 vim。我有 vim 7.3.5.3,它具有 omnicompletion 并且我下载了 pyflakes。我读了this article它说 omnic
我有 vim 7.2 的 +ruby 版本(也尝试过 7.3 和自定义编译版本)但我只能在某些情况下使用 omnicomplete (ctrl-x ctrl-o)。 例如,如果我有 class Meg
我是一名优秀的程序员,十分优秀!