Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打印有关Vim报告中使用的寄存器的信息_Vim_Vim Registers - Fatal编程技术网

打印有关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可能带来的好处列表中;)谢谢