Wednesday, October 3, 2012

Re: Mapping for visual mode that starts from insert mode?

On Tue, 02 Oct 2012 23:06:47 +0800, Ben Fritz <fritzophrenic@gmail.com>
wrote:

> On Monday, October 1, 2012 9:53:40 PM UTC-5, WU Yue wrote:
>> Hi, I know title is unclear, but my English skill is so limited, forgive
>>
>> me please, I will try my best to make my expression more clear.
>>
>>
>>
>> I have set mouse=a, so I can drag mouse to start a selection in
>>
>> normal/insert mode, I notice that when start selection in normal mode,
>> the
>>
>> status line will show: -- VISUAL --, when start selection in insert
>> mode,
>>
>> the status line will show: -- (insert) VISUAL --.
>>
>>
>>
>> When I have selection in insert mode, I often want to replace/delete the
>>
>> seleciton, but I don't have this need for the selection starting from
>>
>> normal mode, so my question is, how to make <key>s and <backspace> can
>>
>> replace/delete the selection *only* when starts from insert mode.
>>
>>
>>
>> I don't know if it's clear now, thank you!
>>
>
> The visual mode started from insert mode with the mouse is actually
> "selection" mode, which is slightly different. Luckily you can map this
> "selection" mode separately from normal visual mode.
>
> Visual mode: xmap, xnoremap
> Selection mode: smap, snoremap
> Both: vmap, vnoremap
>
> :help select-mode-mapping
> :help mapmode-x
>
> Actually, using vmap and vnoremap is normally a mistake, since in
> selection mode pressing any key with a printable character will replace
> the selection with that character and drop into insert mode. I'm
> actually surprised that <Backspace> doesn't already delete the
> selection...I may map it to <Del> myself.
>
> (I learned these things on this very list, by the way).
>

After reading the help of "selectmode", I realize that -- (insert) VISUAL
-- is not the SELECT mode, I have a workaround:

autocmd InsertEnter * setlocal selectmode=mouse,key
autocmd InsertLeave * setlocal selectmode=""

sounds not good but it works :)

--
Regards,
WU Yue

State Key laboratory of Natural Products and Functions
Key Laboratory of Modern Chinese Medicines
Department of Traditional Chinese Medicine
China Pharmaceutical University
No.24, Tongjia Xiang Street, Nanjing 210009, China

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

No comments: