在键入其他命令后如何在vim命令行中粘贴Yanked行?

时间:2017-09-11 18:24:11

标签: vim

我想在输入某个命令后在vim命令提示符中粘贴被拉动的行。

我看到了一个解决方案,他们要求输入<Ctrl-R><Shift-">来粘贴vim命令提示符中的拉线,但是我遇到了以下问题:

  1. 当我尝试:tabnew,然后输入<Ctrl-R><Shift-">时,无论是什么线条被粘贴之后:tabnew line。 Eg: :tabnew /disk/bin/hello.lo

  2. 如果我在vimrc中映射相同的上述命令,则上述解决方案不起作用。我尝试在.vimrc中添加以下地图:

    :map <S-P> :<C-R><S-">
    

    当我尝试:tabnew并输入<S-P>时,它没有粘贴被拉动的线,即映射的命令不起作用。

  3. 任何人都可以帮我解决上述情况吗?

    跟进查询:

    是否可以混合正常模式和命令行模式操作?

    对于Eg: 一个。我在文本文件中有一行,它是一个目录路径,想在vim中打开该目录。

    湾而不是Yanking [S-Y]行,然后执行映射命令[map <C-T><C-O> :tabnew <C-R><S-"><bs><CR>]来打开vim的目录,是否可以执行下面给出的操作?

    nnoremap <F7> <S-Y>cnoremap:tabnew <C-R><S-"><bs><CR>

    请放弃你的意见/建议?

1 个答案:

答案 0 :(得分:3)

:命令行提示符为“命令行模式”(请参阅​​:h Command-line-mode:h cmdline:h : [均显示相同的帮助])。您可以使用:cnoremap在该模式下映射密钥。所以你似乎在寻找这个:

:cnoremap <s-p> <c-r>"<bs>

末尾的退格删除了(可能)在缓冲区末尾的尾随行尾字符。

我强烈建议您使用与<s-p>不同的映射,因为每次尝试键入大写“P”时都会触发该映射。