【问题标题】:Vim Omnicomplete Pattern not found (Python)未找到 Vim Omnicomplete 模式 (Python)
【发布时间】:2013-02-01 18:24:47
【问题描述】:

我读到,omnicompletion 应该“开箱即用”,但事实并非如此,我想知道我做错了什么。

我编译了最新版本的vim,它显示“+python”:

user$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 16 2013 11:22:56)
MacOS X (unix) version
Compiled by user@computer.local
Normal version without GUI.  Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent 
-clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
-conceal +cryptv -cscope +cursorbind +cursorshape +dialog_con +diff +digraphs 
-dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path 
+find_in_path +float +folding -footer +fork() -gettext -hangul_input -iconv 
+insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent 
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape 
-mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse 
+mouse_xterm -multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype 
+path_extra -perl +persistent_undo +postscript +printer -profile +python 
-python3 +quickfix +reltime -rightleft -ruby +scrollbind +signs +smartindent 
-sniff +startuptime +statusline -sun_workshop +syntax +tag_binary 
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
 -toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo 
+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
 -xterm_clipboard -xterm_save 
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/Users/user/Software/vim/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X_UNIX -no-cpp-precomp  -g -O2 -D_FORTIFY_SOURCE=1      
Linking: gcc   -L/usr/local/lib -o vim       -lm -lncurses  -framework Cocoa     -framework Python

我清除了我的 .vimrc 以离开:

" Automatic reloading of .vimrc
autocmd! bufwritepost .vimrc source %

filetype plugin on

而我的 ~/.vim/ 目录只是

autoload/pythoncomplete.vim

我从http://www.vim.org/scripts/script.php?script_id=1542下载的

然后以下命令返回:

:echo &omnifunc
pythoncomplete#Complete

这似乎很好。但每次我对以下 test.py 文件执行 control-xo 时:

#! /usr/bin/env python
import numpy
numpy.r

在输入“num”或“numpy.r”后我得到

Omni completion (^O^N^P) Pattern not found

我的安装有问题吗?任何想法都非常感谢。谢谢。

编辑:根据 TankorSmash 关于安装 python 模式的建议,我可以让“num”完成到“numpy”,但不能让“numpy.r”完成任何事情。

这是我的新 .vimrc 文件:

" Automatic reloading of .vimrc
autocmd! bufwritepost .vimrc source %

" Pathogen load
filetype off

call pathogen#infect()
call pathogen#helptags()

filetype plugin indent on
syntax on

还有我的 .vim 目录树:

.vim
    autoload
        pathogen.vim
        pythoncomplete.vim
    bundle
        python-mode

有什么想法吗?

【问题讨论】:

标签: python vim omnicomplete


【解决方案1】:

您不需要任何第三方完成脚本即可完成 Python。

我没有(我唯一拥有的特定于 Python 的脚本是一个简短的 ftplugin),这些是我在numpy.numpy.arc 之后点击<C-x><C-o> 时得到的建议……

因为你看起来是在 Mac OS X 上,你真的不应该自己编译 Vim。安装最新的 MacVim 快照是在 Mac 上运行 Vim 的最佳方式,我相当肯定你会得到与在这台开箱即用的 Linux 机器上相同的建议。

编辑

我刚刚在我妻子的裸机 iMac(python 2.5)上的旧 MacVim(快照 53)上测试了相同的代码,我得到了或多或少相同的建议(485 vs 551)。

【讨论】:

  • 成功了!我想知道为什么它适用于 macvim 而不是 iTerm 终端中的 vim。无论如何,非常感谢!我真的很感激。
  • 如果你使用的是这个,默认的 Vim (/usr/bin/vim) 是一个缺少很多有用东西的小型构建。如果您想让它成为您的主力,建议安装适当的构建。由于您想在终端仿真器中工作,因此要知道 MacVim 可以在您的 shell 中执行:1. 将 MacVim 附带的 mvim 脚本放在您的 $PATH 中的某个位置,2. 执行 $ mvim -v 在 iTerm 中运行 MacVim .
  • 谢谢。现在我已经了解了 GUI 类型的 macvim,我可能最终会使用它。我想要完全编译一个有用的vim,还需要在vim.org/download.php 安装“运行时”等的东西,我以前没有注意到(尽管我不打算尝试)。再次感谢!
猜你喜欢
  • 2012-03-22
  • 2011-07-15
  • 2012-09-08
  • 2011-11-08
  • 2012-06-05
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多