打印有关Vim报告中使用的寄存器的信息
当我猛拉寄存器时,我经常错误地键入打印有关Vim报告中使用的寄存器的信息,vim,vim-registers,Vim,Vim Registers,当我猛拉寄存器时,我经常错误地键入“x语法,因此我想确认它用于猛拉文本的寄存器 例如,如果我要键入“x3yy,我的理想输出将是“将3行拉入x”,而不是当前的“将3行拉入x”。是否可以以某种方式修改此报告?理想情况下,它还可以用于删除等操作。此功能已添加到后修补程序中(Ingo Karkat因报告此功能而备受赞誉) ,到目前为止,尚未合并此修补程序。但是,它实现了,这允许您攻击类似的行为,因为它提供了操作类型、使用的寄存器以及复制到寄存器的内容 考虑到这一点,以下代码片段将满足您的要求: func
“x
语法,因此我想确认它用于猛拉文本的寄存器
例如,如果我要键入
“x3yy
,我的理想输出将是“将3行拉入x”,而不是当前的“将3行拉入x”。是否可以以某种方式修改此报告?理想情况下,它还可以用于删除等操作。此功能已添加到后修补程序中(Ingo Karkat因报告此功能而备受赞誉)
,到目前为止,尚未合并此修补程序。但是,它实现了,这允许您攻击类似的行为,因为它提供了操作类型、使用的寄存器以及复制到寄存器的内容
考虑到这一点,以下代码片段将满足您的要求:
function! s:better_operator_message()
let number = len(v:event['regcontents'])
if v:event['operator'] == 'c' || v:event['operator'] == 'd'
let message = number . ' fewer lines'
elseif v:event['operator'] == 'y'
let message = number . ' lines yanked'
else
return
endif
if v:event['regname'] != ''
let message = message . ' into register ' . v:event['regname']
endif
echom message
endfunction
set report=10000000000
augroup better_operator_message
autocmd!
autocmd TextYankPost * call <sid>better_operator_message()
augroup end
函数!s:better_operator_message()
let number=len(v:event['regcontents'])
如果v:event['operator']='c'| | v:event['operator']='d'
让消息=数字。”少行'
elseif v:event['operator']=='y'
让消息=数字。”拉下的绳子'
其他的
返回
恩迪夫
如果v:event['regname']!='
让消息=消息。”进入寄存器'。v:event['regname']
恩迪夫
回音信息
端功能
设置报告=1000000000
A组更好的操作员信息
自动驾驶!
autocmd TextYankPost*呼叫更好的操作员消息()
螺旋端
如果您感兴趣,我已经将此代码片段作为一个补丁提供。此功能已添加到后补丁中(因Ingo Karkat的报告而感到荣幸) ,到目前为止,尚未合并此修补程序。但是,它实现了,这允许您攻击类似的行为,因为它提供了操作类型、使用的寄存器以及复制到寄存器的内容 考虑到这一点,以下代码片段将满足您的要求:
function! s:better_operator_message()
let number = len(v:event['regcontents'])
if v:event['operator'] == 'c' || v:event['operator'] == 'd'
let message = number . ' fewer lines'
elseif v:event['operator'] == 'y'
let message = number . ' lines yanked'
else
return
endif
if v:event['regname'] != ''
let message = message . ' into register ' . v:event['regname']
endif
echom message
endfunction
set report=10000000000
augroup better_operator_message
autocmd!
autocmd TextYankPost * call <sid>better_operator_message()
augroup end
函数!s:better_operator_message()
let number=len(v:event['regcontents'])
如果v:event['operator']='c'| | v:event['operator']='d'
让消息=数字。”少行'
elseif v:event['operator']=='y'
让消息=数字。”拉下的绳子'
其他的
返回
恩迪夫
如果v:event['regname']!='
让消息=消息。”进入寄存器'。v:event['regname']
恩迪夫
回音信息
端功能
设置报告=1000000000
A组更好的操作员信息
自动驾驶!
autocmd TextYankPost*呼叫更好的操作员消息()
螺旋端
如果您感兴趣的话,我已经将此代码片段作为一个示例提供了。这在最近的Vim版本中得到了解决,从版本8.0.0724开始:yanking的消息并不表示注册 升级后(通过等待操作系统的软件包可用,或自己编译Vim),例如
“a4yy
上的消息将是:
这在最近的Vim版本(从版本8.0.0724开始)中得到了解决:yanking的消息并不表示寄存器 升级后(通过等待操作系统的软件包可用,或自己编译Vim),例如
“a4yy
上的消息将是:
我懂了。我想它可能不会被支持。我会将此添加到切换到Neovim可能带来的好处列表中;)谢谢我懂了。我想它可能不会被支持。我会将此添加到切换到Neovim可能带来的好处列表中;)谢谢