diff options
| author | Karel Kočí <cynerd@email.cz> | 2016-06-30 16:03:25 +0200 | 
|---|---|---|
| committer | Karel Kočí <cynerd@email.cz> | 2016-06-30 16:03:25 +0200 | 
| commit | e573b3020c032400eed60b649a2cbf55266e6bb0 (patch) | |
| tree | 8f572394ac8433529c7a8e70d160a2fbe8268b4e /vim/bundle/tlib_vim/samples/tlib | |
| parent | b8c667bd64b3edd38d56c63c5bd1db53a23b4499 (diff) | |
| download | myconfigs-e573b3020c032400eed60b649a2cbf55266e6bb0.tar.gz myconfigs-e573b3020c032400eed60b649a2cbf55266e6bb0.tar.bz2 myconfigs-e573b3020c032400eed60b649a2cbf55266e6bb0.zip | |
Add current configurations from old repository
Diffstat (limited to 'vim/bundle/tlib_vim/samples/tlib')
| -rw-r--r-- | vim/bundle/tlib_vim/samples/tlib/input/tlib_input_list.vim | 50 | 
1 files changed, 50 insertions, 0 deletions
| diff --git a/vim/bundle/tlib_vim/samples/tlib/input/tlib_input_list.vim b/vim/bundle/tlib_vim/samples/tlib/input/tlib_input_list.vim new file mode 100644 index 0000000..4d668ff --- /dev/null +++ b/vim/bundle/tlib_vim/samples/tlib/input/tlib_input_list.vim @@ -0,0 +1,50 @@ +" The following variable configures the way |tlib#input#ListD()| works.  +" In this example, we allow selection of multiple items (we could also  +" allow only a single choice and make |tlib#input#ListD()| work on the  +" indices, not the items). +" +" We also set a prompt that will be displayed in the command area. +" +" By default, |tlib#input#ListD()| will automatically select an item if  +" there is only one item left matching the filter. In this example, we  +" disable this feature. +" +" For demonstration purposes, we also define a key handler that prints  +" the selected items. +let s:state = { +            \ 'type': 'm', +            \ 'query': 'Select lines for command output', +            \ 'pick_last_item': 0, +            \ 'key_handlers': [ +                \ {'key': 16, 'agent': 'PrintMe', 'key_name': '<c-p>', 'help': 'Print line'}, +            \ ], +            \ } + +" A key handler takes two arguments: the current state of the list  +" display and a list of selected items/indices (depending on the type  +" parameter). +function! PrintMe(state, items) "{{{3 +    echom "You selected:" +    for i in a:items +        echom i +    endfor +    call input("Press ENTER to continue") +    let a:state.state = 'redisplay' +    return a:state +endf + +" In this example, we evaluate an ex-command with |:execute| and display  +" the command's output as list. The user can select certain lines by  +" typing some pattern or by pressing <a-NUMBER> to select an item by  +" number. The user can then press <c-p> to print the lines (see above)  +" or <cr> to pick the selected lines. +function! SelectOutput(ex) "{{{3 +    redir => lines +    silent exec a:ex +    redir END +    let state = copy(s:state) +    let state.base = split(lines, '\n') +    let picked = tlib#input#ListD(state) +    echom "You picked: ". join(picked, ', ') +endf + | 
