时间很贵,允许我写得简略。
商业防火墙里,ISA + 域管理算是很bt的了。我们的ISA防火墙还设置了过滤器,只允许通过NTLM方式验证的HTTP代理访问入埠80端口的HTTP网站。非HTTP数据还过不去。在这么变态的环境下如何玩游戏、炒股、下电驴、看片呢(仅仅是列出各种应用场景,不代表本人亲自在公司做这些事)?
土鳖办法是“通通通”,受制于人,略过。
我现在采用的是http隧道,在家自己建隧道服务器。本机(或在公司里的某台闲置机)装隧道客户端,开放socks 5服务。
现在问题是怎么让普通应用程序消费这个socks 5服务。很多人想到sockscap,我鄙视。因为每一个应用程序要分别设置过去,而且对于后台服务或者shell程序基本没办法。例如TortoiseSVN。
所以我一贯用ProxyCap。3.15支持Vista,但是发现问题,ProxyCap3.15霸占LSP,ISA的客户端代理FWC不能用了(拦不到任何数据,不显示绿色的箭头也不显示红叉)。联系ProxyCap提交了bug,N天了也没有回复我日。
于是乎找到了Proxfier PE。以前没用它是嫌规则设置似乎比ProxyCap弱一点点。但基本很够用。于是乎又启用起Proxfier,感觉比较爽,因为这回跟FWC不冲突了,而且安装不需要重启,绿色。
时间宝贵惜字如金再会。
2009年3月16日星期一
突破公司的防火墙封锁
2008年10月6日星期一
解决VMware启动故障
VMware启动时弹出对话框:
| --------------------------- VMware Workstation Error --------------------------- VMware Workstation unrecoverable error: (vmui) Unable to create VmappPoll object: 没有注册类别. Reinstalling VMware Workstation may help. A log file is available in "E:\temp\vmware-Victor.Woo\vmware-Victor.Woo-3912.log". A core file is available in "C:\Documents and Settings\Victor.Woo\Application Data\VMware\vmware-3912.dmp". Please request support and include the contents of the log file and core file. To collect data to submit to VMware support, select Help > About and click "Collect Support Data". You can also run the "vm-support" script in the Workstation folder directly. We will respond on the basis of your support entitlement. --------------------------- 确定 --------------------------- |
log里的内容是:
| Oct 06 09:04:11.107: vmui| Msg_Post: Error Oct 06 09:04:11.107: vmui| [msg.log.error.unrecoverable] VMware Workstation unrecoverable error: (vmui) Oct 06 09:04:11.107: vmui| Unable to create VmappPoll object: 没有注册类别. Reinstalling VMware Workstation may help. Oct 06 09:04:11.107: vmui| [msg.panic.haveLog] A log file is available in "E:\temp\vmware-Victor.Woo\vmware-Victor.Woo-3912.log". [msg.panic.haveCore] A core file is available in "C:\Documents and Settings\Victor.Woo\Application Data\VMware\vmware-3912.dmp". [msg.panic.requestSupport.withLogAndCore] Please request support and include the contents of the log file and core file. [msg.panic.requestSupport.vmSupport.windowsOrLinux] Oct 06 09:04:11.107: vmui| To collect data to submit to VMware support, select Help > About and click "Collect Support Data". You can also run the "vm-support" script in the Workstation folder directly. Oct 06 09:04:11.107: vmui| [msg.panic.response] We will respond on the basis of your support entitlement. Oct 06 09:04:11.107: vmui| ---------------------------------------- |
经过一番查找,发现是3个dll的注册丢失了,而且这种现象连续3天出现。于是,写了一个批处理文件,需要的时候执行一下,万事大吉。
| rem ----- repairvmware.bat ----- regsvr32.exe /s %ProgramFiles%\VMware\VMware Workstation\vmappsdk.dll regsvr32.exe /s %ProgramFiles%\VMware\VMware Workstation\vmdbCOM.dll regsvr32.exe /s %ProgramFiles%\VMware\VMware Workstation\vmnetBridge.dll |
2008年10月5日星期日
.NET插件框架和依赖注入(1):MEF、MAF(System.Addins)、Unity的概念
微软推出.NET插件框架经历了一个漫长的时期,截至写稿时,一些功能还尚未正式发布,令广大程序员翘首以待。先给出一些有用的链接。
一、MEF:
http://code.msdn.microsoft.com/mef
http://www.codeplex.com/MEF
http://blog.joycode.com/brada/archive/2008/10/04/115290.aspx
http://www.cnblogs.com/Terrylee/archive/2008/09/01/uisng-managed-extensibility-framework-overview.html
二、MAF:
http://msdn.microsoft.com/zh-cn/library/bb384241.aspx
http://www.codeplex.com/clraddins
MAF的工具(Pipeline Builder):
http://www.codeplex.com/clraddins/Wiki/View.aspx?title=Pipeline%20Builder&referringTitle=Home
FxCop rules for Addins:
http://www.codeplex.com/clraddins/Wiki/View.aspx?title=Add-in%20FxCop%20Rules&referringTitle=Home
三、Unity:
http://www.codeplex.com/unity/Release/ProjectReleases.aspx?ReleaseId=13598
http://www.cnblogs.com/Terrylee/archive/2008/02/21/unity-application-block-part1.html
下一篇文章将叙述它们的关系与区别。
标签: .NET插件框架和依赖注入, 探索
2008年9月30日星期二
cdbe辅助脚本
关于CDBE的概念,它是一个Docbook套件,请参见 http://sinosmond.com/media/cdbe/manual/cdbe_layout.html
创建目录结构是繁琐的工作。这里用一个脚本帮你实现:
-------------------- createdir.bat ---------------------
if exist "%1" (
set DefaultBookName=%1
goto BOOK_NAME_FOUND
)
set DefaultBookName=DefaultBook
:BOOK_NAME_FOUND
echo Generating %DefaultBookName%
for /f %%A in (language.txt) do md books\%DefaultBookName%\%%A\src
for /F %%A in (language.txt) do md output\%DefaultBookName%\%%A\chunk
for /F %%A in (language.txt) do md output\%DefaultBookName%\%%A\html
for /F %%A in (language.txt) do md output\%DefaultBookName%\%%A\pdf
for /F %%A in (language.txt) do md output\%DefaultBookName%\%%A\plain
for /F %%A in (language.txt) do md website\%DefaultBookName%\contrib
for /F %%A in (language.txt) do md website\%DefaultBookName%\graphics
for /F %%A in (language.txt) do md website\%DefaultBookName%\projects
for /F %%A in (language.txt) do md website\%DefaultBookName%\stylesheets
--------------- language.txt -----------------------
en
zh-cn
请大家更新我博客新地址
请大家更新我的博客的新地址: http://blog.vichamp.com/
该地址既可以网页的形式查看,同时也是一个可添加到订阅工具的rss feed。
---------分割线,对于关注我的朋友,以上信息够用了。-------------
以下解释一下这么做的原因:
因为“国家防火墙”的原因,我位于blogspot上的博客经常被屏蔽。很是令人郁闷。今天彻底解决一下这个问题。请朋友们更新收藏夹及rss订阅工具里的链接。给朋友带来的不便,只好请多包涵。
以前为了防止屏蔽,我购买了一个顶级域名,并且使用“自定义域名”的方式,为blogger做绑定。可惜过了一段时间这种方法也遭屏蔽。
这样来说,各种方法都不能太信任,都有可能被屏蔽。于是想到一个新方法,能在被屏蔽的时候基本不影响用户体验:先找一个国外的rss聚合服务。能读取rss,并生成一个新的rss地址。这里我选择了xfruits(http://xfruits.com)。然后再用国内的feedsky(www.feedsky.com)来读取该rss地址。然后再将我购买的域名绑定到feedsky。由于feedsky或者我的域名被屏蔽的可能性比较小。那么有可能被屏蔽的就是中间的跳板——xfruits.com。不过没关系,如果跳板被屏蔽的话,我们可以换一家跳板,用户感觉不出来。如果哪天feedsky被屏蔽的话,还可以把feedsky换掉,用户还是感觉不出来。
用软件设计的术语来说,请参见gof的design pattern - adapter pattern。
以下记录一下几个可能有用的链接,可以从技术上描述一下一个feed是如何流到您的订阅工具的:
我的blogspot博客原始入口
WEB: http://vichamp.blogspot.com/
RSS: http://vichamp.blogspot.com/feeds/posts/default
xfruits.com(跳板服务)
WEB: http://xfruits.com/victorwoo/blogweb/
RSS: http://xfruits.com/victorwoo/blogrss/
feedsky
WEB&RSS: http://feed.feedsky.com/vichamp
绑定自定义域名之后
WEB&RSS: http://blog.vichamp.com -- 请大家收藏这个,因为基本不会改变。
大家可能会觉得我很折腾。但是没办法,这是目前最好的办法了。
2008年9月11日星期四
解决中文版VisualStudio中使用Resharper快捷键问题
在非英文版的Visual Studio中安装Resharper以后会出现如下提示:
---------------------------
ReSharper
---------------------------
Some keyboard shortcuts could not be assigned because the current keyboard scheme is read only.
Change the keyboard scheme and try again.
---------------------------
确定
---------------------------
打开Visual Studio -- Resharper -- Options -- General -- Restore Resharper keyboard shortcuts ,点击 Apply ,也同样出现上述提示框。那么可以确定,是当 Resharper 修改 Visual Studio 的快捷键映射表的时候发生错误。
快捷键的映射表包含在 Visual Studio 的用户设置文件 %USERPROFILE%\My Documents\Visual Studio 2008\Settings\CurrentSettings.vssettings 中。它是一个xml文档,默认是没有排版的。我们可以将它复制一份,更名为xml后缀,用ie或者xmlspy等工具打开,对它进行排版,以便查看和后续操作。
通过比较中文版和英文版的设置文件,在以下(xpath)路径中,我们可以找到一些不同之处:
/UserSettings/Category[@name="Environment_Group"]/Category[@name="Environment_KeyBindings"]/KeyboardShortcuts
中文版的vssettings的<UserShortcuts/>节中,少了不少条目,经过手工设置快捷键( Visual Studio -- 工具 -- 选项 -- 环境 -- 键盘)并对vssettings进行diff比较,发现中英文版的一些关键字不同,例如英文版为 Scope="Global" ,中文版为 Scope="全局" ;英文版为 Up Arrow ,中文版为上箭头。由此可以推断,Resharper在进行检索的时候仅仅按英文进行检索,故找不到一些特定的关键字。
这里批评一下微软,对于这类非展现给用户查看的元数据,不应进行本地化。否则第三方程序进行索引的时候会遇到困难。特别需要本地化的场合,也应做一个映射表。
经过整理,我总结出中英文版本vssettings文件<UserShortcuts/>节中的不同之处。用户可以手工把<UserShortcuts/>节截取出来,进行字符串替换。将英文版的关键字替换成中文版的关键字。
以下每一条第一行为英文版,第二行为中文版。
Scope="Global"
Scope="全局"
Scope="Text Editor"
Scope="文本编辑器"
Del</Shortcut>
Delete</Shortcut>
Ins</Shortcut>
Insert</Shortcut>
+Up Arrow
+上箭头
+Down Arrow
+下箭头
+Left Arrow
+左箭头
+Right Arrow
+右箭头
+PgUp
+Page Up
+PgDn
+Page Down
+Space
+空格键
+Bkspce
+Backsapce
*** 为了方便读者,贴出整理后与Resharper有关的快捷键映射,请定位到<UserShortcuts/>节的尾部,删除包含Resharper的两个<Shortcut/>,并添加以下内容 ***
<Shortcut Command="ReSharper_ErrorsView_IgnoreErrors" Scope="ReSharper Errors in Solution Window">Delete</Shortcut>
<Shortcut Command="ReSharper_ErrorsView_UnignoreErrors" Scope="ReSharper Errors in Solution Window">Insert</Shortcut>
<Shortcut Command="ReSharper.ReSharper_RefactorThis" Scope="文本编辑器">Ctrl+Shift+R</Shortcut>
<RemoveShortcut Command="Tools.RecordTemporaryMacro" Scope="全局">Ctrl+Shift+R</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_RefactorThis" Scope="全局">Ctrl+Shift+R</Shortcut>
<Shortcut Command="ReSharper.ReSharper_Rename" Scope="文本编辑器">Ctrl+R, R</Shortcut>
<Shortcut Command="ReSharper.ReSharper_Rename" Scope="全局">Ctrl+R, R</Shortcut>
<Shortcut Command="ReSharper.ReSharper_Rename" Scope="文本编辑器">Ctrl+R, Ctrl+R</Shortcut>
<RemoveShortcut Command="Refactor.Rename" Scope="全局">Ctrl+R, Ctrl+R</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_Rename" Scope="全局">Ctrl+R, Ctrl+R</Shortcut>
<Shortcut Command="ReSharper.ReSharper_Move" Scope="文本编辑器">Ctrl+R, O</Shortcut>
<Shortcut Command="ReSharper.ReSharper_Move" Scope="全局">Ctrl+R, O</Shortcut>
<Shortcut Command="ReSharper.ReSharper_Move" Scope="文本编辑器">Ctrl+R, Ctrl+O</Shortcut>
<RemoveShortcut Command="Refactor.ReorderParameters" Scope="全局">Ctrl+R, Ctrl+O</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_Move" Scope="全局">Ctrl+R, Ctrl+O</Shortcut>
<Shortcut Command="ReSharper.ReSharper_SafeDelete" Scope="文本编辑器">Ctrl+R, D</Shortcut>
<RemoveShortcut Command="TestResults.RunAllTestsInTestResults" Scope="全局">Ctrl+R, D</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_SafeDelete" Scope="全局">Ctrl+R, D</Shortcut>
<Shortcut Command="ReSharper.ReSharper_SafeDelete" Scope="文本编辑器">Ctrl+R, Ctrl+D</Shortcut>
<RemoveShortcut Command="TestResults.DebugAllTestsInTestResults" Scope="全局">Ctrl+R, Ctrl+D</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_SafeDelete" Scope="全局">Ctrl+R, Ctrl+D</Shortcut>
<Shortcut Command="ReSharper.ReSharper_SafeDelete" Scope="文本编辑器">Alt+Delete</Shortcut>
<Shortcut Command="ReSharper.ReSharper_SafeDelete" Scope="全局">Alt+Delete</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ExtractMethod" Scope="文本编辑器">Ctrl+R, M</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ExtractMethod" Scope="文本编辑器">Ctrl+R, Ctrl+M</Shortcut>
<Shortcut Command="ReSharper.ReSharper_IntroduceVariable" Scope="文本编辑器">Ctrl+R, V</Shortcut>
<Shortcut Command="ReSharper.ReSharper_IntroduceVariable" Scope="文本编辑器">Ctrl+R, Ctrl+V</Shortcut>
<Shortcut Command="ReSharper.ReSharper_IntroduceField" Scope="文本编辑器">Ctrl+R, F</Shortcut>
<Shortcut Command="ReSharper.ReSharper_IntroduceField" Scope="文本编辑器">Ctrl+R, Ctrl+F</Shortcut>
<Shortcut Command="ReSharper.ReSharper_IntroParameter" Scope="文本编辑器">Ctrl+R, P</Shortcut>
<Shortcut Command="ReSharper.ReSharper_IntroParameter" Scope="文本编辑器">Ctrl+R, Ctrl+P</Shortcut>
<Shortcut Command="ReSharper.ReSharper_InlineVariable" Scope="文本编辑器">Ctrl+R, I</Shortcut>
<Shortcut Command="ReSharper.ReSharper_InlineVariable" Scope="文本编辑器">Ctrl+R, Ctrl+I</Shortcut>
<Shortcut Command="ReSharper.ReSharper_EncapsulateField" Scope="文本编辑器">Ctrl+R, E</Shortcut>
<Shortcut Command="ReSharper.ReSharper_EncapsulateField" Scope="全局">Ctrl+R, E</Shortcut>
<Shortcut Command="ReSharper.ReSharper_EncapsulateField" Scope="文本编辑器">Ctrl+R, Ctrl+E</Shortcut>
<RemoveShortcut Command="Refactor.EncapsulateField" Scope="全局">Ctrl+R, Ctrl+E</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_EncapsulateField" Scope="全局">Ctrl+R, Ctrl+E</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ChangeSignature" Scope="文本编辑器">Ctrl+R, S</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ChangeSignature" Scope="全局">Ctrl+R, S</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ChangeSignature" Scope="文本编辑器">Ctrl+R, Ctrl+S</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ChangeSignature" Scope="全局">Ctrl+R, Ctrl+S</Shortcut>
<RemoveShortcut Command="Edit.LineOpenAbove" Scope="文本编辑器">Ctrl+Enter</RemoveShortcut>
<Shortcut Command="ReSharper_ForceCompleteItem" Scope="文本编辑器">Ctrl+Enter</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ShowFindResults" Scope="文本编辑器">Ctrl+Alt+F12</Shortcut>
<RemoveShortcut Command="View.FindSymbolResults" Scope="全局">Ctrl+Alt+F12</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_ShowFindResults" Scope="全局">Ctrl+Alt+F12</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ShowTypeHierarchy" Scope="文本编辑器">Ctrl+Alt+H</Shortcut>
<RemoveShortcut Command="Debug.Threads" Scope="全局">Ctrl+Alt+H</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_ShowTypeHierarchy" Scope="全局">Ctrl+Alt+H</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ShowCodeStructure" Scope="文本编辑器">Ctrl+Alt+F</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ShowCodeStructure" Scope="全局">Ctrl+Alt+F</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ShowTodoExplorer" Scope="文本编辑器">Ctrl+Alt+D</Shortcut>
<RemoveShortcut Command="Debug.Disassembly" Scope="全局">Ctrl+Alt+D</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_ShowTodoExplorer" Scope="全局">Ctrl+Alt+D</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ShowUnitTestExplorer" Scope="文本编辑器">Ctrl+Alt+U</Shortcut>
<RemoveShortcut Command="Debug.Modules" Scope="全局">Ctrl+Alt+U</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_ShowUnitTestExplorer" Scope="全局">Ctrl+Alt+U</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ShowUnitTestSessions" Scope="文本编辑器">Ctrl+Alt+T</Shortcut>
<RemoveShortcut Command="View.DocumentOutline" Scope="全局">Ctrl+Alt+T</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_ShowUnitTestSessions" Scope="全局">Ctrl+Alt+T</Shortcut>
<Shortcut Command="ReSharper.ReSharper_FindUsagesAdvanced" Scope="文本编辑器">Ctrl+Shift+Alt+F12</Shortcut>
<Shortcut Command="ReSharper.ReSharper_FindUsagesAdvanced" Scope="全局">Ctrl+Shift+Alt+F12</Shortcut>
<Shortcut Command="ReSharper.ReSharper_HighlightUsages" Scope="文本编辑器">Shift+Alt+F11</Shortcut>
<Shortcut Command="ReSharper.ReSharper_HighlightUsages" Scope="全局">Shift+Alt+F11</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoPreviousOccurence" Scope="文本编辑器">Ctrl+Alt+Page Up</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoPreviousOccurence" Scope="全局">Ctrl+Alt+Page Up</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoNextOccurence" Scope="文本编辑器">Ctrl+Alt+Page Down</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoNextOccurence" Scope="全局">Ctrl+Alt+Page Down</Shortcut>
<Shortcut Command="ReSharper.ReSharper_LocateInSolutionExplorerAction" Scope="文本编辑器">Shift+Alt+L</Shortcut>
<Shortcut Command="ReSharper.ReSharper_LocateInSolutionExplorerAction" Scope="全局">Shift+Alt+L</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoRecentFiles" Scope="文本编辑器">Ctrl+,</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoRecentFiles" Scope="全局">Ctrl+,</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoRecentEdits" Scope="文本编辑器">Ctrl+Shift+,</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoRecentEdits" Scope="全局">Ctrl+Shift+,</Shortcut>
<Shortcut Command="ReSharper.ReSharper_TypeHierarchy_Browse" Scope="文本编辑器">Ctrl+E, H</Shortcut>
<Shortcut Command="ReSharper.ReSharper_TypeHierarchy_Browse" Scope="全局">Ctrl+E, H</Shortcut>
<Shortcut Command="ReSharper.ReSharper_TypeHierarchy_Browse" Scope="文本编辑器">Ctrl+E, Ctrl+H</Shortcut>
<Shortcut Command="ReSharper.ReSharper_TypeHierarchy_Browse" Scope="全局">Ctrl+E, Ctrl+H</Shortcut>
<Shortcut Command="ReSharper.ReSharper_CompleteCodeTypeName" Scope="文本编辑器">Shift+Alt+空格键</Shortcut>
<Shortcut Command="ReSharper.ReSharper_CompleteCodeSmart" Scope="文本编辑器">Ctrl+Alt+空格键</Shortcut>
<Shortcut Command="ReSharper.ReSharper_LiveTemplates_Insert" Scope="文本编辑器">Ctrl+E, L</Shortcut>
<Shortcut Command="ReSharper.ReSharper_LiveTemplates_Insert" Scope="文本编辑器">Ctrl+E, Ctrl+L</Shortcut>
<Shortcut Command="ReSharper.ReSharper_SurroundWith" Scope="文本编辑器">Ctrl+E, U</Shortcut>
<Shortcut Command="ReSharper.ReSharper_SurroundWith" Scope="文本编辑器">Ctrl+E, Ctrl+U</Shortcut>
<Shortcut Command="ReSharper.ReSharper_Generate" Scope="文本编辑器">Alt+Insert</Shortcut>
<Shortcut Command="ReSharper.ReSharper_Generate" Scope="全局">Alt+Insert</Shortcut>
<Shortcut Command="ReSharper.ReSharper_MoveUp" Scope="文本编辑器">Ctrl+Shift+Alt+上箭头</Shortcut>
<Shortcut Command="ReSharper.ReSharper_MoveDown" Scope="文本编辑器">Ctrl+Shift+Alt+下箭头</Shortcut>
<RemoveShortcut Command="Edit.WordPreviousExtendColumn" Scope="文本编辑器">Ctrl+Shift+Alt+左箭头</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_MoveLeft" Scope="文本编辑器">Ctrl+Shift+Alt+左箭头</Shortcut>
<RemoveShortcut Command="Edit.WordNextExtendColumn" Scope="文本编辑器">Ctrl+Shift+Alt+右箭头</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_MoveRight" Scope="文本编辑器">Ctrl+Shift+Alt+右箭头</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ExtendSelection" Scope="文本编辑器">Ctrl+Alt+右箭头</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ShrinkSelection" Scope="文本编辑器">Ctrl+Alt+左箭头</Shortcut>
<Shortcut Command="ReSharper.ReSharper_DuplicateText" Scope="文本编辑器">Ctrl+D</Shortcut>
<Shortcut Command="ReSharper.ReSharper_LineComment" Scope="文本编辑器">Ctrl+Alt+/</Shortcut>
<Shortcut Command="ReSharper.ReSharper_BlockComment" Scope="文本编辑器">Ctrl+Shift+/</Shortcut>
<Shortcut Command="ReSharper.ReSharper_CleanupCode" Scope="文本编辑器">Ctrl+E, Ctrl+C</Shortcut>
<Shortcut Command="ReSharper.ReSharper_CleanupCode" Scope="全局">Ctrl+E, Ctrl+C</Shortcut>
<Shortcut Command="ReSharper.ReSharper_CleanupCode" Scope="文本编辑器">Ctrl+E, C</Shortcut>
<Shortcut Command="ReSharper.ReSharper_CleanupCode" Scope="全局">Ctrl+E, C</Shortcut>
<Shortcut Command="ReSharper.ReSharper_QuickDoc" Scope="文本编辑器">Ctrl+Shift+F1</Shortcut>
<Shortcut Command="ReSharper.ReSharper_QuickDoc" Scope="全局">Ctrl+Shift+F1</Shortcut>
<RemoveShortcut Command="Edit.CharTranspose" Scope="文本编辑器">Ctrl+T</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_GotoType" Scope="文本编辑器">Ctrl+T</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoType" Scope="全局">Ctrl+T</Shortcut>
<RemoveShortcut Command="Edit.WordTranspose" Scope="文本编辑器">Ctrl+Shift+T</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_GotoFile" Scope="文本编辑器">Ctrl+Shift+T</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoFile" Scope="全局">Ctrl+Shift+T</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoFileMember" Scope="文本编辑器">Alt+\</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoFileMember" Scope="全局">Alt+\</Shortcut>
<RemoveShortcut Command="Edit.LineTranspose" Scope="文本编辑器">Shift+Alt+T</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_GotoSymbol" Scope="文本编辑器">Shift+Alt+T</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoSymbol" Scope="全局">Shift+Alt+T</Shortcut>
<Shortcut Command="ReSharper.ReSharper_NavigateFromHere" Scope="文本编辑器">Alt+`</Shortcut>
<Shortcut Command="ReSharper.ReSharper_NavigateFromHere" Scope="全局">Alt+`</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoTypeDeclaration" Scope="文本编辑器">Ctrl+Shift+F11</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoTypeDeclaration" Scope="全局">Ctrl+Shift+F11</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoBase" Scope="文本编辑器">Alt+Home</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoBase" Scope="全局">Alt+Home</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoInheritors" Scope="文本编辑器">Alt+End</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoInheritors" Scope="全局">Alt+End</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoUsage" Scope="文本编辑器">Shift+Alt+F12</Shortcut>
<RemoveShortcut Command="Edit.QuickFindSymbol" Scope="全局">Shift+Alt+F12</RemoveShortcut>
<Shortcut Command="ReSharper.ReSharper_GotoUsage" Scope="全局">Shift+Alt+F12</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoNextMethod" Scope="文本编辑器">Alt+下箭头</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoNextMethod" Scope="全局">Alt+下箭头</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoPrevMethod" Scope="文本编辑器">Alt+上箭头</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoPrevMethod" Scope="全局">Alt+上箭头</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoContainingDeclaration" Scope="文本编辑器">Ctrl+[</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoContainingDeclaration" Scope="全局">Ctrl+[</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoNextHighlight" Scope="文本编辑器">Alt+Page Down</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoNextHighlight" Scope="全局">Alt+Page Down</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoPrevHighlight" Scope="文本编辑器">Alt+Page Up</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoPrevHighlight" Scope="全局">Alt+Page Up</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoNextErrorInSolution" Scope="文本编辑器">Shift+Alt+Page Down</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoNextErrorInSolution" Scope="全局">Shift+Alt+Page Down</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoPrevErrorInSolution" Scope="文本编辑器">Shift+Alt+Page Up</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoPrevErrorInSolution" Scope="全局">Shift+Alt+Page Up</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoLastEditLocation" Scope="文本编辑器">Ctrl+Shift+Backsapce</Shortcut>
<Shortcut Command="ReSharper.ReSharper_GotoLastEditLocation" Scope="全局">Ctrl+Shift+Backsapce</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ExploreStackTrace" Scope="文本编辑器">Ctrl+E, T</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ExploreStackTrace" Scope="全局">Ctrl+E, T</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ExploreStackTrace" Scope="文本编辑器">Ctrl+E, Ctrl+T</Shortcut>
<Shortcut Command="ReSharper.ReSharper_ExploreStackTrace" Scope="全局">Ctrl+E, Ctrl+T</Shortcut>
<Shortcut Command="ReSharper_SilentCleanupCode" Scope="文本编辑器">Ctrl+E, F</Shortcut>
<Shortcut Command="ReSharper_SilentCleanupCode" Scope="全局">Ctrl+E, F</Shortcut>
<Shortcut Command="ReSharper_SilentCleanupCode" Scope="文本编辑器">Ctrl+E, Ctrl+F</Shortcut>
<Shortcut Command="ReSharper_SilentCleanupCode" Scope="全局">Ctrl+E, Ctrl+F</Shortcut>
<Shortcut Command="ReSharper_ParameterInfo_GoToPreviousSignature" Scope="文本编辑器">Ctrl+Shift+Alt+空格键</Shortcut>
<Shortcut Command="ReSharper_ParameterInfo_GoToPreviousSignature" Scope="全局">Ctrl+Shift+Alt+空格键</Shortcut>
<Shortcut Command="ReSharper_QuickFix" Scope="文本编辑器">Alt+Enter</Shortcut>
<Shortcut Command="ReSharper_WindowManager_CloseRecentTool" Scope="文本编辑器">Ctrl+Shift+F4</Shortcut>
<Shortcut Command="ReSharper_WindowManager_CloseRecentTool" Scope="全局">Ctrl+Shift+F4</Shortcut>
<Shortcut Command="ReSharper_WindowManager_ActivateRecentTool" Scope="文本编辑器">Ctrl+Alt+Backsapce</Shortcut>
<Shortcut Command="ReSharper_WindowManager_ActivateRecentTool" Scope="全局">Ctrl+Alt+Backsapce</Shortcut>
<Shortcut Command="ReSharper_EnableDaemon" Scope="文本编辑器">Ctrl+8</Shortcut>
<RemoveShortcut Command="Debug.LocationToolbar.ToggleCurrentThreadFlaggedState" Scope="全局">Ctrl+8</RemoveShortcut>
<Shortcut Command="ReSharper_EnableDaemon" Scope="全局">Ctrl+8</Shortcut>
最终的结果如下:
<UserShortcuts>
<RemoveShortcut Command="Edit.WordPreviousExtend" Scope="文本编辑器">Ctrl+Shift+左箭头</RemoveShortcut>
<Shortcut Command="ReSharper_ErrorsView_IgnoreErrors" Scope="ReSharper Errors in Solution Window">Delete</Shortcut>
...
</UserShortcuts>
现在,可以在中文版Visual Studio中使用 Resharper 的快捷键了。
2008年8月31日星期日
关于博客的二三事
但是我用自定义域名将 http://blog.vichamp.com 指向 http://vichamp.blogspot.com 之后,反而不能用了。但用gladder、tor翻墙却可以。看来风向变了,以前用自定义域名来使blogspot可被访问是作茧自缚了。:(
顺便去查查博客的计数器,惊讶地发现大批来自于维基百科的来源,循链接点进去,原来是自己分析迅雷下载机制的一篇文章《关于迅雷盗窃一文的再分析》(若打不开,请点这里,再打不开,只好翻墙)被维基百科引用了。话说回来有些惭愧,我在文中指责cnBeta上的某个作者搞技术过于情绪化,而自己的文章中也带有一些情绪。
仔细分析了一下计数器,基本上来路都是指向几篇技术文章。看来还是要继续发表一些质量高一些的技术文章。

