Emacs有一个有用的transpose-words命令,可以让光标前面的单词与光标后的单词交换,保留标点符号.
例如,' stack |overflow'+ Mt =' overflow stack|'(' |'是光标位置).
<a>|<p>成为<p><a|>.
是否有可能在Vim中模仿它?我知道我可以使用dwwP,但它不适用于标点符号.
更新:不,dwwP是真的没办法了.想像:
SOME_BOOST_PP_BLACK_MAGIC( (a)(b)(c) )
// with cursor here ^
Run Code Online (Sandbox Code Playgroud)
Emacs的Mt会交换,b并c导致(a)(c)(b).
有效的是/\w
yiwNviwpnviwgp.但它败坏""和"/.有更清洁的解决方案吗?
Update²:
:nmap gn :s,\v(\w+)(\W*%#\W*)(\w+),\3\2\1\r,<CR>kgJ:nohl<CR>
Run Code Online (Sandbox Code Playgroud)
不完美,但有效.
感谢Camflan将该%#项目引起我的注意.当然,它都在wiki上,但我没有意识到它可以解决精确问题(Emacs完全正确)重复transpose-words功能.
我在Windows Server 2003上安装了Tomcat 6.0.18,它不会作为服务启动.我用jdk 1.6.0_07运行它.
它在我用tomcat6.exe启动时运行.
我在Windows上的系统事件日志中出现了一个模糊的错误.
Apache Tomcat 6服务因服务特定错误0(0x0)而终止.
使用各种矩阵数学,我已经求解了一个方程组,得到了度数'n'的多项式的系数
Ax^(n-1) + Bx^(n-2) + ... + Z
Run Code Online (Sandbox Code Playgroud)
然后我在给定的x范围内调整多项式,基本上我正在渲染多项式曲线.现在这里抓住了.我已经在一个我们称之为"数据空间"的坐标系中完成了这项工作.现在我需要在另一个坐标空间中显示相同的曲线.很容易将输入/输出转换为坐标空间和从坐标空间转换输入/输出,但最终用户只对系数[A,B,....,Z]感兴趣,因为它们可以自己重建多项式.如何呈现第二组系数[A',B',......,Z'],它们代表不同坐标系中的相同形状曲线.
如果它有帮助,我在2D空间工作.简单的旧x和y.我也觉得这可能涉及将系数乘以变换矩阵?它是否会包含坐标系之间的比例/平移因子?它会与此矩阵相反吗?我觉得我朝着正确的方向前进......
更新:坐标系与线性相关.本来有用的信息呃?
在C#中,我发现自己偶尔想要在发送同一事件的过程中为事件注册一个方法.例如,如果我有一个基于相同事件的连续调度转换状态的类,我可能希望第一个状态的处理程序取消注册自身并注册第二个处理程序.但是,我不想在下次触发事件之前调度第二个处理程序.
好消息是,C#的Microsoft实现看起来就像这样.事件注册语法sugar被调用System.Delegate.Combine替换,System.Delegate.Combine只将当前调用列表和新方法连接到一个单独的列表中,并将其分配给事件属性.这给了我我想要的行为.
所以,我的问题是:这是语言标准的保证行为吗?我希望能够在单声道的其他平台上运行我的C#代码,并且通常希望确保我不基于其实现对语言标准做出假设.
我在MSDN上找不到任何确切的信息.
如果你想要我所谈论的具体例子,这里有一个例子:
delegate void TestDelegate();
static event TestDelegate TestEvent;
static void Main (string[] args) {
TestEvent += TestDelegateInstanceFirst;
TestEvent();
TestEvent();
}
static void TestDelegateInstanceFirst () {
Console.WriteLine("First");
TestEvent += TestDelegateInstanceSecond;
}
static void TestDelegateInstanceSecond () {
Console.WriteLine("Second");
}
Run Code Online (Sandbox Code Playgroud)
至少在Windows上,输出是:
First
First
Second
Run Code Online (Sandbox Code Playgroud) 我创建了一个与相当流行的音乐零售商一起使用的工具.
该工具提供增强的搜索功能(透明的last.fm结果,没有广告,没有跛足,没什么令人毛骨悚然的),我发现显示搜索的最有用和不显眼的方式是使用备受诟病的iframe作为工具栏.这允许用户在不窃取用户焦点的情况下加载搜索.
不是iframe的忠实粉丝,我认为添加一个"关闭此框架"(ala Google图像搜索)链接可以让用户快速轻松地重新获得对浏览器的控制权.
然而,与Google不同,我不知道iframe中内容的位置是什么(仅通过src开始的位置).
所以现在我发现自己处于XSS世界以及所有与安全相关的问题.
使用Javascript我添加了"后退"和"前进"按钮,其中包含从父级链接调用的历史对象(当用户搜索结果加载到iframe时,后退按钮允许他们返回到主要网站完成后使用/浏览搜索结果).
有没有办法调用iframe中的当前位置并将页面(现在没有框架)重新加载到该位置?
我检查了PHP $ GLOBAL/$ _ SERVER变量,看看我可能会幸运.我理解存在安全问题,但是我没有看到这个特定函数与history.back()的区别是什么,浏览器在没有"通知"我的父框架的情况下进行调用.
我知道我可以从iframe本身检索src位置,但当然这假定用户没有超出此页面的导航,如果他们这样做,他们不介意丢失他们当前的位置并被重定向回到最初调用的页面框架(......啊......).
看起来框架似乎是为了窃取窗口而无法优雅地"突破"并保持用户会话的完整性.
难怪人们讨厌他们.:)
我在XCode中创建了一个全新的项目,并在我的AppDelegate.py文件中包含以下内容:
from Foundation import *
from AppKit import *
class MyApplicationAppDelegate(NSObject):
def applicationDidFinishLaunching_(self, sender):
NSLog("Application did finish launching.")
statusItem = NSStatusBar.systemStatusBar().statusItemWithLength_(NSVariableStatusItemLength)
statusItem.setTitle_(u"12%")
statusItem.setHighlightMode_(TRUE)
statusItem.setEnabled_(TRUE)
Run Code Online (Sandbox Code Playgroud)
但是,当我启动应用程序时,不显示任何状态栏项.main.py和main.m中的所有其他代码都是默认的.
任何人都可以解释使用像MSBuild(或NAnt)这样的工具构建项目集合与从命令行运行DevEnv.exe有什么优势?
我过去曾与之合作过的一位同事解释说(至少使用较旧版本的Visual Studio)使用DevEnv.exe比其他技术慢得多,但我还没有看到任何证据,或者现在是现在,从2005年开始,Visual Studio使用了MSBuild.
我知道使用MSBuild的一个优点是允许您构建项目而无需在构建计算机上安装Visual Studio,但我不确定是否还有其他人.
在JavaScript中,使用try-catch块并忽略错误而不是在块中测试null中的许多属性是错误的吗?
try{
if(myInfo.person.name == newInfo.person.name
&& myInfo.person.address.street == newInfo.person.address.street
&& myInfo.person.address.zip == newInfo.person.address.zip) {
this.setAddress(newInfo);
}
} catch(e) {} // ignore missing args
Run Code Online (Sandbox Code Playgroud) 如何使用字符串的内容创建类似文件的对象(与文件类似的鸭子类型)?
我在表单中有一个select元素,并且只有在下拉列表不可见时我才想显示某些内容.我尝试过的事情:
想法?