mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.0.1787: cannot insert the whole cursor line
Problem: Cannot insert the whole cursor line.
Solution: Make CTRL-R CTRL-L work. (Andy Massimino, closes vim/vim#2857)
e2c8d83926
This commit is contained in:
parent
68cd18eb04
commit
015df9c66e
@ -163,12 +163,14 @@ CTRL-R CTRL-F *c_CTRL-R_CTRL-F* *c_<C-R>_<C-F>*
|
||||
CTRL-R CTRL-P *c_CTRL-R_CTRL-P* *c_<C-R>_<C-P>*
|
||||
CTRL-R CTRL-W *c_CTRL-R_CTRL-W* *c_<C-R>_<C-W>*
|
||||
CTRL-R CTRL-A *c_CTRL-R_CTRL-A* *c_<C-R>_<C-A>*
|
||||
CTRL-R CTRL-L *c_CTRL-R_CTRL-L* *c_<C-R>_<C-L>*
|
||||
Insert the object under the cursor:
|
||||
CTRL-F the Filename under the cursor
|
||||
CTRL-P the Filename under the cursor, expanded with
|
||||
'path' as in |gf|
|
||||
CTRL-W the Word under the cursor
|
||||
CTRL-A the WORD under the cursor; see |WORD|
|
||||
CTRL-L the line under the cursor
|
||||
|
||||
When 'incsearch' is set the cursor position at the end of the
|
||||
currently displayed match is used. With CTRL-W the part of
|
||||
@ -176,8 +178,8 @@ CTRL-R CTRL-A *c_CTRL-R_CTRL-A* *c_<C-R>_<C-A>*
|
||||
|
||||
*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
|
||||
*c_CTRL-R_CTRL-O* *c_<C-R>_<C-O>*
|
||||
CTRL-R CTRL-R {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A}
|
||||
CTRL-R CTRL-O {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A}
|
||||
CTRL-R CTRL-R {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
|
||||
CTRL-R CTRL-O {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
|
||||
Insert register or object under the cursor. Works like
|
||||
|c_CTRL-R| but inserts the text literally. For example, if
|
||||
register a contains "xy^Hz" (where ^H is a backspace),
|
||||
|
@ -3295,8 +3295,10 @@ static bool cmdline_paste(int regname, bool literally, bool remcr)
|
||||
/* check for valid regname; also accept special characters for CTRL-R in
|
||||
* the command line */
|
||||
if (regname != Ctrl_F && regname != Ctrl_P && regname != Ctrl_W
|
||||
&& regname != Ctrl_A && !valid_yank_reg(regname, false))
|
||||
&& regname != Ctrl_A && regname != Ctrl_L
|
||||
&& !valid_yank_reg(regname, false)) {
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
/* A register containing CTRL-R can cause an endless loop. Allow using
|
||||
* CTRL-C to break the loop. */
|
||||
|
@ -1257,6 +1257,14 @@ int get_spec_reg(
|
||||
*allocated = TRUE;
|
||||
return TRUE;
|
||||
|
||||
case Ctrl_L: // Line under cursor
|
||||
if (!errmsg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
*argp = ml_get_buf(curwin->w_buffer, curwin->w_cursor.lnum, false);
|
||||
return true;
|
||||
|
||||
case '_': /* black hole: always empty */
|
||||
*argp = (char_u *)"";
|
||||
return TRUE;
|
||||
|
@ -321,6 +321,9 @@ func Test_paste_in_cmdline()
|
||||
call feedkeys("ft:aaa \<C-R>\<C-F> bbb\<C-B>\"\<CR>", 'tx')
|
||||
call assert_equal('"aaa /tmp/some bbb', @:)
|
||||
|
||||
call feedkeys(":aaa \<C-R>\<C-L> bbb\<C-B>\"\<CR>", 'tx')
|
||||
call assert_equal('"aaa '.getline(1).' bbb', @:)
|
||||
|
||||
set incsearch
|
||||
call feedkeys("fy:aaa veryl\<C-R>\<C-W> bbb\<C-B>\"\<CR>", 'tx')
|
||||
call assert_equal('"aaa verylongword bbb', @:)
|
||||
|
Loading…
Reference in New Issue
Block a user