我在我的vimrc中有以下Map:
vimrc
nnoremap <C-a> ggVG nnoremap <C-c> "*yy (might be because I'm in visual mode here?) nnoremap <C-v> "*p
全选(ctrl-a)和粘贴(ctrl-p)可以工作,但(ctrl-c)不能使用该快捷方式,尽管如果我在执行ctrl-c后手动键入命令,它可以工作。这里需要修复什么?
aemubtdh1#
我想解决的第一个问题是,复制文本的Mapnnoremap <C-c> "*yy只能在正常模式下工作。当您在Vim中选择文本时,您将进入可视模式,并且nnoremap的第一个n使Map只能在正常模式下工作。您可以使用noremap(所有模式)、vnoremap(可视和选择模式)或xnoremap(仅可视模式)使贴图工作,如下所示:
nnoremap <C-c> "*yy
nnoremap
n
noremap
vnoremap
xnoremap
vnoremap <C-c> "*y
您可以在文档中找到有关Map的详细信息。另一件需要注意的事情是Ctrl-c的默认功能是取消/中断当前命令。例如,如果您进入插入模式并按Ctrl-c,您将退出插入模式并返回到正常模式。使用您的原始Map,它将取消选择(退出可视模式)而不复制任何内容。
jdzmm42g2#
这对我在Neovim中是有效的,但我相信它在Vim中也应该是有效的。为了删除所有内容,我在配置中有以下Map:
nnoremap <leader>ya ggVGy<C-O>
详细信息:
gg
V
G
y
<C-O>
2条答案
按热度按时间aemubtdh1#
我想解决的第一个问题是,复制文本的Map
nnoremap <C-c> "*yy
只能在正常模式下工作。当您在Vim中选择文本时,您将进入可视模式,并且nnoremap
的第一个n
使Map只能在正常模式下工作。您可以使用
noremap
(所有模式)、vnoremap
(可视和选择模式)或xnoremap
(仅可视模式)使贴图工作,如下所示:您可以在文档中找到有关Map的详细信息。
另一件需要注意的事情是Ctrl-c的默认功能是取消/中断当前命令。例如,如果您进入插入模式并按Ctrl-c,您将退出插入模式并返回到正常模式。使用您的原始Map,它将取消选择(退出可视模式)而不复制任何内容。
jdzmm42g2#
这对我在Neovim中是有效的,但我相信它在Vim中也应该是有效的。为了删除所有内容,我在配置中有以下Map:
详细信息:
gg
:转到第一行V
:选择第一条直线G
:转到最后一行y
:拉伸选择<C-O>
:转到上一个光标位置