Giter Club home page Giter Club logo

denite.nvim's Introduction

denite.nvim

Note: Active development on denite.nvim has stopped. The only future changes will be bug fixes.

Please see ddu.vim.

Note: Denite.nvim does not define any of default mappings. You need to define them.

Please read help for details.

About

Join the chat at https://gitter.im/Shougo/denite.nvim

Denite is a dark powered plugin for Neovim/Vim to unite all interfaces. It can replace many features or plugins with its interface. It is like a fuzzy finder, but is more generic. You can extend the interface and create the sources.

Some things you can do with it include:

  • Opening files

  • Switching buffers

  • Inserting the value of a register

  • Changing current directory

  • Searching for a string

Unite.vim was meant to be like Helm for Vim. But the implementation is ugly and it's very slow.

Denite resolves Unite's problems. Here are some of its benefits:

  • Theoretically faster because the main process is executed by Python

  • Theoretically more stable because no other processes can be performed when it runs.

  • The implementation is simpler than unite

  • Has greater potential to implement new features

  • Python3 is easier to work with than Vimscript

  • There are a lot of useful tools to keep code simple (linter, tester, etc...) in Python3.

  • Unite is officially obsolete, minor bugs (or even major bugs) are not fixed anymore

Requirements

Denite requires Neovim 0.4.0+ or Vim 8.0+ with if_python3. If :echo has("python3") returns 1, then you're done.

Note: Please install/upgrade msgpack package (1.0.0+). https://github.com/msgpack/msgpack-python

Note: You need to install Python 3.6.1+.

For neovim:

You must install "pynvim" module with pip

pip3 install --user pynvim

If you want to read the pynvim/python3 interface install documentation, you should read :help provider-python.

For Vim8:

Please install nvim-yarp plugin for Vim8. https://github.com/roxma/nvim-yarp

Please install vim-hug-neovim-rpc plugin for Vim8. https://github.com/roxma/vim-hug-neovim-rpc

You must install "pynvim" module with pip

pip3 install --user pynvim

For Windows users

  1. Install Vim from Vim Win32 Installer releases
  2. Download Python latest embeddable zip file and copy the all files in the zip file to the folder where you installed Vim.

Note: You need to do 1. and 2. with the common-arch files (x86 or x64).

Installation

For dein.vim

call dein#add('Shougo/denite.nvim')
if !has('nvim')
  call dein#add('roxma/nvim-yarp')
  call dein#add('roxma/vim-hug-neovim-rpc')
endif

For vim-plug

if has('nvim')
  Plug 'Shougo/denite.nvim', { 'do': ':UpdateRemotePlugins' }
else
  Plug 'Shougo/denite.nvim'
  Plug 'roxma/nvim-yarp'
  Plug 'roxma/vim-hug-neovim-rpc'
endif

Examples

" Define mappings
autocmd FileType denite call s:denite_my_settings()
function! s:denite_my_settings() abort
  nnoremap <silent><buffer><expr> <CR>
  \ denite#do_map('do_action')
  nnoremap <silent><buffer><expr> d
  \ denite#do_map('do_action', 'delete')
  nnoremap <silent><buffer><expr> p
  \ denite#do_map('do_action', 'preview')
  nnoremap <silent><buffer><expr> q
  \ denite#do_map('quit')
  nnoremap <silent><buffer><expr> i
  \ denite#do_map('open_filter_buffer')
  nnoremap <silent><buffer><expr> <Space>
  \ denite#do_map('toggle_select').'j'
endfunction

Screenshots

Old UI

denite old UI

New UI

denite new UI

Others

denite new UI2 denite new UI3

denite.nvim's People

Contributors

aeruder avatar bakudankun avatar blankname avatar carlitux avatar chemzqm avatar dilberry avatar herringtondarkholme avatar hokorobi avatar hrsh7th avatar jrudess avatar lambdalisue avatar matsui54 avatar mhartington avatar milly avatar momo-lab avatar nfnty avatar okamos avatar orokasan avatar petobens avatar pocari avatar pocke avatar rafi avatar shougo avatar skeept avatar skt041959 avatar sodiumjoe avatar somini avatar tjdevries avatar wilywampa avatar y7amura avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

denite.nvim's Issues

Incremental Output from Source

Is it possible to give incremental output from a source? Say I have a really large grep that I'm doing, and I'd like the results to appear as they are found, not once they are all found?

Is this what you mean by asynchronous sources support in the TODOs?

Please support vim and neovim

Especially given that neovim isn't so stable on windows yet I would love to see denite.vim working in vim too might be with a fallback to using vimproc or job/channels.

Action name completion is not working

Warning: I will close the issue without the minimal init.vim and the reproduce ways.

Problems summary

Action name completion in normal mode is not working, if I canceled anything once confirmed.

Neovim Python Diagnostic

  • Neovim Version: NVIM v0.2.0-1-g9956bee

Provide a minimal init.vim with less than 50 lines (Required!)

let s:dein_dir = expand('~/.cache/dein2')
let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'

if &runtimepath !~# '/dein.vim'
  if !isdirectory(s:dein_repo_dir)
    execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir
  endif
  execute 'set runtimepath^=' . fnamemodify(s:dein_repo_dir, ':p')
endif

call dein#begin(s:dein_dir)

call dein#add('Shougo/denite.nvim')

call dein#end()
call dein#save_state()

if dein#check_install()
  call dein#install()
endif

The reproduce ways from neovim starting (Required!)

  1. :Denite file_rec

  2. move normal mode by <C-o> and <TAB>
    I input 'de' and <TAB> (expecting 'default').

    2016-11-30 14 52 34

    and completed 'default' (it's works)

  3. Next, I erase 'default' (by backspace key) and input 'y'
    and input <TAB> for completion (expect 'yank')
    but, completion is not working.

    2016-11-30 14 53 56

About quit_buffer operation

Problems summary

@Shougo Thanks for the awesome plugin.

What do you think to use bd rather than close! in the quit_buffer?
An empty denite buffer seems left in buffer list after we get done with denite.

Expected

No empty denite buffer left in buffer list

Environment Information

health#deoplete#check
================================================================================

## deoplete.nvim
  - SUCCESS: has("nvim") was successful
  - SUCCESS: has("python3") was successful
  - INFO: If you're still having problems, ' . 'try the following commands:
    $ export NVIM_PYTHON_LOG_FILE=/tmp/log
    $ export NVIM_PYTHON_LOG_LEVEL=DEBUG
    $ nvim
    $ cat /tmp/log_{PID}
    and then create an issue on github

health#nvim#check
================================================================================

## Remote Plugins
  - SUCCESS: Up to date

## Python 2 provider
  - INFO: `g:python2_host_prog` is not set.  Searching for python2 in the environment.
  - INFO: Executable: /usr/bin/python2
  - INFO: Python2 version: 2.7.9
  - INFO: python2-neovim Version: 0.1.9
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Python 3 provider
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/bin/python3
  - INFO: Python3 version: 3.4.3
  - INFO: python3-neovim Version: 0.1.9
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Ruby provider
  - ERROR: Missing Neovim RubyGem
      - SUGGESTIONS:
        - Install or upgrade the neovim RubyGem using `gem install neovim`.
  - INFO: Ruby Version: ruby 2.1.2p95 (2014-05-08) [x86_64-linux-gnu]
  - INFO: Host Executable: not found
  - INFO: Host Version: not found

Provide a minimal init.vim with less than 50 lines (Required!)

"let s:dein_dir = expand('~/.cache/nvim/dein')
let s:dein_dir = expand('~/.config-test/nvim/dein')
let s:dein_init = s:dein_dir.'/repos/github.com/Shougo/dein.vim'

" Your minimal init.vim
set nocompatible
if &runtimepath !~ '/dein.vim'
  if !isdirectory(s:dein_init)
    call mkdir(fnamemodify(s:dein_init, ':h'), 'p')
    execute '!git clone https://github.com/shougo/dein.vim' s:dein_init
  endif

  " Add dein_dir to &runtimepath
  execute 'set runtimepath^=' . substitute(fnamemodify(s:dein_init, ':p') , '/$', '', '')
endif
call dein#begin(expand('~/.config-test/nvim'))
 " Required:
call dein#add('Shougo/dein.vim')
call dein#add('Shougo/deoplete.nvim')
call dein#add('Shougo/denite.nvim')
call dein#add('bling/vim-bufferline')
if dein#check_install()
  call dein#install()
endif
call dein#end()
filetype plugin indent on
let g:deoplete#enable_at_startup = 1

map <C-q> :q<cr>
map <C-s> :w<cr>

Screen shot (if possible)

screen_shot_2016-09-16_at_03_17_28

Implement custom#profiles

Please implement profile options as in unite. eg:

call unite#custom#profile('default', 'context', {
   \   'winheight': 10,
   \   'direction': 'botright',
   \ })

Thanks!

Can not execute action for menu source (vim)

Problems summary

I got errors and cannot execute action for selected candidate when I open Denite menu.

Expected

Execute appreciate action.

Environment Information

  • OS: Arch linux
  • VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Oct 30 2016 15:27:09)
  • denite.nvim d3fa1c4

Provide a minimal init.vim with less than 50 lines (Required!)

minimal .vimrc

set runtimepath+=$HOME/.vim/denite.nvim

" Add custom menus
let s:menus = {}

let s:menus.my_commands = {
    \ 'description': 'Example commands'
    \ }
let s:menus.my_commands.command_candidates = [
    \ ['Split the window', 'vnew'],
    \ ['Open zsh menu', 'Denite menu:zsh'],
    \ ]

call denite#custom#var('menu', 'menus', s:menus)

The reproduce ways from vim starting (Required!)

case1

  1. enter cmdline and Denite menu
  2. select "my_commands" candidate and hit <CR> (expect open menu:my_commands source)
  3. get errors

case 2

  1. enter cmdline and Denite menu:my_commands
  2. select first candidate (expect open new buffer)
  3. get errors
[denite] Traceback (most recent call last):
[denite]   File "/home/yuntan/.vim/denite.nvim/rplugin/python3/denite/ui/default.py", line 79, in start
[denite]     self.input_loop()
[denite]   File "/home/yuntan/.vim/denite.nvim/rplugin/python3/denite/ui/default.py", line 331, in input_loop
[denite]     ret = func() if len(map_args) == 1 else func(arg)
[denite]   File "/home/yuntan/.vim/denite.nvim/rplugin/python3/denite/ui/default.py", line 375, in do_action
[denite]     self.__context, action, candidates)
[denite]   File "/home/yuntan/.vim/denite.nvim/rplugin/python3/denite/denite.py", line 231, in do_action
[denite]     return func(context)
[denite]   File "/home/yuntan/.vim/denite.nvim/rplugin/python3/denite/kind/file.py", line 22, in action_open
[denite]     path = target['action__path']
[denite] KeyError: 'action__path'
[denite] An error has occurred. Please execute :messages command.

Generate a logfile if appropriate

  1. export NVIM_PYTHON_LOG_FILE=/tmp/log
  2. export NVIM_PYTHON_LOG_LEVEL=DEBUG
  3. nvim -u minimal.vimrc
  4. some works
  5. cat /tmp/log_{PID}

Screen shot (if possible)

161113_133617

Upload the log file

Solution

diff --git a/rplugin/python3/denite/denite.py b/rplugin/python3/denite/denite.py
index 01b9196..5c02bd8 100644
--- a/rplugin/python3/denite/denite.py
+++ b/rplugin/python3/denite/denite.py
@@ -207,8 +207,11 @@ def load_kinds(self, context):
             self.__kinds[name] = module.Kind(self.__vim)
 
     def do_action(self, context, action_name, targets):
-        if 'kind' in targets:
-            kind_name = targets['kind']
+        # if 'kind' in targets:
+        #     kind_name = targets['kind']
+        if 'kind' in targets[0]:
+            kind_name = targets[0]['kind']
         else:
             kind_name = self.__sources[targets[0]['source']].kind

This patch fixes my problem.

filter_project_files does not work.

Problems summary

I try filter_project_files future.
But it does not work with below settings.

call denite#custom#source('file_rec', 'matchers',
\ ['matcher_fuzzy', 'matcher_project_files'])

It seems that context['path'] isn't set in gather_candidates.

Expected

Set filter project to .git exists directory.

Provide a minimal init.vim with less than 50 lines (Required!)

settings with dein.vim

[[plugins]]
repo = 'Shougo/denite.nvim'
on_cmd = ['Denite']
merged = 0
hook_add = '''
nmap <silent> <C-u><C-u> :<C-u>Denite file_mru<CR>
nmap <silent> <C-u><C-p> :<C-u>Denite file_rec<CR>
nmap <silent> <C-u><C-j> :<C-u>Denite line<CR>
'''
hook_post_source = '''
call denite#custom#var('file_rec', 'command',
\ ['pt', '--follow', '--nocolor', '--nogroup', '--hidden', '-g', ''])
call denite#custom#source('file_rec', 'matchers',
\ ['matcher_fuzzy', 'matcher_project_files'])
'''

The reproduce ways from neovim starting (Required!)

  1. Denite file_rec

Ability to disable highlight on file_rec match.

I want to upgrade Denite to the master branch but I'm uncomfortable with glaring highlight on the matched file names. Is there any way to disable this highlight on file_rec matches? Thanks.

And I think highlight on the matched file names with file_rec should be disabled by default. Because matching changes on the fly as we type and using highlight the reflect those changes hurts the eyes.

Cancel operation for Denite grep

@Shougo thanks for awesome plugin;)
Denite grep is doing quite well right now, but it lacks of the ability to cancel the request.

The scenario and expectation: Enter Denite grep command and it prompts Pattern:, denite should cancel the grep operation if key <esc> or combo key<C-c> is being pressed.

How to map a Alt key?

I want to map Alt-c key, use the following command:

cal denite#custom#map('insert', '', 'delete_backward_char')

but it didn't work.

denite window resizes other windows

FYI. I don't know whether a fix is impossible or readily apparent to anyone. I'm posting this to confirm either case, otherwise I'll take a stab at a solution/PR when I have time, and this issue will serve as a reminder and starting point.

Problems summary

  1. Split view into 3 windows.

    :vsplit | wincmd l | split | wincmd h

  2. Open denite window.

    :Denite buffer

  3. Notice two right windows shifted up and evenly split available vertical space above the denite window.

  4. Close denite window.

    Esc

  5. Notice upper right window remains unchanged. Lower right window fills vertical space from absent denite window.

If the lower right window has a :terminal, over time it eventually fills all the vertical space. I cannot confirm, yet, whether :terminal matters. I just happened to observe this behavior while programming.

Here's an ascii screenshot to illustrate the issue.

  Step 1          Step 2          Step 4
┌────┬────┐     ┌────┬────┐     ┌────┬────┐
│9x4 │4x4 │     │7x4 │3x4 │     │9x4 │3x4 │  <- Sometimes split will end up here
│    │    │     │    │    │     │    │    │     when lower right window is :terminal.
│    │    │     │    │    │     │    │    │
│    │    │     │    ├────┤     │    ├────┤  <- Split now here
│    ├────┤     │    │3x4 │     │    │5x4 │  <- Expected split back here
│    │4x4 │     │    │    │     │    │    │
│    │    │     │    │    │     │    │    │
│    │    │     ├────┴────┤     │    │    │
│    │    │     │ Denite! │     │    │    │
└────┴────┘     └─────────┘     └────┴────┘

Expected

Case 1 (best): opening denite window doesn't affect dimensions of existing windows, other than the shrinking windows that otherwise overlap to make room for the denite window.

Case 2 (better): windows return to original sizes as seen before denite window opened.

Case 3 (good): windows resize to equally distribute vertical space from absent denite window, just as they resized when the denite window appeared.

Additional Observations

  • The resize behavior varies depending on which window has keyboard focus. After Step 1, move focus to the upper-right :wincmd l, notice after Step 4 the upper right window returns to its original size.

Environment Information

  • OS: Arch Linux

  • neovim -v

NVIM v0.1.6-296-g714ec09
Build type: Dev
Compilation: /usr/bin/cc -march=x86-64 -mtune=generic -O2 -pipe
  -fstack-protector-strong --param=ssp-buffer-size=4 -Wconversion -Og -g -Wall
  -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wvla
  -fstack-protector-strong -fdiagnostics-color=auto
  -DINCLUDE_GENERATED_DECLARATIONS -DHAVE_CONFIG_H -D_GNU_SOURCE
  -I/tmp/boxofrox/yaourt-tmp-boxofrox/aur-neovim-git/src/neovim-git/build/config
  -I/tmp/boxofrox/yaourt-tmp-boxofrox/aur-neovim-git/src/neovim-git/src
  -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include
  -I/usr/include -I/usr/include
  -I/tmp/boxofrox/yaourt-tmp-boxofrox/aur-neovim-git/src/neovim-git/build/src/nvim/auto
  -I/tmp/boxofrox/yaourt-tmp-boxofrox/aur-neovim-git/src/neovim-git/build/include
Compiled by boxofrox

Optional features included (+) or not (-): +acl   +iconv    +jemalloc +tui
For differences from Vim, see :help vim-differences

   system vimrc file: "$VIM/sysinit.vim"
   fall-back for $VIM: "/usr/share/nvim"
  • :CheckHealth result(neovim ver.0.1.5-452+):
health#deoplete#check
================================================================================
## deoplete.nvim
  - SUCCESS: has("nvim") was successful
  - SUCCESS: has("python3") was successful
  - INFO: If you're still having problems, try the following commands:
    $ export NVIM_PYTHON_LOG_FILE=/tmp/log
    $ export NVIM_PYTHON_LOG_LEVEL=DEBUG
    $ nvim
    $ cat /tmp/log_{PID}
    and then create an issue on github

health#nvim#check
================================================================================
## Remote Plugins
  - SUCCESS: Up to date

## tmux configuration
  - SUCCESS: escape-time = 0ms

## terminfo
  - INFO: key_backspace terminfo entry: key_backspace=\177,

health#provider#check
================================================================================
## Python 2 provider
  - WARNING: No Python interpreter was found with the neovim module.  Using the first available for diagnostics.
  - WARNING: provider/pythonx: Could not load Python 2:
    /usr/bin/python2 does not have the neovim module installed. See ":help provider-python".
    /usr/bin/python2.7 does not have the neovim module installed. See ":help provider-python".
    python2.6 not found in search path or not executable.
    /usr/bin/python is Python 3.5 and cannot provide Python 2.
  - INFO: `g:python_host_prog` is not set.  Searching for python2 in the environment.
  - INFO: Executable: /usr/bin/python2
  - INFO: Python2 version: 2.7.12
  - INFO: python2-neovim Version: unable to find nvim executable
  - ERROR: Neovim Python client is not installed.
    - SUGGESTIONS:
      - Error found was: unable to find nvim executable
      - Use the command `$ pip2 install neovim`
  - WARNING: Latest Neovim Python client version: (0.1.10)

## Python 3 provider
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/bin/python3
  - INFO: Python3 version: 3.5.2
  - INFO: python3-neovim Version: 0.1.10
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Ruby provider
  - ERROR: Missing Neovim RubyGem
    - SUGGESTIONS:
      - Install or upgrade the neovim RubyGem using `gem install neovim`.
  - INFO: Ruby Version: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
  - INFO: Host Executable: not found
  - INFO: Host Version: not found

Minimal init.vim

set runtimepath+=~/path/to/denite.nvim/

"Missing endif" menu error

Problems summary

When accessing menus, starting with :Denite menu I receive "missing endif" error output, and also performs the expected action. However if I start with :Denite menu:edits (for example) I do not see the error

Expected

Expect it to work without error output

Environment Information

  • OS: OS X 10.11.6 El Capitan
  • nvim-python-doctor result or :CheckHealth result(neovim ver.0.1.5-452+):
https://github.com/tweekmonster/nvim-python-doctor
health#nvim#check
================================================================================

## Remote Plugins
  - SUCCESS: Up to date

## Python 2 provider
  - WARNING: No Python interpreter was found with the neovim module.  Using the first available for diagnostics.
  - WARNING: provider/pythonx: Could not load Python 2:
    /usr/local/bin/python2 does not have the neovim module installed. See ":help provider-python".
    /usr/local/bin/python2.7 does not have the neovim module installed. See ":help provider-python".
    /usr/bin/python2.6 does not have the neovim module installed. See ":help provider-python".
    /usr/local/bin/python does not have the neovim module installed. See ":help provider-python".
  - ERROR: Python provider error
      - SUGGESTIONS:
        - provider/pythonx: Could not load Python 2:
          /usr/local/bin/python2 does not have the neovim module installed. See ":help provider-python".
          /usr/local/bin/python2.7 does not have the neovim module installed. See ":help provider-python".
          /usr/bin/python2.6 does not have the neovim module installed. See ":help provider-python".
          /usr/local/bin/python does not have the neovim module installed. See ":help provider-python".
  - INFO: Executable: Not found

## Python 3 provider
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/local/bin/python3
  - INFO: Python3 version: 3.5.2
  - INFO: python3-neovim Version: 0.1.10
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Ruby provider
  - SUCCESS: Found Neovim RubyGem
  - INFO: Ruby Version: ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
  - INFO: Host Executable: /usr/local/bin/neovim-ruby-host
  - INFO: Host Version: 0.3.1

Neovim Python Diagnostic

  • Neovim Version: NVIM 0.1.5

Provide a minimal init.vim with less than 50 lines (Required!)

Plug 'Shougo/denite.nvim'
Plug 'Shougo/neoyank.vim'

:nmap <Leader>m :Denite menu<CR>
let s:menus = {}
let s:menus.edits = {'description': 'Common edit targets'}
let s:menus.edits.file_candidates = [
    \ ['nvim init.vim', '~/.config/nvim/init.vim'],
    \ ['bashrc', '~/.bashrc'],
    \ ['bash aliases', '~/.bash_aliases'],
    \ ['eb aliases', '~/.eb_aliases'],
    \ ['profile', '~/.profile'],
    \ ]
call denite#custom#var('menu', 'menus', s:menus)

The reproduce ways from neovim starting (Required!)

  1. Start neovim
  2. Hit <leader>m
  3. Select "edits"
  4. Select "nvim init.vim"
  5. init.vim opens for editing, but also see this ouput:
Error detected while processing function denite#helper#call_denite[12]..denite#start[10].._denite_start:
line    1:
[denite] Traceback (most recent call last):
[denite]   File "/Users/ethan/.vim/plugged/denite.nvim/rplugin/python3/denite/ui/default.py", line 64, in start
[denite]     self.input_loop()
[denite]   File "/Users/ethan/.vim/plugged/denite.nvim/rplugin/python3/denite/ui/default.py", line 228, in input_loop
[denite]     ret = func() if len(map_args) == 1 else func(arg)
[denite]   File "/Users/ethan/.vim/plugged/denite.nvim/rplugin/python3/denite/ui/default.py", line 275, in do_action
[denite]     self.quit_buffer()
[denite]   File "/Users/ethan/.vim/plugged/denite.nvim/rplugin/python3/denite/ui/default.py", line 165, in quit_buffer
[denite]     self.__vim.command('silent bdelete! ' + str(self.__bufnr))
[denite]   File "/usr/local/lib/python3.5/site-packages/neovim/api/nvim.py", line 216, in command
[denite]     return self.request('vim_command', string, **kwargs)
[denite]   File "/usr/local/lib/python3.5/site-packages/neovim/api/nvim.py", line 129, in request
[denite]     res = self._session.request(name, *args, **kwargs)
[denite]   File "/usr/local/lib/python3.5/site-packages/neovim/msgpack_rpc/session.py", line 98, in request
[denite]     raise self.error_wrapper(err)
[denite] neovim.api.nvim.NvimError: b'Vim(bdelete):E516: No buffers were deleted: silent bdelete! 2'
[denite] An error has occurred. Please execute :messages command.
Error detected while processing function denite#helper#call_denite[12]..denite#start:
line   10:
E171: Missing :endif
Press ENTER or type command to continue

HOWEVER, this works without error:

  1. start nvim
  2. Enter :Denite menu:edits
  3. Select "nvim init.vim"
  4. File opens, no problem

matcher_ignore_globs does not ignore files properly

Problems summary

Ignoring globs in file_rec source will still scan all the ignored globs and makes the whole search less performant.

Expected

The ignored globs should not be scanned at all.

Environment Information


health#nvim#check
========================================================================
## Configuration
  - SUCCESS: no issues found

## Performance
  - SUCCESS: Build type: RelWithDebInfo

## Remote Plugins
  - SUCCESS: Up to date

## terminfo
  - ERROR: key_backspace (kbs) entry is ^H (ASCII DELETE): key_backspace=^H,

    - SUGGESTIONS:
      - Set key_backspace to \177 (ASCII BACKSPACE). Run these commands:
          infocmp $TERM | sed 's/kbs=^[hH]/kbs=\\177/' > $TERM.ti
          tic $TERM.ti
      - See https://github.com/neovim/neovim/wiki/FAQ

health#provider#check
========================================================================
## Clipboard
  - SUCCESS: Clipboard tool found: pbcopy

## Python 2 provider
  - INFO: `g:python_host_prog` is not set.  Searching for python2 in the environment.
  - INFO: Executable: /usr/local/bin/python2
  - INFO: Python2 version: 2.7.12
  - INFO: python2-neovim version: 0.1.11
  - SUCCESS: Latest python2-neovim is installed: 0.1.11

## Python 3 provider
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/local/bin/python3
  - INFO: Python3 version: 3.5.2
  - INFO: python3-neovim version: 0.1.11
  - SUCCESS: Latest python3-neovim is installed: 0.1.11

## Ruby provider
  - SUCCESS: Found up-to-date neovim RubyGem
  - INFO: Ruby Version: ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
  - INFO: Host Executable: /Users/ohcibi/.rvm/gems/ruby-2.3.1/bin/neovim-ruby-host
  - INFO: Host Version: 0.3.1

Provide a minimal init.vim with less than 50 lines (Required!)

if &compatible
  set nocompatible               " Be iMproved
endif

" Required:
set runtimepath^=~/.vim/dein/repos/github.com/Shougo/dein.vim

" Required:
call dein#begin(expand('~/.vim/dein'))

" Let dein manage dein
" Required:
call dein#add('Shougo/dein.vim')
call dein#add('Shougo/denite.nvim')

" Required:
call dein#end()

" Required:
filetype plugin indent on

" If you want to install not installed plugins on startup.
if dein#check_install()
 call dein#install()
endif

call denite#custom#source('file_rec', 'matchers', ['matcher_fuzzy', 'matcher_ignore_globs'])
call denite#custom#filter('matcher_ignore_globs', 'ignore_globs',
      \ [ '*~', '*.o', '*.exe', '*.bak',
      \ '.DS_Store', '*.pyc', '*.sw[po]', '*.class',
      \ '.hg/', '.git/', '.bzr/', '.svn/',
      \ 'node_modules/', 'bower_components/', 'tmp/', 'log/', 'vendor/ruby',
      \ '.idea/', 'dist/',
      \ 'tags', 'tags-*'])

The reproduce ways from neovim starting (Required!)

I cloned this repository and run npm install: https://github.com/ember-cli/ember-cli. Can be tested with any directory that contains a rather large node_modules directory.

  1. Call :Denite file_rec
  2. Type something

With the ignore_globs matcher enabled typing will react very slowly and the total number of files that is displayed is the total number of files in the directory and not the total number of files after filtering out the ignored globs. In another project I even have the problem that scanning never stops. I cannot investigate why and I wasn't able to reproduce this with this smaller example.

It should be possible to completely ignore some globs as it is possible with ctrl-p

[SUGGESTION] Automatic Documenation

Hey Shougo,

I was thinking maybe there might be a way to generate some of the documentation for denite from the python files of the sources. Would you be interested in something like that? I could take a look at it if you would like. I have a couple ideas from some documentation generators I have seen in the past that are used with Python.

This would hopefully keep your documentation / help documents up-to-date with the latest source, without you having to spend the time updating the documentation.

Denite loses statusline after file preview

After previewing a candidate, Denite window stops updating statusline.

Notice the statusline change:
denite-file-preview

  • My window settings are set winwidth=50 winminwidth=8 winheight=13 winminheight=3

There should be support for actions that "do not hide the Denite window", currently only the preview action acts this way, but it would be great for other kind actions, like https://github.com/rafi/vim-denite-mpc when selecting a song, it would be nice to have denite stay open and "refresh".

Denite requires +v0.1.5

Problems summary

When I try to invoke :Denite I see error:

[denite] denite.nvim does not work with this version.
[denite] It requires Neovim +v0.1.5.

I have neovim instaled with homebrew. Ouput of :ve:

:ve
NVIM 0.1.5-dev
Build type: Dev
Compilation: /usr/local/Library/ENV/4.3/clang -Wconversion -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wvla -fstack-protector-strong -fdiagnostics-color=auto -
DINCLUDE_GENERATED_DECLARATIONS -DHAVE_CONFIG_H -I/tmp/neovim-20160716-56076-1kwwuog/build/config -I/tmp/neovim-20160716-56076-1kwwuog/src -I/tmp/neovim-20160716-56076-1kwwuog/deps-build/usr/include -I/tmp/neovim-20160716-56076-1kwwuog/de
ps-build/usr/include -I/tmp/neovim-20160716-56076-1kwwuog/deps-build/usr/include -I/tmp/neovim-20160716-56076-1kwwuog/deps-build/usr/include -I/tmp/neovim-20160716-56076-1kwwuog/deps-build/usr/include -I/tmp/neovim-20160716-56076-1kwwuog/
deps-build/usr/include -I/usr/local/opt/gettext/include -I/usr/include -I/usr/include -I/tmp/neovim-20160716-56076-1kwwuog/build/src/nvim/auto -I/tmp/neovim-20160716-56076-1kwwuog/build/include
Compiled by [email protected]

Optional features included (+) or not (-): +acl   +iconv    +jemalloc +tui
For differences from Vim, see :help vim-differences

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/local/Cellar/neovim/HEAD/share/nvim"

Expected

Display prompt.

Environment Information

Checking: Python 2
  Executable: /Users/pawel/.pyenv/versions/neovim2/bin/python
  Python Version: 2.7.12
  python-neovim Version: 0.1.9 (up to date)
  Messages:
    * Using: g:python_host_prog =
      "/Users/pawel/.pyenv/versions/neovim2/bin/python"

Checking: Python 3
  Executable: /Users/pawel/.pyenv/versions/neovim3/bin/python
  Python Version: 3.5.2
  python-neovim Version: 0.1.9 (up to date)
  Messages:
    * Using: g:python3_host_prog =
      "/Users/pawel/.pyenv/versions/neovim3/bin/python"

Checking: Ruby
  Ruby Version: ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
  Host Executable: not found
  Host Version: not found
  Messages:
    * Suggestion: Install the neovim RubyGem using `gem install neovim`.

Checking: Remote Plugins
  Status: Out of date
  Messages:
    * "denite.vim" is not registered.
    * Run :UpdateRemotePlugins

Neovim Python Diagnostic

Python versions visible to Neovim

Provide a minimal init.vim with less than 50 lines (Required!)

set nocompatible

set runtimepath+=~/.vim/bundle/denite.vim

filetype plugin indent on
syntax enable

let g:python_host_prog = $HOME.'/.pyenv/versions/neovim2/bin/python'
let g:python3_host_prog = $HOME.'/.pyenv/versions/neovim3/bin/python'

The reproduce ways from neovim starting (Required!)

  1. Run :Denite.

Generate a logfile if appropriate

Screen shot (if possible)

image

Upload the log file

Denite on narrow width window problem.

Problems summary

When Denite run on narrow width window, I can't see right side of denite candidates.
(ex. In IDE like vimfiler window splited in left pain, I often run Denite grep)

I worked arround by these changes.

diff --git a/rplugin/python3/denite/ui/default.py b/rplugin/python3/denite/ui/default.py
index 14fcfb1..541b3f4 100644
--- a/rplugin/python3/denite/ui/default.py
+++ b/rplugin/python3/denite/ui/default.py
@@ -71,7 +71,7 @@ class Default(object):
     def init_buffer(self):
         self.__winheight = int(self.__context['winheight'])

-        self.__vim.command('new denite | resize ' + str(self.__winheight))
+        self.__vim.command('new denite | resize ' + str(self.__winheight) + ' | winc K')

         self.__options = self.__vim.current.buffer.options
         self.__options['buftype'] = 'nofile'

Is there way to fix this problem?

Can't input '9' key.

Problems summary

I at the time of fuzzy search, can't input the '9' key.
When I press the '9' key, the cursor will move down(it looks like 'move_to_next_line' mapping has been executed)

Expected

That I can input '9' key.

Environment Information

Neovim Python Diagnostic

nothing. :version output instead.

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 13 2016 09:59:10)
MS-Windows 64-bit GUI version
Included patches: 1-3

Python versions visible to Neovim

:py3 print('sys.version') output is below.

3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)]

'python' info from /usr/local/bin/nvim

nothing

'python3' info from /usr/local/bin/nvim

nothing.

Python versions visible in the current shell

same is Python versions visible to Neovim.

Provide a minimal init.vim with less than 50 lines (Required!)

_vimrc is below.

set shellslash
filetype plugin indent on
let $MY_VIMRUNTIME = $VIM . "/vimfiles"

if &compatible
  set nocompatible
endif
let s:dein_dir = expand('$MY_VIMRUNTIME/dein')
let g:dein#install_log_filename = s:dein_dir . '/dein.log'
let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'
if &runtimepath !~# '/dein.vim'
  if !isdirectory(s:dein_repo_dir)
    execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir
  endif
  execute 'set runtimepath^=' . fnamemodify(s:dein_repo_dir, ':p')
endif
if dein#load_state(s:dein_dir)
  call dein#begin(s:dein_dir)
call dein#add('Shougo/dein.vim')
call dein#add('Shougo/denite.nvim')
call dein#end()
call dein#save_state()
endif
if dein#check_install()
  call dein#install()
endif

filetype plugin indent on

The reproduce ways from neovim starting (Required!)

  1. pre-installed python3.5, and set the PATH environment.
  2. Download kaoriya-vim.
    Vim — KaoriYa
  3. put the _vimrc same location as kaoriya-vim/gvim.exe.
  4. run 'gvim.exe'.
  5. run ':Denite file_rec' or command, buffer, line, etc.

Generate a logfile if appropriate

nothing.

Screen shot (if possible)

nothing.

Upload the log file

nothing.

Unable to set `empty` for `grep` source

Problems summary

Unable to set empty: 0 for grep source.

Expected

call denite#custom#option('grep', 'empty', 0)

When running :Denite grep and pressing twice Enter (leave empty), don't open Denite window.

Minimal init.vim

set nocompatible
set runtimepath+=~/.cache/vim/dein/repos/github.com/Shougo/dein.vim
filetype plugin indent on
syntax enable

call denite#custom#option('default', 'prompt', 'λ:')
call denite#custom#option('default', 'vertical_preview', 1)
call denite#custom#option('grep', 'empty', 0)
nnoremap <silent> ;g  :<C-u>Denite grep<CR>

Reproduce

  1. Add call denite#custom#option('grep', 'empty', 0) to configuration
  2. In Vim, run :Denite grep
  3. Press enter twice, leaving pattern empty

Denite window opens with empty candidates.

RFC: What do you think about relying on vim-rplugin for keeping Vim 8 compatibility?

Problems summary

Currently denite.vim support Vim 8 by extending vim module directly but

  • vim is shared to all plugins so once your approach got famous, there would be tons of variation of vim.call() implementations and each other will be conflict
  • vim.vars, vim.options or whatever returns bytes instead of str in Python 3 and it would cause Unicode encode/decode error

RFC

Recently I made vim-rplugin to solve all problems above.
So what do you think about relying on that plugin to support Vim 8? If you are OK with this idea, I will implement the feature sometime ;-)

Pros.

  • You can remove most of code for Vim 8 so the code become more simple
  • It wrap vim module rather than extend so that vim.call() always returns what you want.
  • It automatically decode bytes to str so you don't have to change codes for Neovim and Vim 8

Cons.

  • User who want to use denite.nvim in Vim 8 need to install lambdalisue/vim-rplugin as well.
  • Performance may decrease in Vim 8 while vim-rplugin use Proxy strategy

multiple key mappings not working

Hi,

Im trying to map jk to enter normal mode by adding the following mapping:

call denite#custom#map('insert', 'jk', 'enter_mode:normal')

However the mapping is not working. Changing it to a single key mapping works though.

Thanks,
A

I would like to help

I have been following you and your vim plugin development for some time, and I would like to help with this next project in any way that I can. Please let me know if there is anything I can do in the development or testing of this plugin.

[feature request] vertical preview

Would it be possible to implement a vertical preview option?

This was a really helpful feature with Unite's vertical_preview option, giving much more context around if the window is high enough. Example:

image

swapfile trouble when two denites in same workdir

Problems summary

denite creates swapfile, which creates problems when starting denite in new instance.

Start nvim and run :Denite file_rec. Leave it like that
Start another nvim (in the same workdir) and run :Denite file_rec, now swap file message. After making any choice

neovim.api.nvim.NvimError: b'Vim(new):E325: ATTENTION'

and denite fails

Expected

Denite is nofile buffer. No swapfile is created. Can run denite in two instances the same time in the same workdir without problems.

Environment Information

Neovim Python Diagnostic

Python versions visible to Neovim

python 3.5.2
python-client 0.1.9

Provide a minimal init.vim with less than 50 lines (Required!)

nvim -u NORC --cmd "set rtp+=/home/bjorn/config/vim/bundle/denite.nvim/"

error after launch macvim in terminal

i solve the original problem myself.
so said said another:
call denite#custom#filter('matcher_ignore_globs', '{variable_name}',['*.bak'])
what is the variable_name should i write?

Error when pressing <C-c> to quit

Problem summary

When I press <C-c> (Control + C) to quit Denite, it gives me an error instead of quiting

image

Expected

I expect Denite to quit.

Environment Information

  • OS:
    VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 13 2016 09:59:10)
    MS-Windows 64-bit GUI version
    Included patches: 1-3
" Your minimal init.vim
set runtimepath+=~/.vim/bundle/repos/github.com/Shougo/denite.nvim/

The reproduce ways from gVim

  1. Start gVim
  2. Start denite with any source, for example ":Denite line"
  3. Press <C-c> to attempt to quit denite

Thank you!

Keep up the amazing work Shougo! I love all of your plugins, and I'm looking forward to Vim8 support for deoplete and the other dark-powered plugins.

Error when interacting with menus and submenus

Problems summary

When interacting with submenus, canceling (hitting q in normal mode) or validating (hitting ) on the right item outputs an error message and execute the command successfully.

Expected

There shouldn't be an error.

Environment Information

## Neovim Python Diagnostic

- Neovim Version: NVIM v0.1.6

health#deoplete#check
========================================================================
## deoplete.nvim
  - SUCCESS: has("nvim") was successful
  - SUCCESS: has("python3") was successful
  - INFO: If you're still having problems, try the following commands:
    $ export NVIM_PYTHON_LOG_FILE=/tmp/log
    $ export NVIM_PYTHON_LOG_LEVEL=DEBUG
    $ nvim
    $ cat /tmp/log_{PID}
    and then create an issue on github

health#nvim#check
========================================================================
## Configuration
  - SUCCESS: no issues found

## Performance
  - SUCCESS: Build type: RelWithDebInfo

## Remote Plugins
  - SUCCESS: Up to date

## terminfo
  - INFO: key_backspace terminfo entry: key_backspace=\177,

health#provider#check
========================================================================
## Python 2 provider
  - INFO: `g:python_host_prog` is not set.  Searching for python2 in the environment.
  - INFO: Executable: /usr/bin/python2
  - INFO: Python2 version: 2.7.12
  - INFO: python2-neovim Version: 0.1.10
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Python 3 provider
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/bin/python3
  - INFO: Python3 version: 3.5.2
  - INFO: python3-neovim Version: 0.1.10
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Ruby provider
  - SUCCESS: Found up-to-date neovim RubyGem
  - INFO: Ruby Version: ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
  - INFO: Host Executable: /usr/bin/neovim-ruby-host
  - INFO: Host Version: 0.3.1


Provide a minimal init.vim with less than 50 lines (Required!)

" Your minimal init.vim
set runtimepath+=~/path/to/denite.nvim/


call dein#begin(expand('~/.config/nvim/dein/'))
call dein#add('Shougo/dein.vim')
call dein#add('Shougo/denite.nvim')
call dein#end()
filetype plugin indent on       " Indent and plugins by filetype

let s:menus = {}
let s:menus.vim = {
    \ 'description': 'Vim',
    \ }
let s:menus.vim.file_candidates = [
    \ ['    > Edit configuation file (init.vim)', '~/.config/nvim/init.vim']
    \ ]
call denite#custom#var('menu', 'menus', s:menus)

The reproduce ways from neovim starting (Required!)

1.Open neovim
2. :Denite menu
3. Enter ("click on vim")
4. Either q OR Enter (Cancel or validate)

Note the openning with :Denite menu:vim does not trigger this error:

Erreur détectée en traitant function denite#helper#call_denite[12]..denite#start[15].._denite_start :
ligne    1 :
[denite] Traceback (most recent call last):
[denite]   File "/home/etienne/.config/nvim/dein/.dein/rplugin/python3/denite/ui/default.py", line 68, in start
[denite]     self.input_loop()
[denite]   File "/home/etienne/.config/nvim/dein/.dein/rplugin/python3/denite/ui/default.py", line 322, in input_loop
[denite]     ret = func() if len(map_args) == 1 else func(arg)
[denite]   File "/home/etienne/.config/nvim/dein/.dein/rplugin/python3/denite/ui/default.py", line 376, in do_action
[denite]     self.quit_buffer()
[denite]   File "/home/etienne/.config/nvim/dein/.dein/rplugin/python3/denite/ui/default.py", line 252, in quit_buffer
[denite]     self.__vim.command('silent bdelete! ' + str(self.__bufnr))
[denite]   File "/usr/lib/python3.5/site-packages/neovim/api/nvim.py", line 216, in command
[denite]     return self.request('vim_command', string, **kwargs)
[denite]   File "/usr/lib/python3.5/site-packages/neovim/api/nvim.py", line 129, in request
[denite]     res = self._session.request(name, *args, **kwargs)
[denite]   File "/usr/lib/python3.5/site-packages/neovim/msgpack_rpc/session.py", line 98, in request
[denite]     raise self.error_wrapper(err)
[denite] neovim.api.nvim.NvimError: b"Vim(bdelete):E516: Aucun tampon n'a \xc3\xa9t\xc3\xa9 effac\xc3\xa9: silent bdelete! 2"
[denite] An error has occurred. Please execute :messages command.

Generate a logfile if appropriate

  1. export NVIM_PYTHON_LOG_FILE=/tmp/log
  2. export NVIM_PYTHON_LOG_LEVEL=DEBUG
  3. nvim -u minimal.vimrc
  4. some works
  5. cat /tmp/log_{PID}

Screen shot (if possible)

Upload the log file

http://pastebin.com/QRHgphgv

when split, nvim said 'Invalid action'

Problems summary

when split action, flash some message (I guess it '[denite] Invalid action: split'), and cannot split buffer.

Expected

Environment Information

health#deoplete#check
========================================================================
## deoplete.nvim
  - SUCCESS: has("nvim") was successful
  - SUCCESS: has("python3") was successful
  - INFO: If you're still having problems, try the following commands:
    $ export NVIM_PYTHON_LOG_FILE=/tmp/log
    $ export NVIM_PYTHON_LOG_LEVEL=DEBUG
    $ nvim
    $ cat /tmp/log_{PID}
    and then create an issue on github

health#nvim#check
========================================================================
## Configuration
  - SUCCESS: no issues found

## Performance
  - SUCCESS: Build type: RelWithDebInfo

## Remote Plugins
  - SUCCESS: Up to date

## terminfo
  - ERROR: key_backspace (kbs) entry is ^H (ASCII DELETE): key_backspace=^H,

    - SUGGESTIONS:
      - Set key_backspace to \177 (ASCII BACKSPACE). Run these commands:
          infocmp $TERM | sed 's/kbs=^[hH]/kbs=\\177/' > $TERM.ti
          tic $TERM.ti
      - See https://github.com/neovim/neovim/wiki/FAQ

## tmux
  - SUCCESS: escape-time: 1ms
  - INFO: $TERM: xterm-256color
  - ERROR: $TERM should be "screen-256color" or "tmux-256color" when running tmux.
    - SUGGESTIONS:
      - Set default-terminal in ~/.tmux.conf:
          set-option -g default-terminal "screen-256color"
      - See https://github.com/neovim/neovim/wiki/FAQ

health#provider#check
========================================================================
## Clipboard
  - SUCCESS: Clipboard tool found: lemonade

## Python 2 provider
  - INFO: `g:python_host_prog` is not set.  Searching for python2 in the environment.
  - INFO: There are multiple python2 executables found.  Set "g:python_host_prog" to avoid surprises.
  - INFO: Executable: /home/ichiro.matsunaga/.linuxbrew/bin/python2
  - INFO: Other python executable: /usr/bin/python2
  - INFO: Python2 version: 2.7.11
  - INFO: python2-neovim Version: 0.1.8
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Python 3 provider
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/bin/python3
  - INFO: Python3 version: 3.4.3
  - INFO: python3-neovim Version: 0.1.10
  - SUCCESS: Latest Neovim Python client is installed: (outdated)

## Ruby provider
  - ERROR: Missing Neovim RubyGem
    - SUGGESTIONS:
      - Install or upgrade the neovim RubyGem using `gem install neovim`.
  - INFO: Ruby Version: ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux]
  - INFO: Host Executable: not found
  - INFO: Host Version: not found
  • How To Install
    via ubuntu ppa.
deb http://ppa.launchpad.net/neovim-ppa/unstable/ubuntu wily main

Provide a minimal init.vim with less than 50 lines (Required!)

I cannot narrow down.
this is my .vimrc https://github.com/vikke/config/blob/beaac07bf6768263f0cc9005aee85373ab421608/.vimrc#L317

Screen shot (if possible)

trying to split.

cannot_split

:message

message

Upload the log file

tabopen action not working

Problems summary

Unable to open file in new tab. When I invoke denite with Denite -default-action=tabopen file_rec and hit <CR> on a line, nothing happens. If I enter normal mode and attempt to press t to do_action:tabopen, nothing happens.

If I invoke without the default-action, everything works as expected and denite opens the file in the current window.

Environment Information

  • OS: OS X 10.11.6

  • nvim-python-doctor result or :CheckHealth result(neovim ver.0.1.5-452+):

health#nvim#check
========================================================================
## Configuration
  - SUCCESS: no issues found

## Performance
  - SUCCESS: Build type: RelWithDebInfo

## Remote Plugins
  - SUCCESS: Up to date

## terminfo
  - INFO: key_backspace terminfo entry: key_backspace=\177,

health#provider#check
========================================================================
## Clipboard
  - SUCCESS: Clipboard tool found: pbcopy

## Python 2 provider
  - INFO: `g:python_host_prog` is not set.  Searching for python2 in the environment.
  - INFO: Executable: /usr/local/bin/python2
  - INFO: Python2 version: 2.7.10
  - INFO: python2-neovim Version: 0.1.11
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Python 3 provider
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/local/bin/python3
  - INFO: Python3 version: 3.5.2
  - INFO: python3-neovim Version: 0.1.11
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Ruby provider
  - SUCCESS: Found up-to-date neovim RubyGem
  - INFO: Ruby Version: ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
  - INFO: Host Executable: /usr/local/bin/neovim-ruby-host
  - INFO: Host Version: 0.3.1

## Neovim Python Diagnostic

- Neovim Version: NVIM v0.2.0-52-g0213e99

## Python versions visible to Neovim

### 'python' info from /usr/local/bin/nvim

WARN: 'g:python_host_prog' is not set
WARN: Fallback to '/usr/bin/python'
**Python Version**: `Python 3.5.1`
**Neovim Package Version**: `neovim (0.1.7)
neovim-gui (0.1.2)
neovim-remote (1.1.3)`

### 'python3' info from /usr/local/bin/nvim

WARN: 'g:python3_host_prog' is not set
WARN: Fallback to '/usr/bin/python3'
**Python Version**: `Python 3.5.1`
**Neovim Package Version**: `neovim (0.1.7)
neovim-gui (0.1.2)
neovim-remote (1.1.3)`

## Python versions visible in the current shell

- **python** version: `Python 3.5.1`
  - **neovim** version: `neovim (0.1.7)
neovim-gui (0.1.2)
neovim-remote (1.1.3)`
- **python3** version: `Python 3.5.1`
  - **neovim** version: `neovim (0.1.7)
neovim-gui (0.1.2)
neovim-remote (1.1.3)`

Provide a minimal init.vim with less than 50 lines (Required!)

call plug#begin('~/.config/nvim/plugged')
Plug 'Shougo/denite.nvim', { 'do': ':UpdateRemotePlugins'  }
call plug#end()

filetype plugin indent on
syntax enable

call denite#custom#var('file_rec', 'command',
	\ ['ag', '--follow', '--nocolor', '--nogroup', '--hidden', '-g', ''])

call denite#custom#map('insert', '<C-j>', 'move_to_next_line')
call denite#custom#map('insert', '<C-k>', 'move_to_prev_line')

nnoremap <leader>e :Denite file_rec<CR>
nnoremap <leader>t :Denite -default-action=tabopen file_rec<CR>

The reproduce ways from neovim starting (Required!)

  1. Run Denite -default-action=tabopen file_rec
  2. Select a file and press <CR>
  3. Nothing happens

Screen shot (if possible)

https://d3vv6lp55qjaqc.cloudfront.net/items/0P0y0M1r002O2t071K0I/Screen%20Recording%202016-11-14%20at%2010.56%20AM.gif?X-CloudApp-Visitor-Id=143137

Feature request: Python2 compatibility

Many of the plugins I use are python2-only. I have vim8 installed, but compiled without py3 support because py3 caused breakage. How hard would it be to provide py2 compatibility ? I could even contribute if this is a manpower issue.
Thanks !

how can i change default glob of matcher_ignore_globs

First, thank you for the great plugin. I try to change the default glob of matcher_ignore_globs by writing below in init.vim:

if dein#tap('denite.nvim')
  nnoremap <leader>gd :<C-u>Denite
  call denite#custom#source(
  \ 'file_rec', 'matchers', ['matcher_fuzzy', 'matcher_ignore_globs'])
  call denite#custom#filter('matcher_ignore_globs', 'ignore_globs',
        \ [
        \ '.git/', '.ropeproject/', '__pycache__/',
        \ 'venv/',
        \ 'images/',
        \ '*.min.*',
        \ 'img/', 'fonts/'])
endif

but it seems not work. how can i set my ignore_globs of matcher_ignore_globs for file_rec?

buffer source is slow

buffer source is really slow, wondering if it could be speeded up by caching the buffers when these are created.

Thanks

*denite-kind-file* duplicated in doc/denite.txt

In doc/denite.txt, *denite-kind-file* tag duplicated.

Following error occured at updating denite by dein.

[dein] Error generating helptags:
[dein] Vim(helptags):E154: タグ "denite-kind-file" がファイル /Users/pocari/.cache/dein/.cache/init.vim/.dein/doc/denite.txt に重複しています
[dein] function dein#install[1]..dein#install#_update[54]..<SNR>11_install_blocking[11]..<SNR>11_done[7]..dein#install#_recache_runtimepath[20]..<SNR>11_helptags, 行 12

vim-airline extension

Problems summary

Hi there!

So I'm looking to create a new airline extension for denite, based on the extension for unite.vim.

https://github.com/vim-airline/vim-airline/blob/master/autoload/airline/extensions/unite.vim

But it seems there are a few missing APIs that are required .

Mostly:

  • unite_force_overwrite_statusline for denite
  • a get_status_string() function
  • a get_context() function.

I would like to help out where I can, but would like to get your thoughts on what the best approach would be for adding such features.

"Denite grep", quote required?

Warning: I will close the issue without the minimal init.vim and the reproduce ways.

Problems summary

In Denite grep, Using search word separated space, error has occured in process.py

test.txt contents is

Dark powered for Nvim
Dark powered for Vim8

and I run Denite grep , entered dark powerd.

I logged the arguments passed to subprocess.Popen in Process#__init__.
and I run it on IPython repl.

So, following error.

In [9]: command2
Out[9]: ['grep', '-inH', '-r', '--', 'dark', 'powered', '.']

In [10]: subprocess.Popen(command2)
Out[10]: grep: powered: No such file or directory
./test.txt:1:Dark powered for Nvim
./test.txt:2:Dark powered for Vim8
<subprocess.Popen at 0x10f811048>

use only dark, ignored powered.

If I enterd 'dard powered', Arguments passed to subprocess.Popen is ['grep', '-inH', '-r', '--', 'dark powered', '.']

In [4]: command
Out[4]: ['grep', '-inH', '-r', '--', 'dark powered', '.']

In [5]: subprocess.Popen(command)
./test.txt:1:Dark powered for Nvim
./test.txt:2:Dark powered for Vim8
Out[5]: <subprocess.Popen at 0x10e639d30>

It seems good.

Expected

Input patterns should be quoted automatically(?)

Provide a minimal init.vim with less than 50 lines (Required!)

test_vimrc

let s:dein_dir = expand('~/.cache/dein2')
let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'

if &runtimepath !~# '/dein.vim'
  if !isdirectory(s:dein_repo_dir)
    execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir
  endif
  execute 'set runtimepath^=' . fnamemodify(s:dein_repo_dir, ':p')
endif

call dein#begin(s:dein_dir)

call dein#add('Shougo/denite.nvim')

call dein#end()
call dein#save_state()

if dein#check_install()
  call dein#install()
endif

The reproduce ways from neovim starting (Required!)

% cat test.txt
Dark powered for Nvim
Dark powered for Vim8

nvim -u test_vimrc

:Denite grep
dark powered

Denite directory_rec doesn't work in second time.

Problems summary

Denite directory_rec doesn't work in second time.(no candidates found)

Expected

It is necessary to search the same result as the first time.

Environment Information

  • OS: macOS

  • nvim-python-doctor result or :CheckHealth result(neovim ver.0.1.5-452+):

health#nvim#check
========================================================================
## Configuration
  - SUCCESS: no issues found

## Performance
  - SUCCESS: Build type: RelWithDebInfo

## Remote Plugins
  - WARNING: ".dein" is not registered.
  - WARNING: Out of date
    - SUGGESTIONS:
      - Run `:UpdateRemotePlugins`

## terminfo
  - ERROR: key_backspace (kbs) entry is ^H (ASCII DELETE): key_backspace=^H,
    - SUGGESTIONS:
      - Set key_backspace to \177 (ASCII BACKSPACE). Run these commands:
          infocmp $TERM | sed 's/kbs=^[hH]/kbs=\\177/' > $TERM.ti
          tic $TERM.ti
      - See https://github.com/neovim/neovim/wiki/FAQ

## tmux
  - SUCCESS: escape-time: 10ms
  - INFO: $TERM: screen-256color

health#provider#check
========================================================================
## Clipboard
  - SUCCESS: Clipboard tool found: pbcopy

## Python 2 provider
  - INFO: `g:python_host_prog` is not set.  Searching for python2 in the environment.
  - INFO: Executable: /usr/local/bin/python2
  - INFO: Python2 version: 2.7.12
  - INFO: python2-neovim Version: 0.1.9
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Python 3 provider
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/local/bin/python3
  - INFO: Python3 version: 3.5.2
  - INFO: python3-neovim Version: 0.1.10
  - SUCCESS: Latest Neovim Python client is installed: (outdated)

## Ruby provider
  - SUCCESS: Found up-to-date neovim RubyGem
  - INFO: Ruby Version: ruby 2.4.0preview2 (2016-09-09 trunk 56129) [x86_64-darwin15]
  - INFO: Host Executable: /Users/pocari/.rbenv/shims/neovim-ruby-host
  - INFO: Host Version: 0.3.1

Neovim Python Diagnostic

  • Neovim Version: NVIM v0.2.0-52-g0213e99

Provide a minimal init.vim with less than 50 lines (Required!)

let s:dein_dir = expand('~/.cache/dein2')
let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'

if &runtimepath !~# '/dein.vim'
  if !isdirectory(s:dein_repo_dir)
    execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir
  endif
  execute 'set runtimepath^=' . fnamemodify(s:dein_repo_dir, ':p')
endif

call dein#begin(s:dein_dir)

call dein#add('Shougo/denite.nvim')

call dein#end()
call dein#save_state()

if dein#check_install()
  call dein#install()
endif

The reproduce ways from neovim starting (Required!)

% find . -type d
.
./a
./a/b
./a/b/c
./a/x
./a/z

% nvim -u test_vimrc
  1. run Denite
    :Denite directory_rec

    first time is working. candidates is below.

    /private/tmp/denite/
    /private/tmp/denite/a/
    /private/tmp/denite/a/b/
    /private/tmp/denite/a/b/c/
    /private/tmp/denite/a/x/
    /private/tmp/denite/a/z/
    
  2. end Denite
    <ESC>

  3. run Denite again

    :Denite directory_rec

    no candidates were found.

[feature request] cursor movement in cmdline

I just create a chart plugin, here is the picture;
vim-qq
it support move cursor by <left> and <right>;
the main viml code of this feature is

let s:promot_base = '>>>'
let s:promot_l = ''
let s:promot_c = ''
let s:promot_r = ''
fu! Test()
    call s:buildPromot()
    while get(s:, 'quilt', 0) ==0
            let nr = getchar()
            if nr = 9
                 " mean you type `<enter>` then do something with the str
            elseif nr = "\<Right>"
                 let s:promot_l = s:promot_l . s:promot_c
                 let s:promot_c = matchstr(s:promot_r, '^.')
                 let s:promot_r = substitute(s:promot_r, '^.', '', 'g') 
            elseif nr = "\<Left>"
                if s:promot_l !=# ''
                      let s:promot_r = s:promot_c . s:promot_r
                      let s:promot_c = matchstr(s:promot_l, '.$')
                      let s:promot_l = substitute(s:promot_l, '.$', '', 'g')
                endif
           endif
           call s:buildPromot()
      endwhile
endf

fu! s:buildPromot()
     redraw!
     echohl Comment | echon s:promot_ebase
     echohl None | echon s:promot_l
     echohl Wildmenu | echon s:promot_c
     echohl None | echon s:promot_r
endf

I do not use python, so I can not send the PR, I am not sure denite use the same func to build cmdline.

error is occured when using <denite:move_to_prev_line>

Problems summary

Error is occured when using denite:move_to_prev_line


health#nvim#check
========================================================================
## Configuration
  - SUCCESS: no issues found

## Performance
  - SUCCESS: Build type: RelWithDebInfo

## Remote Plugins
  - SUCCESS: Up to date

## terminfo
  - ERROR: key_backspace (kbs) entry is ^H (ASCII DELETE): key_backspace=^H,

    - SUGGESTIONS:
      - Set key_backspace to \177 (ASCII BACKSPACE). Run these commands:
          infocmp $TERM | sed 's/kbs=^[hH]/kbs=\\177/' > $TERM.ti
          tic $TERM.ti
      - See https://github.com/neovim/neovim/wiki/FAQ

## tmux
  - SUCCESS: escape-time: 1ms
  - INFO: $TERM: xterm-256color
  - ERROR: $TERM should be "screen-256color" or "tmux-256color" when running tmux.
    - SUGGESTIONS:
      - Set default-terminal in ~/.tmux.conf:
          set-option -g default-terminal "screen-256color"
      - See https://github.com/neovim/neovim/wiki/FAQ

health#provider#check
========================================================================
## Clipboard
  - SUCCESS: Clipboard tool found: lemonade

## Python 2 provider
  - INFO: `g:python_host_prog` is not set.  Searching for python2 in the environment.
  - INFO: There are multiple python2 executables found.  Set "g:python_host_prog" to avoid surprises.
  - INFO: Executable: /home/ichiro.matsunaga/.linuxbrew/bin/python2
  - INFO: Other python executable: /usr/bin/python2
  - INFO: Python2 version: 2.7.11
  - INFO: python2-neovim Version: 0.1.11
  - SUCCESS: Latest Neovim Python client is installed: (outdated)

## Python 3 provider
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/bin/python3
  - INFO: Python3 version: 3.4.3
  - INFO: python3-neovim Version: 0.1.11
  - SUCCESS: Latest Neovim Python client is installed: (outdated)

## Ruby provider
  - ERROR: Missing Neovim RubyGem
    - SUGGESTIONS:
      - Install or upgrade the neovim RubyGem using `gem install neovim`.
  - INFO: Ruby Version: ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux]
  - INFO: Host Executable: not found
  - INFO: Host Version: not found

Provide a minimal init.vim with less than 50 lines (Required!)

if &compatible
      set nocompatible
endif
set runtimepath+=~/.vim/dein/repos/github.com/Shougo/dein.vim
call dein#begin(expand('~/.vim/dein'))
call dein#add('Shougo/dein.vim')
call dein#add('Shougo/denite.nvim')
call dein#end()
filetype plugin indent on

call denite#custom#var('file_rec', 'command', ['denite_file_list.sh'])
call denite#custom#source('file_rec', 'matchers', ['matcher_fuzzy', 'matcher_project_files'])

nnoremap <silent> ff :Denite file_rec<CR>
call denite#custom#map('insert', '<C-p>', '<denite:move_to_prev_line>', 'noremap')
call denite#custom#map('insert', '<C-n>', '<denite:move_to_next_line>', 'noremap')

The reproduce ways from neovim starting (Required!)

  1. $ nvim
  2. ff in normal mode
  3. C-n
  4. C-p <- error is occured

Screen shot (if possible)

vim_error

Upload the log file

log.zip

File paths relative to the project root

The search results in Denite file_rec show absolute paths. How can we make it shorter so that the file paths are relative to the project root? By project root, I meant the directory in which vim is opened.

RFC: Ctrl+n/Ctrl+p or Up/Down keys conflict with command-line history behaviour

I'm wondering to improve the denite.nvim prompt by coping a corresponding codes from prompt.nvim (To be honest, I would like to rely rather than copy while prompt.nvim is under development but I thought you feel copy is better because of #23).

Once prompt.nvim is forked into denite.nvim, the denite.nvim prompt would have the following features

  • Caret movement by <Left> and <Right>
  • Delete character before/under the caret (e.g. <Backspace> / <Delete>)
  • Paste text from register after the caret (e.g. <C-r>+)
  • Use a candidate of command-line history (e.g. <C-p>)
  • Use a matched candidate of command-line history (e.g. <Up>)
  • Custom key mappings (e.g. Use <C-f> to move the caret left)

However, currently denite.nvim uses <C-n>/<C-p> or <Up>/<Down> to select candidate.
This behaviour conflicts with Vim's default command-line behaviour :-(

So I would like to propose to change the default mapping for selecting candidate to <C-t>/<C-g> like Vim's incsearch behaviour (doc).
As long as users can custom mappings, I feel that default mappings should follow Vim flavour.
What do you think about this?

Example

You can custom key mappings by something like

let g:prompt#custom_mapping = [
      \ ["<C-D>", "<Del>"],
      \ ["<C-A>", "<Home>"],
      \ ["<C-E>", "<End>"],
      \ ["<C-F>", "<Left>"],
      \ ["<C-B>", "<Right>"],
      \ ["<C-P>", "<C-T>", 1],  " 1 means 'noremap'
      \ ["<C-N>", "<C-G>", 1],
      \]

"Denite buffer" switched other window instead of current window.

Problems summary

opend three files(e.g a.txt, b.txt, c.txt), and current window state is below figure.

+----------------+
|        |       |
| b.txt  | a.txt |
|        |       |
+----------------+

In a.txt window, I run Denite buffer, and selected c.txt.
window state was below. and the cursor was in c.txt window.

+----------------+
|        |       |
| c.txt  | a.txt |
|        |       |
+----------------+

Expected

+----------------+
|        |       |
| b.txt  | c.txt |
|        |       |
+----------------+

Environment Information

health#nvim#check
================================================================================
## Remote Plugins
  - SUCCESS: Up to date

## tmux configuration
  - SUCCESS: escape-time = 10ms

## terminfo
  - ERROR: key_backspace (kbs) entry is ^H (ASCII DELETE): key_backspace=^H,

    - SUGGESTIONS:
      - Set key_backspace to \177 (ASCII BACKSPACE). Run these commands:
          infocmp $TERM | sed 's/kbs=^[hH]/kbs=\\177/' > $TERM.ti
          tic $TERM.ti
      - See https://github.com/neovim/neovim/wiki/FAQ

health#provider#check
================================================================================
## Python 2 provider
  - INFO: `g:python_host_prog` is not set.  Searching for python2 in the environment.
  - INFO: Executable: /usr/local/bin/python2
  - INFO: Python2 version: 2.7.12
  - INFO: python2-neovim Version: 0.1.9
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Python 3 provider
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/local/bin/python3
  - INFO: Python3 version: 3.5.2
  - INFO: python3-neovim Version: 0.1.10
  - SUCCESS: Latest Neovim Python client is installed: (up to date)

## Ruby provider
  - SUCCESS: Found up-to-date neovim RubyGem
  - INFO: Ruby Version: ruby 2.4.0preview2 (2016-09-09 trunk 56129) [x86_64-darwin15]
  - INFO: Host Executable: /Users/pocari/.rbenv/shims/neovim-ruby-host
  - INFO: Host Version: 0.3.1

Neovim Python Diagnostic

  • Neovim Version: NVIM v0.1.6-257-g5bcb7aa

Provide a minimal init.vim with less than 50 lines (Required!)

% ls
a.txt       b.txt       c.txt       test_vimrc

test_vimrc

let s:dein_dir = expand('~/.cache/dein2')
let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'

if &runtimepath !~# '/dein.vim'
  if !isdirectory(s:dein_repo_dir)
    execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir
  endif
  execute 'set runtimepath^=' . fnamemodify(s:dein_repo_dir, ':p')
endif

if dein#load_state(s:dein_dir)
  call dein#begin(s:dein_dir)

  call dein#add('Shougo/denite.nvim')

  call dein#end()
  call dein#save_state()
endif

if dein#check_install()
  call dein#install()
endif

The reproduce ways from neovim starting (Required!)

  1. vim -u test_vimrc a.txt b.txt c.txt
  2. :vsp b.txt
  3. Ctr-W l (move a.txt window)
  4. :Denite buffer and select c.txt

need help

hi, this is not a issue. i need help info that migrate from unite to denite.
i look into the help file before i open this issue.
1.how can i ignore some file types in file_rec and grep source?
2.does file_rec and grep accept a variable as directory parameter? for instance:
i write a function GetGitDir() and it return the gitdir in .vimrc, i hope to use it as
:Denite file_rec:`GetGitDir()` in vimrc.
3.about the denite#custom#var and denite#custom#source?what 's the difference? i saw both of them has a source like grep or file_rec parameter.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.