我经常需要在某些文件上做一些Emacs魔术,我需要在我的IDE(IntelliJ IDEA)和Emacs之间来回切换.
当在Emacs下进行更改(并且在我保存文件之后)并且我回到IntelliJ时,立即出现更改(如果我没记错的话,我将IntelliJ配置为"在磁盘上检测到修改时始终重新加载文件"或者某事像那样).我甚至不需要重新加载:一旦IntelliJ IDEA获得焦点,它立即重新加载文件(因此我可以立即访问我从Emacs所做的修改).
到目前为止,非常好.
然而"反过来",它还没有奏效.
我可以配置Emacs,以便每次在磁盘上更改文件时重新加载它吗?
或者制作Emacs,每当它"获得焦点"时,验证当前打开的文件是否已在磁盘上修改过?
我知道我可以开始修改Emacs下的缓冲区,它会立即警告它已被修改,但我宁愿让它立即执行(例如,如果我使用我的IDE进行一些重大更改,当我回到我看到的Emacs可能根本不再是文件所包含的内容,而且有点奇怪).
这就是我现在正在做的事情.
var foo = function() {
var x = someComplicatedComputationThatMayTakeMoreTime();
this.foo = function() { return x; };
return x;
}
Run Code Online (Sandbox Code Playgroud)
它工作,但只有当foo被调用为这样的函数
foo();
Run Code Online (Sandbox Code Playgroud)
但是如果我想将它称为具有值的正常变量呢?我可以修改代码
var foo = function() {
var x = someComplicatedComputationThatMayTakeMoreTime();
this.foo = x;
return x;
}
Run Code Online (Sandbox Code Playgroud)
这将允许我只将它作为一个函数调用一次,然后作为常规变量调用它.但它仍然不是我想要的.如果它意外地再次被调用为函数,它会变得复杂,并返回错误.
这在JavaScript中是否可行?
顺便说一句,这是针对Chrome/Firefox扩展,因此IE兼容性并不重要.
使用toString结束因为getter不允许我重新定义整个属性,所以函数必须与之关联.并且toString具有更清晰的语法.
我有一个函数foo(i),它接受一个整数并花费大量的时间来执行.会不会有任何的初始化通过以下方式之间的显著性能差异一:
a = [foo(i) for i in xrange(100)]
a = map(foo, range(100))
vfoo = numpy.vectorize(foo)
a = vfoo(range(100))
Run Code Online (Sandbox Code Playgroud)
(我不关心输出是列表还是numpy数组.)
有没有更好的办法?
有什么建议的"路径"可以更好地在Cocoa中绘制代码?我想在这一点上,这是我最大的弱点.在代码中绘制一般的东西,还是Cocoa特有的?
谢谢! - 杰森
我想在网页上有一个按钮,其行为如下:
以下代码适用于Firefox(Mac和Windows),Safari(Mac和Windows)和IE8.(我还没有测试IE6或IE7.)但是,在谷歌浏览器(Mac和Windows)中,后来的点击无法将现有的弹出窗口置于最前面.
如何在Chrome中完成此工作?
<head>
<script type="text/javascript">
var popupWindow = null;
var doPopup = function () {
if (popupWindow && !popupWindow.closed) {
popupWindow.focus();
} else {
popupWindow = window.open("http://google.com", "_blank",
"width=200,height=200");
}
};
</script>
</head>
<body>
<button onclick="doPopup(); return false">
create a pop-up
</button>
</body>
Run Code Online (Sandbox Code Playgroud)
背景:我正在专门针对谷歌浏览器重新提出这个问题,因为我认为我的代码至少解决了其他现代浏览器和IE8的问题.如果有这样做的首选礼仪,请告诉我.
设L= { w in (0+1)* | w has even number of 1s}L,即L是偶数为1的所有位串的集合.下面哪个正则表达式代表L?
A)(0*10*1)*
B)0*(10*10*)*
C)0*(10*1)*0*
D)0*1(10*1)*10*
根据我的选择D永远不会正确,因为它不代表零1的位串.但其他选择呢?我们担心1的数量(偶数与否)不是零的数量无关紧要.
那么这是正确的选择,为什么?
是否有解决下面代码中说明的问题的方法?首先在浏览器中打开代码直接到达关键点,而不必在知道您要查找的内容之前查看所有代码.
<html>
<head>
<title>Input ID creates problems</title>
<style type="text/css">
#prologue, #summary { margin: 5em; }
</style>
</head>
<body>
<h1>Input ID creates a bug</h1>
<p id="prologue">
In this example, I make a list of checkboxes representing things which could appear in a book. If you want some in your book, you check them:
</p>
<form>
<ul>
<li>
<input type="checkbox" id="prologue" />
<label for="prologue">prologue</label>
</li>
<li>
<input type="checkbox" id="chapter" />
<label for="chapter">chapter</label>
</li>
<li>
<input type="checkbox" id="summary" />
<label for="summary">summary</label>
</li>
<li> …Run Code Online (Sandbox Code Playgroud) 类似于我的上一个问题,但我遇到了问题让我说我有一个简单的字典,如下面但它的大,当我尝试使用下面的方法插入一个大字典我得到操作错误的c.execute(架构)太多列那么什么应该是我填充sql数据库列的替代方法?使用alter table命令并单独添加每个命令?
import sqlite3
con = sqlite3.connect('simple.db')
c = con.cursor()
dic = {
'x1':{'y1':1.0,'y2':0.0},
'x2':{'y1':0.0,'y2':2.0,'joe bla':1.5},
'x3':{'y2':2.0,'y3 45 etc':1.5}
}
# 1. Find the unique column names.
columns = set()
for _, cols in dic.items():
for key, _ in cols.items():
columns.add(key)
# 2. Create the schema.
col_defs = [
# Start with the column for our key name
'"row_name" VARCHAR(2) NOT NULL PRIMARY KEY'
]
for column in columns:
col_defs.append('"%s" REAL NULL' % column)
schema = "CREATE TABLE simple (%s);" …Run Code Online (Sandbox Code Playgroud) 我想在Firefox中创建一个SQLite数据库(我可以更新我的Firefox).据我所知,Firefox并没有给你SQLite数据库访问权限.是否有一个插件或简单的补丁,在Firefox中提供SQLite数据库模拟?