Functions for using pick from within Vim.
Please note: pick requires a fully functional terminal to run therefore cannot be run from within gvim or MacVim.
Recommended installation with Vundle:
Plugin 'calleerlandsson/pick.vim'
pick.vim provides the following functions:
Pick a file to edit.
If you are working from within a git repository, PickFile()
will use git ls-files
to get the files to pick from. If not, it will use find
.
Pick a file to edit in a new split.
Pick a file to edit in a new vertical split.
Pick a file to edit in a new tab.
Pick a buffer to edit.
Pick a tag to jump to, open it with :tag
Pick a tag to jump to, open it with :stag
Run the choice_command
in from the shell and pipe the results to pick run with
pick_args
and call the vim_command
with the selected choice.
For example, you could implement PickFile()
like this:
call PickCommand("find * -type f", "", ":edit", 1)
Add your preferred key mappings to your .vimrc
file:
nnoremap <Leader>p :call PickFile()<CR>
nnoremap <Leader>s :call PickFileSplit()<CR>
nnoremap <Leader>v :call PickFileVerticalSplit()<CR>
nnoremap <Leader>t :call PickFileTab()<CR>
nnoremap <Leader>b :call PickBuffer()<CR>
nnoremap <Leader>] :call PickTag()<CR>
The name of the pick executable can be configured with:
let g:pick_executable = "pick -K"
The -K
is useful when running pick(1)
from within another interactive
program (like vim(1)
) which does not re-enable keyboard transmit mode after
executing an external program.
The maximum number of lines used when drawing the pick interface can be limited:
let g:pick_height = 10
Copyright (c) 2017 Calle Erlandsson, Teo Ljungberg & thoughtbot.