

vimでdcc.vimをインストールして使っています。  
今、Tabで補完できるようにしているのですが、補完表示がある時以外は、Tabに本来の動きをさせたいです（スペースを入力するということ）。

しかし、今の設定だと、補完表示がないときはTabは押しても何も起きない状態なようです。  
どうすれば上記のような設定にすることができるか教えてください。

また、INSERTの状態で文字を入力すると[ddc] ['vim-lsp']←これが一瞬でてきて鬱陶しいです。それをなくす対処法も教えてください。

[code]

    call plug#('Shougo/ddc.vim')
     59 call plug#('vim-denops/denops.vim')
     60 call plug#('Shougo/pum.vim')
     61 call plug#('Shougo/ddc-around')
     62 call plug#('LumaKernel/ddc-file')
     63 call plug#('Shougo/ddc-matcher_head')
     64 call plug#('Shougo/ddc-sorter_rank')
     65 call plug#('Shougo/ddc-converter_remove_overlap')
     66 call plug#('prabirshrestha/vim-lsp')
     67 call plug#('mattn/vim-lsp-settings')
     68
     69 call ddc#custom#patch_global('completionMenu', 'pum.vim')
     70 call ddc#custom#patch_global('sources', [
     71  \ 'around',
     72  \ 'vim-lsp',
     73  \ 'file'
     74  \ ])
     75 call ddc#custom#patch_global('sourceOptions', {
     76  \ '_': {
     77  \   'matchers': ['matcher_head'],
     78  \   'sorters': ['sorter_rank'],
     79  \   'converters': ['converter_remove_overlap'],
     80  \ },
     81  \ 'around': {'mark': 'Around'},
     82  \ 'vim-lsp': {
     83  \   'mark': 'LSP',
     84  \   'matchers': ['matcher_head'],
     85  \   'forceCompletionPattern': '\.|:|->|"\w+/*'
     86  \ },
     87  \ 'file': {
     88  \   'mark': 'file',
     89  \   'isVolatile': v:true,
     90  \   'forceCompletionPattern': '\S/\S*'
     91  \ }})
     92 inoremap <Tab> <Cmd>call pum#map#insert_relative(+1)<CR>
     93 inoremap <S-Tab> <Cmd>call pum#map#insert_relative(-1)<CR>
     94  call ddc#enable()
    
[/code]


CC BY-SA 4.0
2022-11-02T11:20:52.060
91950
2023-03-06T22:55:02.110
2022-11-30T00:53:40.833
3060
55034
question
vim
ddc.vim プラグインで、補完表示が無い時は Tab キーの入力でインデントの動作をさせたい


私はdcc.vimを使っていないので、確認していませんが <https://github.com/Shougo/ddc.vim> で Readme.md
を読んだ限りでは、  
inoremap pumvisible() ? pum#map#insert_relative(+1) : ''  
といった要領でどうでしょう?

もう一方は解りません


CC BY-SA 4.0
2022-11-02T17:14:38.700
91957
2022-11-02T17:14:38.700
22867
91950
answer


何かしらエラーが出ていて上手くddc.vimがロードされていないのかもしれません。

[code]

    vim -V9myVim.log
    
[/code]

などを使ってエラーを探してみてはどうでしょうか?


CC BY-SA 4.0
2022-11-06T06:30:12.613
92029
2022-11-06T06:30:12.613
55234
91950
answer


1つ目は hiroyukiさんの回答に近いですが、pum.vimの方の可視状態を見る必要があるので、以下の記述に書き換えてください。  
(`printf()` の部分は、必要なスペース数入れてください。)

[code]

    inoremap <expr><tab> pum#visible() ?
    \ pum#map#insert_relative(+1) : printf('    ')
    
[/code]

2つ目ですが、sourceが無いようです。  
vim-lspそのものには、ddc-sourceとしての実装がないので、他のプラグイン同様に以下の記述を追加してください。

[code]

    call plug#('Shun/ddc-source-vim-lsp')
    
[/code]


CC BY-SA 4.0
2023-02-09T16:09:56.417
93781
2023-03-06T22:55:02.110
2023-03-06T22:55:02.110
37811
37811
91950
answer