Visual studio 用于取消引用文本的Visual Studio 2015/ReSharper键盘快捷键
有了VIM,我可以使用Tim Pope奇妙的VIM环绕插件将光标放在字符串中,并发出Visual studio 用于取消引用文本的Visual Studio 2015/ReSharper键盘快捷键,visual-studio,visual-studio-2015,macros,resharper,keyboard-shortcuts,Visual Studio,Visual Studio 2015,Macros,Resharper,Keyboard Shortcuts,有了VIM,我可以使用Tim Pope奇妙的VIM环绕插件将光标放在字符串中,并发出ds”键盘序列以取消引用。如何在VS本机或Resharper中实现等效功能 VIM+VIM环绕声: “aaa | aaaaa”-->按ds”-->aaa | aaaaa 在VS中,我知道我可以使用正则表达式查找/替换查询: |“aaaaaaa”-->按Ctrl+H--> 查找:“(.+?)”“|”(.+?)” 替换为:$1 。。。按Alt+R替换下一个,我们有: aaaaaa (选择下一个匹配的带引号的字符串)
ds”
键盘序列以取消引用。如何在VS本机或Resharper中实现等效功能
- VIM+VIM环绕声:
-->按“aaa | aaaaa”
-->aaa | aaaaads”
- 在VS中,我知道我可以使用正则表达式查找/替换查询:
-->按|“aaaaaaa”
--> 查找:Ctrl+H
替换为:“(.+?)”“|”(.+?)”
。。。按$1
替换下一个,我们有:Alt+R
(选择下一个匹配的带引号的字符串)aaaaaa
vsFindTarget
和vsfindpatternsynx.vsFindPatternSyntaxRegExpr
以下是我失败的宏代码:
dte.ExecuteCommand("Edit.Replace");
dte.Find.FindWhat = "\"(.+?)\"|'(.+?)'";
dte.Find.ReplaceWith = "$1"
dte.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
dte.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
dte.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
dte.Find.Action = vsFindAction.vsFindActionReplace
dte.Find.Execute()
我看了,但我得到的问题如上所述。让我觉得VisualStudio扩展的宏在原生VS API的基础上有自己的API,或者(很可能)我就是不明白
任何帮助都将不胜感激。谢谢 我决定将Vim与Visual Studio集成,但与控制台Vim而不是gVim集成:
- 标题:
&Vim
- 命令:
(或您拥有的C:\[…]\usr\bin\mintty.exe
——例如,它是Git for Windows安装的一部分)mintty.exe
- 参数:
(使用到“C:\[…]\usr\bin\vim.exe”+“调用游标($(CurLine),$(CurCol))”+“运行时visualstudioinvoke.vim”“$(ItemFileName)$(ItemExt)”
vim.exe的实际路径;很长的路径可能无法工作)
- 初始目录:
$(ItemDir)
- (可选)为方便起见,将工具设置为第一个(参见第4点)
- 单击确定
~/.vim/visualstudioinvoke.vim
或~/vimfiles/visualstudioinvoke.vim
,具体取决于哪种方法有效(对于我来说,前者有效),并包含以下内容:检测环境外的文件何时更改
和重新加载修改过的文件,除非有未保存的更改
- 转到工具选项环境键盘并显示包含以下内容的命令:
(假设Vim是第一个外部工具)工具。ExternalCommand1
- 在按下快捷键下,我使用了组合键;用你喜欢的任何东西
就这样。现在,您可以在Vim中快速打开在VS中查看的文件,并保留光标位置。保存的更改也会在编辑器之间自动同步。对于文本取消引用,请确保Vim中有。vsFindTarget类位于EnvDTE命名空间中。您可以尝试像EnvDTE.vsFindTarget.vsFindTargetCurrentDocument一样访问它。不幸的是,这不起作用:“EnvDTE”未定义。我需要的一些信息似乎在这里:这里:。如果我弄明白了,我会发回的。我还发现了这个:。我只需要把它们放在一起。对不起,我对Visual Studio扩展的宏没有太多经验。作为开发vsix扩展的替代方案,您可以使用我的VisualCommander运行此宏。我现在已经使用了10天,它的效果非常好。我改变的一件事是启动Vim的按键组合。现在是[Ctrl]+[Alt]+[Shift]+[v],它似乎与任何东西都没有冲突。因为我没有收到其他完整的答案,我接受这个作为选择的解决方案。
set autoread
autocmd CursorMoved,CursorMovedI * call CheckTime()
" How many seconds to wait between file timestamp checks
let s:check_time_delay=5
let s:last_check_time=reltime()
function CheckTime()
if(reltime(s:last_check_time)[0] > s:check_time_delay)
let s:last_check_time=reltime()
checktime %
endif
endfunction