我想在可视模式下映射ctrl + a来选择并复制当前缓冲区中的所有文本。
基本思想是执行:%y *(将所有缓冲区复制到剪贴板)。因此,映射应该是:xmap:%y *(仅适用于可视模式的xmap)
但是,每当我运行此映射时,都会显示以下输出:
E492: Not an editor command: '<,'>%y*
而且,我认为Vim是对的:-)。当处于可视模式时,按下“:”,使cmd-line显示那些令人惊讶的字符:
":'<,'>"
我可以找到此模式('&lt;,'&gt;)的唯一相关信息是:http://vimdoc.sourceforge.net/htmldoc/cmdline.html#v_: (这对我没有帮助。)
问题:我做错了什么(配置......)?我的需求是否有另一个答案(将所有文本复制到剪贴板)?
我正在运行Vim 7.3,我只在我的vimrc中设置了nocompatible
感谢您的帮助, 汤姆
答案 0 :(得分:7)
使用:
xnoremap <whatever> :<c-u>%y*<return>
附加 ctrl - u 删除命令行直到光标。
来自vim参考:
*c_CTRL-U*
CTRL-U Remove all characters between the cursor position and
the beginning of the line. Previous versions of vim
deleted all characters on the line. If that is the
preferred behavior, add the following to your .vimrc: >
:cnoremap <C-U> <C-E><C-U>
答案 1 :(得分:2)
使用以下映射:
nmap <C-A> ggVGy
它猛拉所有当前文件。顺便说一句,我不确定这究竟是什么。我不明白为什么你想要一个视觉映射。