YouCompleteMe(YCM)和jedi-vim是两个提供自动完成功能的vim插件,两者都在下面使用jedi进行Python.然而,除了文档之外,jedi-vim还提供了一些有用的功能,比如'go to definition'和'view docstring',而YouCompleteMe可以与其他语言一起使用.
由于两者都提供Python自动完成功能,是否需要任何特殊配置来防止两个插件发生冲突?或者jedi-vim的自动填充器会简单地覆盖Python中的YCM吗?
我刚刚用vundle 安装了jedi-vim我的vim版本是7.3.429.我安装了jedi vi pip
每次我打.或<C-Space>我得到这个错误.
Omni completion (^O^N^P) Pattern not found
Run Code Online (Sandbox Code Playgroud)
当我在这里搜索这个模式时,我找到了一个使用vim-jedi的解决方案.但不幸的是,这与jedi-vim有关.
以下是一些寄存器的输出:
:set omnifunc
omnifunc=jedi#complete
:messages
Messages maintainer: Bram Moolenaar <Bram@vim.org>
"models.py" 31L, 1052C
<emptyline>
Run Code Online (Sandbox Code Playgroud) 我阅读了jedi-vim的自述文件. https://github.com/davidhalter/jedi
使用非标准库(Django)完成omni的屏幕截图.
我通过pip安装了django并尝试完全相同的代码来测试Django的全向完成,但它不起作用.
Omni completion (^O^N^P) Pattern not found.
Run Code Online (Sandbox Code Playgroud)
标准图书馆的全方位完成工作非常完美.
我通常使用一些非标准库,所以我想对这些库使用omni完成.
我应该进行一些配置以使用非标准库进行全向完成吗?
我正在尝试使用jedi-vim插件进行Python自动完成,但我无法让它工作.
我有Vim 7.3,这就是我做的:
1-克隆代码
git clone http://github.com/davidhalter/jedi-vim path/to/bundles/jedi-vim
Run Code Online (Sandbox Code Playgroud)
2-复制jedi-vim/plugin/jedi.vim到~/.vim/plugin/
3-复制jedi-vim/doc/jedi-vim.txt到~/.vim/doc/
现在当我打开vim时,进入插入模式并输入
import wave
wave.
Run Code Online (Sandbox Code Playgroud)
没有任何反应,虽然文档指定Autocompletion is also triggered by typing a period in insert mode,如果我尝试<Ctrl-Space>我得到以下错误
E29: No inserted text yet
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)
我检查过:map,似乎<Ctrl-Space>没有使用:
n [m *@:call <SNR>21_Python_jump('?^\s*\(class\|def\)')<CR>
n [[ *@:call <SNR>21_Python_jump('?^\(class\|def\)')<CR>
n ]m *@:call <SNR>21_Python_jump('/^\s*\(class\|def\)')<CR>
n ]] *@:call <SNR>21_Python_jump('/^\(class\|def\)')<CR>
n gx <Plug>NetrwBrowseX
n <Plug>NetrwBrowseX * :call netrw#NetrwBrowseX(expand("<cWORD>"),0)<CR>
Run Code Online (Sandbox Code Playgroud)
由于我使用错误<Ctrl-Space> …
我是新手jedi-vim,我不知道如何在其他文件中跳转函数的定义.
该jedi-vim文件是:
以下是其中的一部分:
注意:可能会有变化!
让g:jedi#goto_command ="< leader > d"
让g:jedi#goto_assignments_command ="< leader > g"
让g:jedi#goto_definitions_command =""
让g:jedi#documentation_command ="K"
让g:jedi#usages_command ="< leader > n"
让g:jedi#completions_command ="< C-Space >"
让g:jedi#rename_command ="< leader > r"
我想知道是什么<leader>和<C-Space>意思以及如何在VIM上使用这些命令
正如标题所述,我如何检查插件是否已加载?
当我点击tab(对于SuperTab)时,我得到的是在我的文件中插入的普通字符"tab",当我点击ctrl-space时,我只是被抛出插入模式(与点击ESC的行为相同)
发布作为后续如何检查SuperTab和jedi-vim是否被激活?并完成了Ingo Karkat提出的建议.现在我想知道什么是破碎的以及我如何解决它.
这是输出:
:verbose imap <tab>
i <Tab> <Plug>SuperTabForward
Last set from ~/.vim/bundle/supertab/plugin/supertab.vim
Run Code Online (Sandbox Code Playgroud)
哪个看起来对我好,并且......
:scriptnames
1: /etc/vimrc
2: /usr/share/vim/vim72/syntax/syntax.vim
3: /usr/share/vim/vim72/syntax/synload.vim
4: /usr/share/vim/vim72/syntax/syncolor.vim
5: /usr/share/vim/vim72/filetype.vim
6: /usr/share/vim/vimfiles/ftdetect/puppet.vim
7: /usr/share/vim/vim72/ftplugin.vim
8: /home/johannesw/.vimrc
9: /usr/share/vim/vim72/ftoff.vim
10: /home/johannesw/.vim/bundle/vundle/autoload/vundle.vim
11: /home/johannesw/.vim/bundle/vundle/autoload/vundle/config.vim
12: /usr/share/vim/vim72/indent.vim
13: /usr/share/vim/vim72/syntax/nosyntax.vim
14: /home/johannesw/.vim/bundle/vim-fugitive/plugin/fugitive.vim
15: /home/johannesw/.vim/bundle/vim-easymotion/plugin/EasyMotion.vim
16: /home/johannesw/.vim/bundle/vim-easymotion/autoload/EasyMotion.vim
17: /home/johannesw/.vim/bundle/vim-rails/plugin/rails.vim
18: /home/johannesw/.vim/bundle/L9/plugin/l9.vim
19: /home/johannesw/.vim/bundle/L9/autoload/l9.vim
20: /home/johannesw/.vim/bundle/FuzzyFinder/plugin/fuf.vim
21: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf.vim
22: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/buffer.vim
23: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/file.vim
24: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/coveragefile.vim
25: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/dir.vim
26: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/bookmarkfile.vim
27: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/bookmarkdir.vim
28: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/tag.vim
29: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/buffertag.vim
30: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/taggedfile.vim
31: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/jumplist.vim
32: …Run Code Online (Sandbox Code Playgroud) 我使用vim与jedi/ jedi-vim当我开发Python代码,我使用广泛<Leader>d(转到定义)和/或<Leader>g(转到分配).我可以使用''返回跳转前的行,但只能在同一个文件中.
有没有办法在不同文件之间跳转时有相同的行为?
我正在尝试Vim插件Jedi-vim,它会在自动完成时打开一个预览窗口,并在完成时关闭.这可能导致光标和代码在物理LCD屏幕中的位置跳跃,这让我的眼睛不舒服.我可以选择将此窗口打开,但我更喜欢拥有更大的屏幕空间.有没有办法将预览窗口移动到底部,或者使用垂直分割?
<TL;DR>
import jedi在 python 3.6.8 中运行时,我收到以下导入错误(完整回溯见帖子末尾):
...
from jedi.common import traverse_parents
ImportError: cannot import name 'traverse_parents'
Run Code Online (Sandbox Code Playgroud)
</TL;DR>
我登记了~/.local/lib/python3.6/site-packages/jedi/common.py:有一个函数叫做traverse_parents好的,所以肯定有一些巫术在起作用。我不是第一次遇到那些“未定义名称”问题,但我对这个问题的想法已经不多了。
已经尝试过:
关于我如何修复它的模糊线索:
我已经在网上搜索了这个问题的答案,但一无所获。有没有人经历过类似的事情并设法解决它?
欢迎任何建议。
完整的追溯:
Error detected while processing function provider#python3#Call:
line 18:
Error invoking 'python_execute' on channel 5 (python3-script-host):
Traceback (most recent call last):
File "<string>", line 1, in …Run Code Online (Sandbox Code Playgroud) jedi-vim ×10
vim ×9
python ×4
python-jedi ×2
supertab ×2
importerror ×1
plugins ×1
python-3.x ×1
vim-plugin ×1