Vim Tips Wiki
Register
Advertisement

Previous TipNext Tip

Tip: #428 - Wordwise Ctrl-Y in insert mode

Created: February 18, 2003 0:19 Complexity: basic Author: Dubhead Version: 5.7 Karma: 10/7 Imported from: Tip#428

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 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 


cec--AT--NgrOyphSon.gPsfAc.nMasa.gov , February 20, 2003 8:27


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.

cec--AT--NgrOyphSon.gPsfAc.nMasa.gov , February 25, 2003 11:43


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> ?)

Tobi , May 2, 2003 7:41


Advertisement