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

时间:2015-12-11 13:15:14

标签: visual-studio visual-studio-2012

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

是否可以在添加程序 Arguments 字段中获取行和/或字符偏移量?

AddProgrammeDialog

编辑:有没有办法通过扩展程序访问这些开放事件,其中包含有关文件,行和所选开放程序的信息?

3 个答案:

答案 0 :(得分:7)

使用$(ItemPath) -n$(CurLine)作为参数为我做了工作:

enter image description here

答案 1 :(得分:4)

默认情况下不可能,因为没有Arguments反映搜索结果。因此,您首先在VisualStudio中打开文件,然后使用外部工具。

我认为您可以创建一个自定义的Visual-Studio插件并在搜索结果的选择范围内挂钩。查看可用于VS 2015,2013和2012的Adding Search to a Tool Window。这种方式的实现似乎是Quick Open File Plugin for VS2010,但缺少输入亚麻布的文本框。

有关在MSDN

上创建VS插件的更多文档 顺便说一句,你有没有检查过“Promt for arguments”选项来扩展Thomas的回答:

External Tools VS Dialog

答案 2 :(得分:1)

您可以通过两个步骤获得解决方案,一旦获得搜索结果,这两个步骤都会花费很少的时间。 Double-click the resultpress ctrl-shift-alt-L(当然可以更改)。

以下步骤尽可能详细,以便每个人都能理解这些步骤并进行相应的修改。

创建一个cmd文件,该文件将使用文件,行和列参数启动notepad ++

将以下代码保存在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

tools | External Tools...

enter image description here

记住此命令的位置,在这种情况下为3。

创建" command3"

的键盘快捷键

tools | Options | Keyboard并搜索externalcommand

enter image description here

例如,将所需的组合键分配给此命令ctrl-shift-alt L

在“工具”菜单上验证您的命令是否符合预期

enter image description here

现在全力以赴

  • 在Visual Studio中打开文件
  • 在文件中搜索
  • 双击所需的搜索结果
  • ctrl-shift-alt L

Notepad ++在搜索结果的行和列上打开文件!

enter image description here

剩下什么?

  • pause从cmd文件中取出,因为它仅用于调试目的。
  • 决定是否需要-multiInst -nosession参数
  • 查看Arguments for External Tools,了解启动外部工具时分配的所有变量。

<强>结论

这是一个有趣的问题,也是我以前没有探索过的一个领域。我可能会自己使用这种技术并用于其他目的。