wincent / command-t

⌨️ Fast file navigation for Neovim and Vim
BSD 2-Clause "Simplified" License
2.74k stars 317 forks source link

Unable to hide signcolumn on first run of command-t. #376

Closed codybuell closed 3 years ago

codybuell commented 3 years ago

Trying to figure out a way to set signcolumn=no in the command-t window. I have signcolumn=yes set by default and am using an autocommand to disable if the new window is command-t. This does the trick but only after the first time command-t is opened. If I broaden the autocommand to not check for filetype then it will work on the first command-t call but all new buffers / windows have the signcolumn disabled too. Have also tried adding setlocal signcolumn=no in ftplugin/command-t.vim with no luck. Any ideas?

" autocommand in question, works on second opening of command-t window
au BufWinEnter * if &l:filetype ==? 'command-t' | setlocal signcolumn=no nonu nornu | endif
" this also has the same effect, doesn't work on first call of CommandT
au BufWinEnter * if commandt#CheckBuffer(bufnr('%')) | setlocal signcolumn=no nonu nornu |endif

command-t_signcolumn

Version info

``` ~ $ cd .vim/pack/bundle/opt/command-t; git log --format="%H" -n 1 ea7a889bda2849ba87fc12053bf6dd14467d7b72 ~ $ ~ $ nvim --version NVIM v0.5.0-dev+nightly-406-gc1fbc2ddf Build type: Release LuaJIT 2.1.0-beta3 Compilation: clang -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNDEBUG -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/tmp/neovim-20210301-48181-11rfrks/build/config -I/tmp/neovim-20210301-48181-11rfrks/src -I/usr/local/include -I/usr/local/opt/luv/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/usr/local/opt/gettext/include -I/tmp/neovim-20210301-48181-11rfrks/build/src/nvim/auto -I/tmp/neovim-20210301-48181-11rfrks/build/include Compiled by pbuell@ip-10-14-252-38.ec2.internal Features: +acl +iconv +tui See ":help feature-compile" system vimrc file: "$VIM/sysinit.vim" fall-back for $VIM: "/usr/local/Cellar/neovim/HEAD-c1fbc2d_1/share/nvim" Run :checkhealth for more info ~ $ ~ $ tmux -V tmux 3.2-rc2 ~ $ ~ $ ruby -v ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20] ~ $ ~ $ nvim +CheckHealth health#nvim#check ======================================================================== ## Configuration - OK: no issues found ## Performance - OK: Build type: Release ## Remote Plugins - OK: Up to date ## terminal - INFO: key_backspace (kbs) terminfo entry: key_backspace=^H - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~ - INFO: $TERM_PROGRAM='tmux' - INFO: $COLORTERM='truecolor' ## tmux - OK: escape-time: 0 - INFO: Checking stuff - OK: focus-events: on - INFO: $TERM: tmux-256color health#provider#check ======================================================================== ## Clipboard (optional) - OK: Clipboard tool found: pbcopy ## Python 2 provider (optional) - INFO: `g:python_host_prog` is not set. Searching for python2 in the environment. - INFO: Executable: /usr/bin/python2 - INFO: Python version: 2.7.16 - INFO: pynvim version: 0.4.3 - OK: Latest pynvim is installed. ## Python 3 provider (optional) - INFO: `g:python3_host_prog` is not set. Searching for python3 in the environment. - INFO: Multiple python3 executables found. Set `g:python3_host_prog` to avoid surprises. - INFO: Executable: /usr/local/bin/python3 - INFO: Other python executable: /usr/bin/python3 - INFO: Python version: 3.9.2 - INFO: pynvim version: 0.4.3 - OK: Latest pynvim is installed. ## Python virtualenv - OK: no $VIRTUAL_ENV ## Ruby provider (optional) - INFO: Ruby: ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20] - INFO: Host: /usr/local/bin/neovim-ruby-host - OK: Latest "neovim" gem is installed: 0.8.1 ## Node.js provider (optional) - INFO: Node.js: v12.18.4 - INFO: Nvim node.js host: /Users/pbuell/.nvm/versions/node/v12.18.4/lib/node_modules/neovim/bin/cli.js - OK: Latest "neovim" npm/yarn package is installed: 4.9.0 ## Perl provider (optional) - ERROR: perl provider error: - ADVICE: - "Neovim::Ext" cpan module is not installed ```

Minimal config from screen capture

```vim " ~/.devimrc.vim set rtp-=~/.vim set rtp-=~/.vim/after set rtp-=~/.config/nvim set rtp-=~/.config/nvim/after set rtp^=$VIMDEVPATH set rtp+=$VIMDEVPATH/after set vif=NONE set sdf=NONE set gcr= filetype plugin indent on syntax enable set signcolumn=yes nu rnu au BufWinEnter * if &l:filetype ==? 'command-t' | setlocal signcolumn=no nonu nornu | endif ``` ```bash VIMDEVPATH=~/.vim/pack/bundle/opt/command-t nvim -Nu ~/.devimrc.vim ```

shivanshukmr commented 3 years ago

Try using this:

augroup commandt
  autocmd!
  autocmd User CommandTWillShowMatchListing set signcolumn=no
  autocmd User CommandTDidHideMatchListing set signcolumn=yes
augroup END
codybuell commented 3 years ago

@shivanshukmr That works but has the side effect of toggling the main window's sign column.

wincent commented 3 years ago

I think it should probably be off in the match window by default, like we already do for a bunch of other settings (see also Settings). It's a window-local setting, so I don't think it should be too problematic to add to the list.

wincent commented 3 years ago

@codybuell: can you try out this change and see if it works for you?

It works in my very light testing, but I am a signcolumn=auto user, so I am not a heavy user of that feature.

codybuell commented 3 years ago

@wincent that works, thanks!