我是vimscript的初学者,即使我在网上搜索几个小时,我也无法找到如何执行以下操作:如何在vimscript中显示自动完成菜单?
我想创建一个允许打开文件的vimscript通过键入只是一些字母:
假设
- 我只在当前工作目录
- 我有一个Python脚本,可以递归期待通过的文件夹和文件存储与搜索GIV连接阵列中的字母
我想要什么
<leader><leader>p
调用,会做什么是必要的功能(我不知道究竟是什么的时刻......)
这功能会要求用户输入所需的字母。当他输入字母时,菜单将显示可用结果(所以,该菜单需要自动刷新)。
我希望用户可以结束键入,并通过突出显示来移动到所需的文件。
对于为例:
我现在有
if !has('python')
echo "Error: Sublime Search require vim compiled with +python"
finish
endif
let s:current_file=expand("<sfile>:r")
let s:script_path = s:current_file . '.py'
exec 'pyfile ' . s:script_path
function SublimeSearchTrigger()
python lookFor()
endfun
if !exists('g:sublimesearch_keys')
let g:sublimesearch_keys = 1
endif
if g:sublimesearch_keys
inoremap <leader><leader>p :call SublimeSearchTrigger()<cr>
nnoremap <leader><leader>p :call SublimeSearchTrigger()<cr>
endif
而Python文件
# -*- encoding: utf-8 -*-
import vim
import sys
def lookFor():
# Ask user to type something to find
vim.command("let user_input = input('Sublime search : ')")
vim.command("call inputrestore()")
# Visual return of what we typed
vim.current.buffer.append(vim.eval('user_input'))
如何开始?
正如你可以看到我不知道如何开始,但我真的有动力(我计划更复杂的功能,但会用python实现)。
有人可以帮我开始吗?
感谢,
达明
http://www.vim.org/scripts/script.php?script_id = 1984
https://peepcode.com/products/peepopen/
是我想到的两个插件,此外http://www.vim.org/scripts/script.php?script_id=2620与http ://www.vim.org/scripts/script.php?script_id = 1879在插入文本时提供了一个弹出窗口和文件名完成;例如,在源代码中引用文件 – epsilonhalbe 2012-07-06 09:00:49
@ epsilon'εⳆ2'halbe这正是我想要做的事情......只是为了方便必须绘制地图。非常感谢你。我会尝试看看FuzzyFinder如何为这个问题添加一个答案:) – 2012-07-06 09:10:07
此外,您是否知道'set wildmenu','set wildmode = list:longest'和'set wildignore = *。o,*。jpg ,...'我认为它可以解决你的问题 – epsilonhalbe 2012-07-06 09:13:52