在Resharper中,当我回去编辑一些现有的代码时......例如。想要将String.Format插入此代码:
<td>
<%= Html.Encode(item.Address) %>
</td>
我将光标移动到'item'之前并输入'String.F',获得Resharper的intellisense完成列表,其中包含'Format'方法。
但是,如果我按 TAB ,则会将'item'替换为'.Format()'
有没有办法在不替换现有文本的情况下使用完成?
答案 0 :(得分:10)
偶然使用 Enter 而不是 TAB 从完成列表中进行选择。这正是我想要的。它使用String.Format(..)包围(在本例中)'item.Address'。
答案 1 :(得分:9)
您可以使用两种技术。
第一种是使用Enter键,第二种是在您要开始输入的位置和下一位代码之间弹出一个空格,这将阻止下一位代码被覆盖。
答案 2 :(得分:4)
现在有一个实际设置可以禁用此(恼人的)行为。
转到“选项”对话框(菜单 - &gt; Resharper - &gt;选项)。 在此选项对话框中,转到环境 - &gt;智能感知 - &gt;完成字符。
您可以在此处将Tab行为设置为Insert而不是Replace。
Resharper documentation about Completing Characters
这是2010年答案的补充,适用于通过populair搜索引擎到达此帖子的所有人;)
答案 3 :(得分:1)
您也可以使用String.Format
环绕模板,但您可能需要将热键映射到该模板以便于访问。
答案 4 :(得分:0)
您要使用的键盘命令称为:Resharper_ForceCompleteItem
。因此,如果您进入Visual Studio的工具&gt;选项&gt;环境&gt;键盘你可以在那里分配键盘快捷键。但不确定是否可以使用 Tab 。