Visual studio 在Visual Studio中更改或添加默认编辑器
我想在Visual Studio 2012中为文件类型添加一个新的(外部)默认编辑器。我的编辑器(Notepad++)支持通过程序参数直接跳到特定行。遗憾的是,没有提到在给定上下文中使用行(和字符)偏移量的任何宏参数(即双击搜索结果时) 是否可以在Add程序的参数字段中获取行和/或字符偏移量 编辑:有没有一种方法可以通过扩展名访问这些打开的事件,扩展名中包含有关文件、行和所选打开程序的信息?使用Visual studio 在Visual Studio中更改或添加默认编辑器,visual-studio,visual-studio-2012,Visual Studio,Visual Studio 2012,我想在Visual Studio 2012中为文件类型添加一个新的(外部)默认编辑器。我的编辑器(Notepad++)支持通过程序参数直接跳到特定行。遗憾的是,没有提到在给定上下文中使用行(和字符)偏移量的任何宏参数(即双击搜索结果时) 是否可以在Add程序的参数字段中获取行和/或字符偏移量 编辑:有没有一种方法可以通过扩展名访问这些打开的事件,扩展名中包含有关文件、行和所选打开程序的信息?使用$(ItemPath)-n$(CurLine)作为参数为我工作: 默认情况下,这是不可能的,因为没有
$(ItemPath)-n$(CurLine)
作为参数为我工作:
默认情况下,这是不可能的,因为没有反映搜索结果的属性。因此,您必须首先在VisualStudio中打开该文件,然后使用外部工具 我认为您可以创建一个定制的VisualStudio插件,并在搜索结果的选择中挂钩。查看VS 2015、2013和2012的可用数据。这种方式的一些实现似乎很简单,但缺少一个用于输入行号的文本框 创建VS插件的更多文档 顺便说一句,您是否选中了“Promt for arguments”选项以扩展Thomas答案:
您可以通过两个步骤来解决此问题,这两个步骤在您获得搜索结果后所需的时间都很短
双击结果
,按ctrl-shift-alt-L
(当然可以更改)
下面的步骤非常详细,尽可能多地显示,以便每个人都能理解这些步骤并进行相应的修改
创建一个cmd文件,用文件、行和列参数启动记事本+
将下面的代码保存在d:\util\startnppwith3args.cmd
setlocal
set _file=%0
set _line=%1
set _column=%2
set _line=%_line:"=%
set _column=%_column:"=%
: remember to use "" as first arg as blank title so we call npp properly :)
start "" "F:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst -nosession -n%_line% -c%_column% %_file%
pause
endlocal
创建外部工具以调用startnppwith3args.cmd
工具|外部工具…
记住此命令的位置,在本例中为3
创建“command3”的快捷键
工具|选项|键盘
并搜索外部命令
例如,将所需的组合键指定给该命令
验证您的命令是否与“工具”菜单上的预期一致
现在付诸行动
- 在Visual Studio中打开文件
- 在文件中搜索某些内容
- 双击所需的搜索结果
- 按ctrl shift alt L键
- 从cmd文件中取出
,因为它仅用于调试目的暂停
- 决定是否需要
参数-multiInst-nosession
- 查看启动外部工具时分配的所有变量
这是一个有趣的问题,也是我以前从未探索过的领域。我可能会自己使用这种技术,也可能用于其他目的。遗憾的是,只有当文件已经在Visual Studio的文本编辑器中打开时,这种方法才有效,我正试图避免这种情况。当我将相同的参数作为外部编辑器应用到“添加程序”对话框时,宏
$(…)
似乎无法解析,因为记事本++以C:\Program Files(x86)\Notepad++\$(ItemPath)打开时不存在。创造它?@BeyelerStudios哦。我懂了。您想从哪里打开它?主要是从查找结果window@BeyelerStudios我已经找了很多地方,我没有找到任何相关的解决方案。。。祝你好运,我怀疑这是不可能的…谢谢你的关注,我会在我自己进一步了解后更新我的问题,但目前我是Stuck,我不认为你能从一个特定的搜索结果源代码行(你双击的那一行)中获得行和列位置,这是OP想要的,仅“查找结果”工具窗口的当前行和列位置完全不同。双击搜索结果时,将显示结果的行和列。使用此信息启动外部工具。我在帖子顶部把它称为两步解决方案。好的,对不起,我没有看到。然而,这并不是一个令人满意的答案:-)谢谢,但我真的试图避免在一开始就在内部编辑器中打开文件,因为它会为大型xaml文件启动一个有缺陷的后台进程-到目前为止,在外部编辑器中打开它(通过将其设置为默认编辑器),然后“转到行”是为我做最好的工作。。。