Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
Visual studio 在Visual Studio中更改或添加默认编辑器_Visual Studio_Visual Studio 2012 - Fatal编程技术网

Visual studio 在Visual Studio中更改或添加默认编辑器

Visual studio 在Visual Studio中更改或添加默认编辑器,visual-studio,visual-studio-2012,Visual Studio,Visual Studio 2012,我想在Visual Studio 2012中为文件类型添加一个新的(外部)默认编辑器。我的编辑器(Notepad++)支持通过程序参数直接跳到特定行。遗憾的是,没有提到在给定上下文中使用行(和字符)偏移量的任何宏参数(即双击搜索结果时) 是否可以在Add程序的参数字段中获取行和/或字符偏移量 编辑:有没有一种方法可以通过扩展名访问这些打开的事件,扩展名中包含有关文件、行和所选打开程序的信息?使用$(ItemPath)-n$(CurLine)作为参数为我工作: 默认情况下,这是不可能的,因为没有

我想在Visual Studio 2012中为文件类型添加一个新的(外部)默认编辑器。我的编辑器(Notepad++)支持通过程序参数直接跳到特定行。遗憾的是,没有提到在给定上下文中使用行(和字符)偏移量的任何宏参数(即双击搜索结果时)

是否可以在Add程序的参数字段中获取行和/或字符偏移量

编辑:有没有一种方法可以通过扩展名访问这些打开的事件,扩展名中包含有关文件、行和所选打开程序的信息?

使用
$(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文件启动一个有缺陷的后台进程-到目前为止,在外部编辑器中打开它(通过将其设置为默认编辑器),然后“转到行”是为我做最好的工作。。。