Vim Tips Wiki
Register
No edit summary
(Remove html character entities)
Line 18: Line 18:
 
<pre>
 
<pre>
 
" Wordwise Ctrl-Y in insert mode
 
" Wordwise Ctrl-Y in insert mode
noremap! &lt;C-Y&gt; &lt;Esc&gt;klyWjpa
+
noremap! <C-Y> <Esc>klyWjpa
 
</pre>
 
</pre>
   
Line 28: Line 28:
 
How about a small mod:
 
How about a small mod:
   
noremap! &lt;C-Y&gt; &lt;Esc&gt;klyWjPa
+
noremap! <C-Y> <Esc>klyWjPa
   
 
----
 
----
 
Other interesting variants, depending upon what one wants:
 
Other interesting variants, depending upon what one wants:
   
inoremap &lt;C-Y&gt; &lt;Esc&gt;klyiWjPa
+
inoremap <C-Y> <Esc>klyiWjPa
inoremap &lt;C-Y&gt; &lt;Esc&gt;klyiwjPa
+
inoremap <C-Y> <Esc>klyiwjPa
   
 
The yiw yanks the "inner word", yiW yanks the "inner WORD". Both of these forms appear to work at both the beginning and end of sentences, with the exception that neither works for a single letter word at the beginning of a sentence.
 
The yiw yanks the "inner word", yiW yanks the "inner WORD". Both of these forms appear to work at both the beginning and end of sentences, with the exception that neither works for a single letter word at the beginning of a sentence.
Line 40: Line 40:
 
----
 
----
 
I think
 
I think
:imap &lt;F1&gt; &lt;C-O&gt;:set virtualedit=all&lt;CR&gt;&lt;C-O&gt;k&lt;C-O&gt;yw&lt;C-O&gt;j&lt;C-O&gt;P&lt;C-O&gt;:set virtualedit=&lt;CR&gt;
+
:imap <F1> <C-O>:set virtualedit=all<CR><C-O>k<C-O>yw<C-O>j<C-O>P<C-O>:set virtualedit=<CR>
   
is a little bit better, but not really satisfying (a bug in virtualedit/&lt;C-O&gt;?).
+
is a little bit better, but not really satisfying (a bug in virtualedit/<C-O>?).
   
 
----
 
----

Revision as of 08:41, 29 September 2008

Tip 428 Printable Monobook Previous Next

created February 18, 2003 · complexity basic · author Dubhead · version 5.7


Ctrl-Y in insert mode is one of Vim's handy extensions that inserts character which is above cursor (see :help i_CTRL-Y). However, sometimes this is not very useful when a user wants to insert many characters. In this case it's better to get a word above the cursor.

Put this in vimrc:

" Wordwise Ctrl-Y in insert mode
noremap! <C-Y> <Esc>klyWjpa

You might want to substitute 'W' with 'w', 'E', or 'e'. Try them and choose one that works best for you.

Unfortunately, this simple map doesn't work at the beginning or end of line. Improvements are welcome.

Comments

How about a small mod:

noremap! <C-Y> <Esc>klyWjPa

Other interesting variants, depending upon what one wants:

inoremap <C-Y> <Esc>klyiWjPa
inoremap <C-Y> <Esc>klyiwjPa

The yiw yanks the "inner word", yiW yanks the "inner WORD". Both of these forms appear to work at both the beginning and end of sentences, with the exception that neither works for a single letter word at the beginning of a sentence.


I think

:imap <F1> <C-O>:set virtualedit=all<CR><C-O>k<C-O>yw<C-O>j<C-O>P<C-O>:set virtualedit=<CR>

is a little bit better, but not really satisfying (a bug in virtualedit/<C-O>?).


Hmm.. I can't get Ctrl-Y to work at all :( I tried :behave xterm but it doesn't seem to do anything for me :(