Maximus5 / ConEmu

Customizable Windows terminal with tabs, splits, quake-style, hotkeys and more
https://conemu.github.io/
BSD 3-Clause "New" or "Revised" License
8.59k stars 572 forks source link

Escape Sequences generated for Mouse Scrolling #1007

Closed erichiller closed 7 years ago

erichiller commented 7 years ago

ConEmu build: 161206x64 OS version: Windows 10x64 Powershell, and vim launched directly.

Problem description

I have been trying to get Scrolling (via the mouse scroll wheel) in ViM (not GVIM) on Windows to work for some time now and have been entirely unsuccessful.

I have ANSI enabled in ConEmu and the following in my .vimrc (These are some of the options tried so far):

""""""""""""""""""""""""""""""""""""""
" let mouse wheel scroll file contents
""""""""""""""""""""""""""""""""""""""
" if !has("gui_running")
    " behave xterm
    " set term=xterm
    set mouse=a
    set nocompatible
    " inoremap <Esc>[62~ <C-X><C-E>
    " inoremap <Esc>[63~ <C-X><C-Y>
    " nnoremap <Esc>[62~ <C-E>
    " nnoremap <Esc>[63~ <C-Y>
    " map <MouseDown> <C-Y>
    " map <S-MouseDown> <C-U>
    " map <MouseUp> <C-E>
    " map <S-MouseUp> <C-D>
" map <ScrollWheelUp> <C-Y>
" map <ScrollWheelDown> <C-E>

    :map <M-Esc>[62~ <ScrollWheelUp>
    " :map <Esc>[62~ <ScrollWheelUp>
    inoremap <M-Esc>[62~ <ScrollWheelUp>
    nnoremap <M-Esc>[62~ <ScrollWheelUp>
    :map j <ScrollWheelUp>
    " :map! <M-Esc>[62~ <ScrollWheelUp>

    :map <M-Esc>[63~ <ScrollWheelDown>
    " :map <Esc>[63~ <ScrollWheelDown>
    inoremap <M-Esc>[63~ <ScrollWheelDown>
    nnoremap <M-Esc>[63~ <ScrollWheelDown>
    :map h <ScrollWheelDown>
    " :map! <M-Esc>[63~ <ScrollWheelDown>

    " :map <M-Esc>[64~ <S-ScrollWheelUp>
    " :map! <M-Esc>[64~ <S-ScrollWheelUp>
    " :map <M-Esc>[65~ <S-ScrollWheelDown>
    " :map! <M-Esc>[65~ <S-ScrollWheelDown>

    " echom "no gui, setting up scrolling"
" endif

I've tried with and without set term=xterm commented, with term set to xterm no coloring works in ViM. I can move the cursor on the line by clicking in ViM.

I have tried executing ViM directly as a task within ConEmu (running directly under conhost) and normally under Powershell.

Also, I've tried the newest ViM (8.0-142 x64) and the newest 7.4 x86 as well.

I tried with and without plugins on vim, and a blank/default configuration on ConEmu to cover all my bases.

To test further, I created a pair of ConEmu macros with mouse down -> print("h") and mouse up -> print("j"); this actually had scrolling working, but seems a terrible hack!

Is it possible to view the raw ANSI from the mouse? I know I can do this for keyboard input from the debug > input menu, but not for mouse input.

It seems ConEmu simply isn't sending the ANSI codes to vim?

Maximus5 commented 7 years ago
  1. Have you read this: https://conemu.github.io/en/VimXterm.html#Vim-scrolling-using-mouse-Wheel ?
  2. Vim version numbers are about nothing. What build you are trying? Where you have downloaded it?

Is it possible to view the raw ANSI from the mouse?

There is no simple answer. KeyEvents may show RAW ANSI input but ConEmu may change keyboard/mouse translation mode conforming active application.

erichiller commented 7 years ago

I have certainly read the article on Vim mouse scrolling, and everything else I could find on the web.

But the KeyEvents utility you wrote might prove very helpful... Once running KeyEvents I have this output:

KeyEvents.exe
KeyEvents from Maximus5, ver 4.3. Far SysLog mode
Current console mode = 0x000001E7

No ENABLE_MOUSE_INPUT, changing to = 0x000001F7

Press 'Esc' twice to exit program
Press 'Enter' to insert empty line

10:50:07 NULL_EVENT_RECORD: Up, 1, Vk="VK_RETURN" [13/0x000D], Scan=0x001C uChar=[U=' ' (0x000D): A=' ' (0x0D)]
         Ctrl=0x00000000 (casac - ecns) (Windowed)
10:50:09 KEY_EVENT_RECORD: Dn, 1, Vk="VK_J" [74/0x004A], Scan=0x0024 uChar=[U='j' (0x006A): A='j' (0x6A)]
         Ctrl=0x00000000 (casac - ecns) (Windowed)

That is with my Scroll -> j macro. If I disable the macro, nothing is generated. But as you can see at the top...

Current console mode = 0x000001E7

No ENABLE_MOUSE_INPUT, changing to = 0x000001F7

Not sure of the exact nature of this message, but it seems promising

My Settings within ConEmu are: image

I have tried these vim versions; the --version outputs follow below:

vim8-142

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jan  2 2017 23:02:37)
MS-Windows 64-bit console version
Included patches: 1-142
Compiled by appveyor@APPVYR-WIN
Huge version without GUI.  Features included (+) or not (-):
+acl                +ex_extra           -mouseshape         +tag_old_static
+arabic             +extra_search       +multi_byte_ime/dyn -tag_any_white
+autocmd            +farsi              +multi_lang         +tcl/dyn
-balloon_eval       +file_in_path       +mzscheme/dyn       +termguicolors
-browse             +find_in_path       -netbeans_intg      -tgetent
++builtin_terms     +float              +num64              -termresponse
+byte_offset        +folding            +packages           +textobjects
+channel            -footer             +path_extra         +timers
+cindent            +gettext/dyn        +perl/dyn           +title
+clientserver       -hangul_input       +persistent_undo    -toolbar
+clipboard          +iconv/dyn          -postscript         +user_commands
+cmdline_compl      +insert_expand      +printer            +vertsplit
+cmdline_hist       +job                +profile            +virtualedit
+cmdline_info       +jumplist           +python/dyn         +visual
+comments           +keymap             +python3/dyn        +visualextra
+conceal            +lambda             +quickfix           +viminfo
+cryptv             +langmap            +reltime            +vreplace
+cscope             +libcall            +rightleft          +wildignore
+cursorbind         +linebreak          +ruby/dyn           +wildmenu
+cursorshape        +lispindent         +scrollbind         +windows
+dialog_con         +listcmds           +signs              +writebackup
+diff               +localmap           +smartindent        -xfontset
+digraphs           +lua/dyn            +startuptime        -xim
-dnd                +menu               +statusline         -xpm_w32
-ebcdic             +mksession          -sun_workshop       -xterm_save
+emacs_tags         +modify_fname       +syntax
+eval               +mouse              +tag_binary
   system vimrc file: "$VIM\vimrc"
     user vimrc file: "$HOME\_vimrc"
 2nd user vimrc file: "$HOME\vimfiles\vimrc"
 3rd user vimrc file: "$VIM\_vimrc"
      user exrc file: "$HOME\_exrc"
  2nd user exrc file: "$VIM\_exrc"
       defaults file: "$VIMRUNTIME\defaults.vim"
Compilation: cl -c /W3 /nologo  -I. -Iproto -DHAVE_PATHDEF -DWIN32  -DFEAT_CSCOPE  -DFEAT_JOB_CHANNEL      -DWINVER=0x500 -D_WIN32_WINNT=0x500  /Fo.\ObjCULYHTRZAMD64/ /MP -DHAVE_STDINT_H /Ox /GL -DNDEBUG  /Zl /MT -DFEAT_MBYTE_IME -DDYNAMIC_IME -DFEAT_MBYTE -DDYNAMIC_ICONV -DDYNAMIC_GETTEXT -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl86.dll\" -DDYNAMIC_TCL_VER=\"8.6\" -DFEAT_LUA -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua53.dll\" -DFEAT_PYTHON -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python27.dll\" -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python35.dll\" -DFEAT_MZSCHEME -I "C:\Program Files\Racket\include" -DMZ_PRECISE_GC -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libracket3m_a0solc.dll\" -DDYNAMIC_MZGC_DLL=\"libracket3m_a0solc.dll\" -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl524.dll\" -DFEAT_RUBY -DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER=22 -DDYNAMIC_RUBY_DLL=\"x64-msvcrt-ruby220.dll\" -DFEAT_HUGE /Fd.\ObjCULYHTRZAMD64/ /Zi
Linking: link /RELEASE /nologo /subsystem:console /LTCG:STATUS oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib  comdlg32.lib ole32.lib uuid.lib /machine:AMD64  /nodefaultlib libcmt.lib  user32.lib  /nodefaultlib:lua53.lib  /STACK:8388608  /nodefaultlib:python27.lib /nodefaultlib:python35.lib   "C:\Tcl\lib\tclstub86.lib" WSock32.lib /PDB:vim.pdb -debug

vim8-134

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Dec 14 2016 23:02:45)
MS-Windows 64-bit console version
Included patches: 1-134
Compiled by appveyor@APPVYR-WIN
Huge version without GUI.  Features included (+) or not (-):
+acl                +ex_extra           -mouseshape         +tag_old_static
+arabic             +extra_search       +multi_byte_ime/dyn -tag_any_white
+autocmd            +farsi              +multi_lang         +tcl/dyn
-balloon_eval       +file_in_path       +mzscheme/dyn       +termguicolors
-browse             +find_in_path       -netbeans_intg      -tgetent
++builtin_terms     +float              +num64              -termresponse
+byte_offset        +folding            +packages           +textobjects
+channel            -footer             +path_extra         +timers
+cindent            +gettext/dyn        +perl/dyn           +title
+clientserver       -hangul_input       +persistent_undo    -toolbar
+clipboard          +iconv/dyn          -postscript         +user_commands
+cmdline_compl      +insert_expand      +printer            +vertsplit
+cmdline_hist       +job                +profile            +virtualedit
+cmdline_info       +jumplist           +python/dyn         +visual
+comments           +keymap             +python3/dyn        +visualextra
+conceal            +lambda             +quickfix           +viminfo
+cryptv             +langmap            +reltime            +vreplace
+cscope             +libcall            +rightleft          +wildignore
+cursorbind         +linebreak          +ruby/dyn           +wildmenu
+cursorshape        +lispindent         +scrollbind         +windows
+dialog_con         +listcmds           +signs              +writebackup
+diff               +localmap           +smartindent        -xfontset
+digraphs           +lua/dyn            +startuptime        -xim
-dnd                +menu               +statusline         -xpm_w32
-ebcdic             +mksession          -sun_workshop       -xterm_save
+emacs_tags         +modify_fname       +syntax
+eval               +mouse              +tag_binary
   system vimrc file: "$VIM\vimrc"
     user vimrc file: "$HOME\_vimrc"
 2nd user vimrc file: "$HOME\vimfiles\vimrc"
 3rd user vimrc file: "$VIM\_vimrc"
      user exrc file: "$HOME\_exrc"
  2nd user exrc file: "$VIM\_exrc"
       defaults file: "$VIMRUNTIME\defaults.vim"
Compilation: cl -c /W3 /nologo  -I. -Iproto -DHAVE_PATHDEF -DWIN32  -DFEAT_CSCOPE  -DFEAT_JOB_CHANNEL      -DWINVER=0x500 -D_WIN32_WINNT=0x500  /Fo.\ObjCULYHTRZAMD64/ /MP -DHAVE_STDINT_H /Ox /GL -DNDEBUG  /Zl /MT -DFEAT_MBYTE_IME -DDYNAMIC_IME -DFEAT_MBYTE -DDYNAMIC_ICONV -DDYNAMIC_GETTEXT -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl86.dll\" -DDYNAMIC_TCL_VER=\"8.6\" -DFEAT_LUA -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua53.dll\" -DFEAT_PYTHON -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python27.dll\" -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python35.dll\" -DFEAT_MZSCHEME -I "C:\Program Files\Racket\include" -DMZ_PRECISE_GC -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libracket3m_a0solc.dll\" -DDYNAMIC_MZGC_DLL=\"libracket3m_a0solc.dll\" -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl524.dll\" -DFEAT_RUBY -DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER=22 -DDYNAMIC_RUBY_DLL=\"x64-msvcrt-ruby220.dll\" -DFEAT_HUGE /Fd.\ObjCULYHTRZAMD64/ /Zi
Linking: link /RELEASE /nologo /subsystem:console /LTCG:STATUS oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib  comdlg32.lib ole32.lib uuid.lib /machine:AMD64  /nodefaultlib libcmt.lib  user32.lib  /nodefaultlib:lua53.lib  /STACK:8388608  /nodefaultlib:python27.lib /nodefaultlib:python35.lib   "C:\Tcl\lib\tclstub86.lib" WSock32.lib /PDB:vim.pdb -debug

vim7.4w32

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug 10 2013 14:33:40)
MS-Windows 32-bit console version
Compiled by mool@tororo
Big version without GUI.  Features included (+) or not (-):
+arabic          +ex_extra        -mouseshape      +tag_binary
+autocmd         +extra_search    +multi_byte      +tag_old_static
-balloon_eval    +farsi           +multi_lang      -tag_any_white
-browse          +file_in_path    -mzscheme        -tcl
++builtin_terms  +find_in_path    -netbeans_intg   -tgetent
+byte_offset     +float           +path_extra      -termresponse
+cindent         +folding         -perl            +textobjects
+clientserver    -footer          +persistent_undo +title
+clipboard       +gettext/dyn     -postscript      -toolbar
+cmdline_compl   -hangul_input    +printer         +user_commands
+cmdline_hist    +iconv/dyn       -profile         +vertsplit
+cmdline_info    +insert_expand   -python          +virtualedit
+comments        +jumplist        -python3         +visual
+conceal         +keymap          +quickfix        +visualextra
+cryptv          +langmap         +reltime         +viminfo
+cscope          +libcall         +rightleft       +vreplace
+cursorbind      +linebreak       -ruby            +wildignore
+cursorshape     +lispindent      +scrollbind      +wildmenu
+dialog_con      +listcmds        +signs           +windows
+diff            +localmap        +smartindent     +writebackup
+digraphs        -lua             -sniff           -xfontset
-dnd             +menu            +startuptime     -xim
-ebcdic          +mksession       +statusline      -xterm_save
+emacs_tags      +modify_fname    -sun_workshop    -xpm_w32
+eval            +mouse           +syntax
   system vimrc file: "$VIM\vimrc"
     user vimrc file: "$HOME\_vimrc"
 2nd user vimrc file: "$HOME\vimfiles\vimrc"
 3rd user vimrc file: "$VIM\_vimrc"
      user exrc file: "$HOME\_exrc"
  2nd user exrc file: "$VIM\_exrc"
Compilation: cl -c /W3 /nologo  -I. -Iproto -DHAVE_PATHDEF -DWIN32   -DFEAT_CSCOPE       -DWINVER=0x0400 -D_WIN32_WINNT=0x0400  /Fo.\ObjCi386/ /Ox /GL -DNDEBUG  /Zl /MT -DDYNAMIC_ICONV -DDYNAMIC_GETTEXT -DFEAT_BIG /Fd.\ObjCi386/ /ZiLinking: link /RELEASE /nologo /subsystem:console /LTCG:STATUS oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib  comdlg32.lib ole32.lib uuid.lib /machine:i386 /nodefaultlib  libcmt.lib   user32.lib             /PDB:vim.pdb -debug
Maximus5 commented 7 years ago

Simple to reproduce

  1. download the ftp://ftp.vim.org/pub/vim/pc/vim80-069w32.zip

  2. unpack it to some clean folder, so you get, for example C:\Tools\vim\vim80\vim.exe

  3. create config file near to vim.exe, for example C:\Tools\vim\vim80\vimrc.conemu with contents described in docs

  4. run vim with created config file using -u switch, for example to open the file uninstal.txt (from vim80 folder)

    vim -u vimrc.conemu uninstal.txt

  5. enjoy working mouse wheel in vim started in ConEmu

  6. if still not working, run the following command

    ConEmu -basic -dir C:\Tools\vim\vim80 -nosingle -run vim -u vimrc.conemu uninstal.txt

Maximus5 commented 7 years ago

No ENABLE_MOUSE_INPUT, changing to = 0x000001F7 Not sure of the exact nature of this message, but it seems promising

As I said before, KeyEvents may get different input than vim due to miscellaneous reasons.

erichiller commented 7 years ago

It still does not function.

I tried with my original vim instance, then - just in case you meant that it worked only with the 32-bit version, I tried with the exact linked version you had here. Neither worked.

My exact command:

.\ConEmu.exe -basic -dir C:\vim80-069w32\vim\vim80 -nosingle -run vim -u conemu.vimrc README.txt

conemu.vimrc:

""""""""""""""""""""""""""""""""""""""
" let mouse wheel scroll file contents
""""""""""""""""""""""""""""""""""""""
if !has("gui_running")
    set term=xterm
    set mouse=a
    set nocompatible
    inoremap <Esc>[62~ <C-X><C-E>
    inoremap <Esc>[63~ <C-X><C-Y>
    nnoremap <Esc>[62~ <C-E>
    nnoremap <Esc>[63~ <C-Y>
    echo hello
endif

I am using the newest 12-06 ConEmu version.

Maximus5 commented 7 years ago

The folder vim80 does not have README.txt file. Also you don't follow exact gudeline posted above.

For example, your conemu.vimrc is buggy: 2017-01-08_22-20-51

erichiller commented 7 years ago

I used ftp://ftp.vim.org/pub/vim/pc/vim80-069w32.zip - just as you had posted, but that does not have any runtime files, so I had added them. I have now removed them, I also removed the echo line, which I had added to confirm it was taking the switch. The exact same result. Here is the window

.\ConEmu.exe -basic -dir C:\vim\vim80 -nosingle -run vim -u conemu.vimrc uninstal.txt

image


    Directory: C:\vim\vim80

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         1/8/2017  10:33 PM            340 conemu.vimrc
------        11/6/2016   6:26 PM         122368 install.exe
------        11/6/2016   6:26 PM            701 README_bindos.txt
------        11/6/2016   6:26 PM          59392 tee.exe
------        11/6/2016   6:26 PM          93184 uninstal.exe
------        9/21/2016  11:38 PM           4050 uninstal.txt
------        11/6/2016   6:26 PM        2062336 vim.exe
------        11/6/2016   6:26 PM          71168 xxd.exe
Maximus5 commented 7 years ago

vim80

erichiller commented 7 years ago

Besides that your conemu.vimrc is 357 bytes and mine is 340

""""""""""""""""""""""""""""""""""""""
" let mouse wheel scroll file contents
""""""""""""""""""""""""""""""""""""""
if !has("gui_running")
    set term=xterm
    set mouse=a
    set nocompatible
    inoremap <Esc>[62~ <C-X><C-E>
    inoremap <Esc>[63~ <C-X><C-Y>
    nnoremap <Esc>[62~ <C-E>
    nnoremap <Esc>[63~ <C-Y>
endif

Here is the process tree from the basic launch.

image

You can see the command line there
C:\Users\ehiller\AppData\Local\omega\system\ConEmu\ConEmu.exe -basic -nosingle -wndy 500 -run vim -u conemu.vimrc uninstal.txt

image

I am unsure how it is not working here and there it is? I know that mouse scroll input is being received because the macro worked, but it appears that ConEmu isn't generating ANSI output (that is how it appears, I have no way to check). I am more than happy to run any tests - any ideas as to what to test?

Maximus5 commented 7 years ago

I had commented line " echo hello, that was the reason for size difference.

Well, try to use -log switch and post here link to zip-ed log files. E.g.

ConEmu.exe -log -basic -nosingle -run vim -u conemu.vimrc uninstal.txt
erichiller commented 7 years ago

Ok, I have the logs made. In them I tried scrolling down (didn't work), so I used the keyboard to go down a few lines in order for scrolling up to be possible and tried mousing up (which also didn't work).

I hope that helps -Eric

Maximus5 commented 7 years ago

Try to move the mouse over screen while scrolling the wheel. Perhaps smth is broken in Win10 again.

Maximus5 commented 7 years ago

Please redo logs (with mouse wheeling) on this test build: https://www.dropbox.com/s/f6xwg9kl5kl0tvr/ConEmu.exe.170109.7z?dl=0

erichiller commented 7 years ago

Done - logs here

Just to be clear that this was what I was supposed to do. I placed the new ConEmu.exe (version 170109 which is 1945kB) that you provided in the last post into the ConEmu directory I had already (which was 161206) - overwriting the previous ConEmu.exe (which was 1923kB).

The logs attached are from the new ConEmu.exe (version 170109 which is 1945kB) .

Maximus5 commented 7 years ago

Someone (either conhost or vim) sets the ENABLE_QUICK_EDIT_MODE in the console input modes. That means "application do not want mouse input". So the wheel is not posted too.

Maximus5 commented 7 years ago

Try this test build: https://www.dropbox.com/s/04yo06vssx52tlx/ConEmu.exe.170109a.7z?dl=0

erichiller commented 7 years ago

Yep, that did it! Working scrolling - not sure whether you wanted the logs, but I thought you might. So here they are. Of course, once I tried it without -basic and it reverted to 64-bit operation and thus the accordant older 161206 64-bit binary on my system - scrolling stopped working.

As always, much thanks! I'll look for the 64-bit binary then. I always appreciate you looking at things. -Eric

berdon commented 7 years ago

@Maximus5

I've spent a little time trying to get scrolling to work but I think my setup is fighting me a little:

I think there's something going on between MinGW and ConEmu that's preventing the above snippet in .vimrc from working. Any ideas?

Maximus5 commented 7 years ago

Since ConEmu build 170730 mouse emulation was implemented in xterm-compatible way.

I can't remember where I took from suggestions to remap <Esc>[62~ and <Esc>[63~. So they are deprecated now.

The following config would be enough

if !has("gui_running")
    set term=xterm
    set mouse=a
    set nocompatible
endif
erichiller commented 7 years ago

Yep, confirmed.

Removing.

    inoremap <Esc>[62~ <C-X><C-E>
    inoremap <Esc>[63~ <C-X><C-Y>
    nnoremap <Esc>[62~ <C-E>
    nnoremap <Esc>[63~ <C-Y>

and it works the same whether it is present or not.

Thanks much!

erichiller commented 7 years ago

Did anything revert since this the 0805 release? I went back into vim and no mouse events are being seen, in Debug > Input within ConEmu I only see a single mouse event of activate and nothing else, regardless of additional clicks or scrolling.

Maximus5 commented 7 years ago

What Vim do you use now?

erichiller commented 7 years ago

I'll post the full output of vim --version, but it is vim windows 64 bit version 8.0.347

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 21 2017 23:02:41)
MS-Windows 64-bit console version
Included patches: 1-347
Compiled by appveyor@APPVYR-WIN
Huge version without GUI.  Features included (+) or not (-):
+acl                +ex_extra           -mouseshape         +tag_old_static
+arabic             +extra_search       +multi_byte_ime/dyn -tag_any_white
+autocmd            +farsi              +multi_lang         +tcl/dyn
-balloon_eval       +file_in_path       +mzscheme/dyn       +termguicolors
-browse             +find_in_path       -netbeans_intg      -tgetent
++builtin_terms     +float              +num64              -termresponse
+byte_offset        +folding            +packages           +textobjects
+channel            -footer             +path_extra         +timers
+cindent            +gettext/dyn        +perl/dyn           +title
+clientserver       -hangul_input       +persistent_undo    -toolbar
+clipboard          +iconv/dyn          -postscript         +user_commands
+cmdline_compl      +insert_expand      +printer            +vertsplit
+cmdline_hist       +job                +profile            +virtualedit
+cmdline_info       +jumplist           +python/dyn         +visual
+comments           +keymap             +python3/dyn        +visualextra
+conceal            +lambda             +quickfix           +viminfo
+cryptv             +langmap            +reltime            +vreplace
+cscope             +libcall            +rightleft          +wildignore
+cursorbind         +linebreak          +ruby/dyn           +wildmenu
+cursorshape        +lispindent         +scrollbind         +windows
+dialog_con         +listcmds           +signs              +writebackup
+diff               +localmap           +smartindent        -xfontset
+digraphs           +lua/dyn            +startuptime        -xim
-dnd                +menu               +statusline         -xpm_w32
-ebcdic             +mksession          -sun_workshop       -xterm_save
+emacs_tags         +modify_fname       +syntax
+eval               +mouse              +tag_binary
   system vimrc file: "$VIM\vimrc"
     user vimrc file: "$HOME\_vimrc"
 2nd user vimrc file: "$HOME\vimfiles\vimrc"
 3rd user vimrc file: "$VIM\_vimrc"
      user exrc file: "$HOME\_exrc"
  2nd user exrc file: "$VIM\_exrc"
       defaults file: "$VIMRUNTIME\defaults.vim"
Compilation: cl -c /W3 /nologo  -I. -Iproto -DHAVE_PATHDEF -DWIN32  -DFEAT_CSCOPE  -DFEAT_JOB_CHANNEL      -DWINVER=0x500 -D_WIN32_WINNT=0x500  /Fo.\ObjCULYHTRZAMD64/ /MP -DHAVE_STDINT_H /Ox /GL -DNDEBUG  /Zl /MT -DFEAT_MBYTE_IME -DDYNAMIC_IME -DFEAT_MBYTE -DDYNAMIC_ICONV -DDYNAMIC_GETTEXT -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl86.dll\" -DDYNAMIC_TCL_VER=\"8.6\" -DFEAT_LUA -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua53.dll\" -DFEAT_PYTHON -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python27.dll\" -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python35.dll\" -DFEAT_MZSCHEME -I "C:\Program Files\Racket\include" -DMZ_PRECISE_GC -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libracket3m_a0solc.dll\" -DDYNAMIC_MZGC_DLL=\"libracket3m_a0solc.dll\" -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl524.dll\" -DFEAT_RUBY -DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER=22 -DDYNAMIC_RUBY_DLL=\"x64-msvcrt-ruby220.dll\" -DFEAT_HUGE /Fd.\ObjCULYHTRZAMD64/ /Zi
Linking: link /RELEASE /nologo /subsystem:console /LTCG:STATUS oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib  comdlg32.lib ole32.lib uuid.lib /machine:AMD64  /nodefaultlib libcmt.lib  user32.lib  /nodefaultlib:lua53.lib  /STACK:8388608  /nodefaultlib:python27.lib /nodefaultlib:python35.lib   "C:\Tcl\lib\tclstub86.lib" WSock32.lib /PDB:vim.pdb -debug
Maximus5 commented 7 years ago
  1. Downloaded and installed current official vim version from here: ftp://ftp.vim.org/pub/vim/pc/gvim80-586.exe
  2. Modified the file vimrc_example.vim as described here

Mouse wheel is working and click&drag selects text. I don't know what have you modified in your config, but that is not a ConEmu bug.

littleq0903 commented 5 years ago

In my case, I solved it by adding:

noremap <silent> [A <C-Y>
noremap <silent> [B <C-E>
determin1st commented 6 months ago

so how me terminal user should get those? im using ReadConsoleInputW with mode set previously to ENABLE_MOUSE_INPUT with SetConsoleMode but still the vertical wheel goes to scrollbars and also the text selection obstructs the drag detection..

oke, ive read those terminal modes ESC [ ? ms h ConEmu does.. should have implemented the ESC [ ? ms p$ called the DECRQM request mode status.. very convenient way to detect, have to rely on terminal identifier instead..