我是 vimscript 的初学者,即使我在网上搜索了几个小时,我也无法找到如何执行以下操作:
我想创建一个 vimscript,它允许通过输入一些字母来打开文件:
假设
- 我只在当前工作目录中搜索
- 我有一个 python 脚本,它可以递归地查看文件夹并将具有给定字母的文件存储在数组中
我想要的是
<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 实现)。
有人可以帮我开始吗?
谢谢,
达米安