小编Eog*_*anM的帖子

Emacs模式:"命令试图在迷你缓冲区中使用迷你缓冲区"

场景:

  • 我开始键入Mx键入命令
  • 我切换到另一个emacs窗口/缓冲区,因为我意识到我在错误的窗口中执行命令
  • 我再次开始输入Mx以在正确的窗口中执行命令

结果:我得到了可怕的"命令试图在迷你缓冲区中使用迷你缓冲区"

在使用emacs时,每天都会发生这种情况,而不仅仅是在这种情况下.这种行为是高度用户敌意的(参考模式和伪模式The Humane Interface由杰夫拉斯金)

有没有办法自定义emacs行为,以便它不是给出这个错误,而是取消第一个迷你缓冲区并用新的替换它?

emacs elisp modal-dialog

12
推荐指数
3
解决办法
4951
查看次数

Python生成器,'coroutine'中的非吞咽异常

我最近在Python生成器中遇到了一些令人惊讶的行为:

class YieldOne:
  def __iter__(self):
    try:
      yield 1
    except:
      print '*Excepted Successfully*'
      # raise

for i in YieldOne():
  raise Exception('test exception')
Run Code Online (Sandbox Code Playgroud)

这给出了输出:

*Excepted Successfully*
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
Exception: test exception
Run Code Online (Sandbox Code Playgroud)

我(令人愉快地)感到惊讶*Excepted Successfully*,因为这是我想要的,但也惊讶于Exception仍然传播到顶层.我期望必须使用(在此示例中注释)raise关键字来获取观察到的行为.

任何人都可以解释为什么这个功能的工作原理,以及为什么except生成器不会吞下异常?

这是Python中唯一except不会吞下异常的实例吗?

python exception generator

12
推荐指数
2
解决办法
1491
查看次数

git:找不到blob - 想从包中摆脱它

我想要摆脱一大块斑点!我以为我使用这个解决方案删除了​​文件:http: //dound.com/2009/04/git-forever-remove-files-or-folders-from-history/ (我用过-- --all而不是HEAD删除文件从所有分支机构)

rm -rf .git/refs/original/ && git reflog expire --all &&  
    git gc --aggressive --prune
Run Code Online (Sandbox Code Playgroud)

我通过这个看了包文件夹为什么我的git存储库这么大?

$ git verify-pack -v .git/objects/pack/pack-*.idx | sort -k3n
... last 4 lines:
bc7ae9801052180b283cd81880753549f0f92587 blob   19464809 749446 305054873
acd5f09a35846bec25ebc324738139e5caabc50f blob   294278199 71381636 39607483
986d152935434b56cf182d8a32e24cb57af75ac3 blob   480385718 108184804 110989119
ba9d1d27ee64154146b37dfaf42ededecea847e1 blob   761172819 27430741 277589990
Run Code Online (Sandbox Code Playgroud)

该脚本git-find-blob取自哪个提交有这个blob?

$ ./git-find-blob ba9d1d27ee64154146b37dfaf42ededecea847e1
Run Code Online (Sandbox Code Playgroud)

但它没有找到任何东西.

任何想法如何摆脱我的存储库?

git git-rewrite-history

12
推荐指数
2
解决办法
1478
查看次数

Emacs:在后台有保存缓冲区

Emacs似乎同步保存,即在保存期间界面锁定.

使用tramp时尤其明显.

有没有办法在后台进行保存?

emacs

10
推荐指数
1
解决办法
746
查看次数

SQL:仅使用每行一次的自联接

可能重复:
来自sql中的交叉连接的组合(不是排列)

我目前有一张包含以下记录的表格:

A1
A2
A3
B1
B2
C1
C2
Run Code Online (Sandbox Code Playgroud)

同一个字母表示一些共同的标准(例如,"字母"栏的共同值).我按照以下标准自行加入:

SELECT mytable.*, self.* FROM mytable INNER JOIN mytable AS self 
   ON (mytable.letter = self.letter and mytable.number != self.number);
Run Code Online (Sandbox Code Playgroud)

此连接提供如下内容:

A1 A2
A2 A1
A1 A3
A3 A1
A2 A3
A3 A2
B1 B2
B2 B1
C1 C2
C2 C1
Run Code Online (Sandbox Code Playgroud)

但是,我只想包括每一对(组合而不是排列).我如何得到以下内容:

A1 A2
A1 A3
A2 A3
B1 B2
C1 C2
Run Code Online (Sandbox Code Playgroud)

sql join self-join

9
推荐指数
1
解决办法
8624
查看次数

python:迭代列表或异步生成器

自从 Python 中引入了迭代器以来,你总是可以不关心你正在处理的是迭代器还是列表:

from random import random

def gen_list():
    print('gen')
    for i in range(10):
        yield i

def return_list():
    print('return')
    return [i for i in range(10)]


if random() > 0.5:
    x = gen_list()
else:
    x = return_list()

for i in x:
    pass
Run Code Online (Sandbox Code Playgroud)

PEP 492 引入了异步迭代器async for语法。我看不出向异步迭代器的使用者添加语法的新负担有任何理由。

在我的代码中,我有时处理列表(来自缓存),有时处理异步生成器:

import asyncio
from random import random

def is_small_and_in_cache():
    if random() > 0.5:
        print('in fake cache')
        return [i for i in range(10)]

async def get_progressively():
    print('gen')
    for i in range(10):
        # …
Run Code Online (Sandbox Code Playgroud)

python asynchronous python-asyncio

9
推荐指数
1
解决办法
6296
查看次数

如何判断是否显示DOM元素?

这不要与"如何判断DOM元素是否可见?"相混淆.

我想确定给定的DOM元素是否在页面上可见.例如,如果元素是已display:none;设置的父元素的子元素,则它将不可见.

(这与元素是否在视口中无关)

我可以迭代元素的每个父元素,检查display样式,但我想知道是否有更直接的方法?

html javascript css dom

8
推荐指数
1
解决办法
7248
查看次数

负边距,z-index和点击阻止

我使用负边距来布局两列:

<div id="left-column"><input type="checkbox" /></div>
<div id="right-column">
    <div id="right-column-inner"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#left-column { width: 200px; float: left;}
#right-column { margin-left: -200px; width: 100%; float: left;}
#right-column-inner { margin-left: 200px; float: left;}
Run Code Online (Sandbox Code Playgroud)

不幸的是,在Opera 10.54,Safari 4和FF 3+​​中,复选框不可点击,因为#right-column它在向下传播到复选框之前捕获点击.

我试过操纵z-index但没有运气.

知道如何让这个工作吗?

html css z-index

7
推荐指数
1
解决办法
4505
查看次数

列表的所有可能细分

我刚刚写了一个小的递归程序来生成列表的所有可能的细分:

def subdivisions(ls):
    yield [ls]
    if len(ls) > 1:
        for i in range(1, len(ls)):
            for lhs in subdivisions(ls[:i]):
                yield lhs + [ls[i:]]

>>> for x in subdivisions('abcd'): print x
... 
['abcd']
['a', 'bcd']
['ab', 'cd']
['a', 'b', 'cd']
['abc', 'd']
['a', 'bc', 'd']
['ab', 'c', 'd']
['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

我粗暴地强迫这个,我花了很长时间才弄明白.我想知道这叫什么,因为我确定它有一个名字.

总的来说,我想知道如何从数学的角度来学习这些东西,以及是否有很好的知名编程库来涵盖这样的有用算法(我知道https://docs.python.org/3/library/ itertools.html)


[编辑]这个标记为重复的问题 - 得到一组的所有可能分区 - 获得不同的答案.

它正在寻找{ {{1,2,3},{}} , {{1},{2,3}} , {{1,2},{3}} , {{1,3},{2}}, {{1},{2},{3}}} 一个正确的答案(按照它的术语){ {{1,2,3}} , {{1},{2,3}} , {{1,2},{3}} , {{1},{2},{3}}}

此外,提出问题的关键是要弄清楚这是什么术语; …

python permutation discrete-mathematics python-itertools

7
推荐指数
1
解决办法
367
查看次数

Chrome DevTools/Firebug:如何使用缓存清除来保留断点

我在JavaScript文件上开发了非常简单的缓存清理功能,因此每次进行更改时,浏览器都会拥有最新版本.基本上:

cache_buster = ''
if is_development:
   cache_buster = '-' + file_modified_timestamp_of('/dev/myproject/js/myfile.js')
out += '<script src="/js/myfile' + cache_buster + '.js" />'
Run Code Online (Sandbox Code Playgroud)

(开发服务器将请求映射/js/myfile-[0-9]+.js/js/myfile.js磁盘上)

我的问题是,每次在javascript文件中设置断点时,断开点都会在源文件更改时丢失.

有没有办法记住或坚持Chrome DevTools或Firebug中的断点,这些断点可以在这种文件名更改后存活下来?

或者是否有一种优越的技术可以实现这两个相反的目标(缓存破坏和断点持续存在)?

firebug browser-cache google-chrome-devtools

6
推荐指数
0
解决办法
586
查看次数