You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vim中为YcmCompleter RefactorRename绑定快捷键

实现方案

你遇到的报错和功能不符合预期的问题可以通过修改映射配置解决,正确配置如下:

nnoremap <leader>rn :<C-u>exe 'YcmCompleter RefactorRename ' . shellescape(input('Rename "' . expand('<cword>') . '" to: ', expand('<cword>')))<CR>

配置说明

  • 采用nnoremap非递归映射,避免被其他映射规则影响,稳定性更强
  • <C-u>用于清除命令行默认的范围前缀,避免误传入行号等无效参数导致命令执行失败
  • input()函数的第二个参数为输入框默认填充值,此处传入expand('<cword>')即可默认显示当前光标下的待重命名符号名,匹配你的需求
  • shellescape()对输入的新名称做转义处理,避免新名称包含空格、特殊符号时命令解析出错

原有配置报错原因

你之前的映射末尾多了一个多余的双引号,执行时会被当做参数的一部分传递给YCM,相当于实际执行的命令是YcmCompleter RefactorRename 新名称",携带了无效的后缀引号,YCM无法识别因此抛出重命名失败错误,手动输入命令时不会带上这个多余引号,所以可以正常执行。

内容的提问来源于stack exchange,提问作者Arsen Zahray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:06:07