Questions tagged «autocompletion»

对于有关完成已键入的关键字或行的一部分的几个命令的问题。

5
使用vim进行编程时,是否可以具有vim自动完成的函数名称,变量等?
许多IDE会根据用户类型自动完成函数名称,变量,方法名称等。最好的名称会根据语言的内置库以及同一程序的其他文件中已定义的名称来完成名称。 例如,当我输入以下Python程序时: hungy = True def eatFood(food): pass if hungry: eatF 该行将eatF自动显示eatFood()为可用的自动完成选项。 Vim有此功能吗?如果是这样,我如何启用它?

3
如何获得智能的C ++自动完成功能
一些编辑器(例如Windows上的Visual Studio)会执行C ++自动补全功能,从而可以理解C ++。例如,给定: #include <vector> int main(void) { std::vector<int> v; v.i 在Visual Studio中,自动补全知道std::vector<int>以i开头的唯一方法是insert。 是否可以在vim中获得这种自动完成功能?

6
Python 3的Vim代码完成
我正在运行Debian Jessie并使用当前的vim-nox(带有+ python -python3)。我在尝试使用Python 3编程时遇到了困难,因为我在处理Python 3代码完成方面遇到困难。 YouCompleteMe完全不支持Python3。jedi-vim确实支持Python 3补全功能,但前提是我正确理解了+ python3选项。从Debian Developers的几篇文章中看来,用+ python3标志编译Vim确实没有用。因此,我剩下了python-mode插件。 除了python-mode似乎无法维护(请参阅打开的pull-requests和最后的提交)并且当前在其master分支中存在有关绳索的巨大错误外,它还会干扰YouCompleteMe。我确实可以使用一些Python 3代码完成功能,但前提是必须完全禁用YouCompleteMe。将python文件类型的YCM列入黑名单或禁用python文件的YCM完成不起作用,每次打开vim时都会收到一条YCM警告。 所以我的问题是: 如何在不停用YouCompleteMe(我希望用于其他编程语言)的情况下,使Python 3自动补全功能在当前的Debian发行版上工作?对于如此重要​​的编程语言(Python 3不再被认为是新的。),为什么目前无法维护的插件是代码完成的唯一选择?


5
切换git分支的最简单方法
现在,我正在使用逃犯来管理几乎所有与git相关的事情,但是我找不到能快速可视化并在可用分支之间进行切换的良好工作流程。 我可以做:Git checkout <branch-name>,问题是它会自动完成文件名和分支,并且我希望分支列表。

6
如何使Vim显示C / C ++函数的文档?
大多数编辑器都有一个功能,例如当您通过将尖号放在函数上来按下某些键时,它会弹出该函数的文档以及该函数采用的参数的数量和类型。 我想知道Vim是否提供这种支持。例如,在用C进行编码时,我使用了内置函数qsort()。由于我不确定所用参数的类型和数量,因此我想在不逃脱Vim的情况下知道它。可能吗?

1
远程文件的文件名完成
我的朋友几天前在Emacs上给我展示了一个很酷的技巧,他可以在远程服务器上打开文件,而我立即想到“也应该在vim中这样做”,这是事实。 我可以:e scp://user@server//filepath这样做,没问题;)。但是,他可以只键入服务器名称,然后完成文件路径和名称(带有选项卡),这是我无法做到的。有人知道这是否可以在vim中完成吗?

1
Vim中文件名的Bash式部分制表符完整
在Bash中,当有几个文件具有相同的前缀,并且我键入了一部分前缀和hit时Tab,它会完成通用前缀,并允许我继续键入以区分可能的结果。 在Vim中,当有几个文件具有相同的前缀并且我键入部分前缀并点击时Tab,它将完成整个第一个匹配项,然后让我在所有匹配项中进行选择。为了减少集合,我必须退格,直到到达公共部分的末尾,然后再键入一些然后Tab再次击中。 我经常有很多文件,这些文件的公共前缀很长,而我想要的文件不在第一个文件中(例如,项目文件的目录除其他外,还包含各种名称为的makefile Makefile.{whatever})。 我可以使Vim更像Bash一样来保存很多按键吗? 如果这也可以应用于其他补全(例如,所有具有相同前缀的枚举值),则将获得奖励

1
Ctrl-n完成需要很长时间才能“扫描包含的文件”
我正在重新学习我的vim技能,并使用Ctrl-n命令来完成它。我在Perl中编程。当我处于插入模式并按Ctrl-n时,我在终端底部收到一条消息,提示它“正在扫描包含的文件”,看起来像在扫描perl发行目录中的文件。可能要花几秒钟才能完成。似乎它对我包含的已注释掉的软件包执行了此操作: #use Moose; 因此,我必须删除这些行才能使此功能具有任何价值。我想念什么吗? 我正在使用perl-support插件。

1
如何从完成中排除某些文件扩展名?
有没有一种方法可以配置vim关于它认为“适合”打开的文件类型? 让我通过一个例子澄清一下。假设您正在处理乳胶文档。构建文件后,目录中将包含以下内容(以及与构建相关的其他文件): X.aux X.log X.out X.pdf X.tex 现在,如果您正在处理另一个文件(例如Y.tex),并且想要:sp X.tex,则可以<Tab>用来循环浏览可能的文件,即: :sp X<Tab> 看来vim已经选择了您最可能需要的文件,并自动对这些文件自动完成。这是我的vim自动完成文件的顺序: X.pdf X.tex X.aux X.log X.out 再次,好像vim决定我可能要打开.pdfor .tex文件,并先按字母顺序显示给我。然后,它再次按字母顺序显示其余文件。首先,我的理解正确吗? 如果是这样,我怎么能告诉vim它以为我不应该对.pdf用它打开文件感兴趣?这样,第一个文件<Tab>将立即.tex为我提供我真正要查找的文件。


1
单词不完整
<C-p>并<C-n>允许填写当前文档中的单词。 我采取了一些笔记,写的发言权{0,1}^n和(E,D)多次。这些是由几个单词构成的单词。 有没有一种方法可以用<C-p>和<C-n>(或其他相关ins-completion命令)来完成WORD ?

1
动态完成
我正在尝试增强旧的完成功能。我希望在输入新字符时更新弹出菜单中显示的选择 我的完成功能是 function! lh#icomplete#ecm(findstart, base) abort if a:findstart let l = getline('.') let startcol = match(l[0:col('.')-1], '\v\S+$') if startcol == -1 let startcol = col('.')-1 endif " let g:debug+= ["findstart(".a:base.") -> ".(startcol)] return startcol else " let g:debug += ["matching(".a:base.")"] let words = ['un', 'deux', 'trois', 'trente-deux', 'unité'] call filter(words, …

2
如何在Vim中查找LaTeX符号?
我可以将某种形式的符号补全集成到Vim吗?像TeXMaker这样的专用TeX编辑器提供了要完成的符号列表(例如,\al显示带有\alpha,\lashows \lambda和的列表\langle)。 请注意,TeX包含大量符号,因此涉及手动映射\al到的\alpha建议将毫无用处。 我拥有的相关插件: SUPERTAB与let g:SuperTabDefaultCompletionType="context"和 set omnifunc=syntaxcomplete#Complete 乳胶盒 如果有关系,我可以使用XeLaTeX进行编译。 有关: 如何查找符号或识别数学符号或字符?

1
取消完成
通常,插入模式完成(<C-n>)会在我第一次按时插入正确的词<C-n>,但并非总是如此。因此,我希望Vim在按时插入它认为最合适的匹配项<C-n>,但是如果正确的匹配项未显示或在列表中很长一段距离,仍然允许我取消此插入。 当然,我可以对这种行为进行编码,但是我觉得应该有一个标准的键(组合)来做到这一点。有人可以指出我正确的方向吗? 奖励问题:是否可以使用另一个键来获得最长的匹配(就像我按下之前一样<C-n>)? 为了它的价值,我正在使用 completeopt=menu

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.