小编Sea*_*sey的帖子

在后台加载新的 vim 缓冲区

有没有办法在 Vim 中加载新缓冲区而不打开新窗口或替换当前窗口的内容?我想默默地加载它,以便我可以使用以缓冲区编号作为参数的函数来操作它。

vim

6
推荐指数
1
解决办法
1020
查看次数

使用docstring记录Python函数,该docstring既可以原始形式读取,也可以产生良好的sphinx输出

我有一个Python应用程序.我正在使用带有autodoc扩展的Sphinx来为它生成文档.在记录函数参数时,我看到两个主要选项:

选项1

def makeBaby(mommy, daddy):
  """Execute the miracle of life.

  Args:
    mommy: description of mommy
    daddy: description of daddy
  """
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

选项2

def makeBaby(mommy, daddy):
  """Execute the miracle of life.

  :param mommy: description of mommy
  :param daddy: description of daddy
  """
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

请注意,选项2不能嵌套在"Args"之类的标题下,如选项1所示,不会破坏渲染输出.选项2具有比选项1更好的渲染输出,但使实际的文档字符串更不易读.为什么param需要写成万亿次?选项1(来自Google的Python样式指南)提供了更好的文档字符串,但渲染的输出很差.是否存在函数docstrings的标准,它既可以生成干净的原始文档字符串,又可以生成良好的渲染输出?

python python-sphinx

6
推荐指数
1
解决办法
1146
查看次数

Ruby中的预填充提示

我正在使用Ruby编写一个小命令行实用程序来搜索Pubmed.现在,我提示用户进行查询并显示结果,用户可以选择附加到查询或输入全新的查询.我想添加编辑当前查询的功能; 即提示应预先填充上一个查询的可编辑版本,如下所示:

Enter query: <PREVIOUS QUERY HERE>
Run Code Online (Sandbox Code Playgroud)

打印出提示旁边的上一个查询很容易,但如何使此输出可编辑,就好像用户自己键入了它一样?

@casper:谢谢你对Casper的回应.我尝试了下面提供的代码,它确实可以独立工作.奇怪的是,当我尝试在宝石中使用它时似乎不起作用.我的gem叫做db_hippo.我在我的gemspec中添加了rb-readline作为依赖项,并将扩展名放在lib/db_hippo/rb-readline.rb中的RbReadline中

module DbHippo
  module RbReadline
    <CASPER'S EXTENSION HERE>
  end
end
Run Code Online (Sandbox Code Playgroud)

我希望在DbHippo,DbHippo :: Source的另一个子模块中使用该功能.在DbHippo :: Source我在顶部添加:

require 'rb-readline'
require 'db_hippo/rb-readline'
Run Code Online (Sandbox Code Playgroud)

然后在DbHippo :: Source的一个方法中,我有:

RbReadline.prefill_prompt(query)
query = Readline.readline("Query: ", true)
Run Code Online (Sandbox Code Playgroud)

查询变量绝对不是空的,但由于某种原因,在此上下文中,提示不会被预先填充.我还注意到,如果我将扩展名放在同一个文件(lib/db_hippo/rb-readline)中而不使其成为DbHippo的子模块,我会得到错误:未初始化的常量DbHippo :: Source :: Readline(NameError)就行了:

query = Readline.readline("Query: ", true)
Run Code Online (Sandbox Code Playgroud)

这似乎与模块,需要语句和宝石的正确命名有关.这是我试图建造的第一颗宝石.知道这里出了什么问题吗?

ruby command-prompt

5
推荐指数
2
解决办法
458
查看次数

如何在OS X 10.8中使用Applescript将窗口移动到目标空间?

最终,我正在尝试分配热键(通过Alfred或Keymando),可以将最前面的应用程序移动到我的任何空间.触发一个AppleScript似乎是最有可能取得成功的途径.我经常环顾四周,似乎有一种方法可以通过applescript中的"space preferences"来实现这一点,但这在OS X Lion中消失了.

macos applescript osx-mountain-lion

5
推荐指数
1
解决办法
2842
查看次数

当你有一个没有参数的case语句而when子句是lambdas时会发生什么?

此代码无法按预期执行:

case    
when -> { false } then "why?"        
else "This is what I expect"        
end      
# => "why?"
Run Code Online (Sandbox Code Playgroud)

这也不是

case
when ->(x) {false} then "why?"  
else "This is what I expect"
end  
# => "why?"
Run Code Online (Sandbox Code Playgroud)

第一个then子句在两种情况下都执行,这必然意味着when没有调用我对该子句提供的lambda .我理解===应该根据when子句的主题调用case相等运算符.我想知道在===没有提供参数的时候,另一方面会发生什么case.我在想它可能是nil,但它不可能是:

-> {false} === nil
# => ArgumentError: wrong number of arguments (1 for 0)

->(x) {false} === nil
# => false
Run Code Online (Sandbox Code Playgroud)

这按预期执行,如果正在执行,将导致我的预期case结果或异常.有人可以解释上面的结果吗?似乎案例相等运算符根本没有被使用,但第一个when子句正在评估true.顺便说一下,我这样做是因为a的输出 …

ruby

5
推荐指数
2
解决办法
1754
查看次数

Google Drive API downloadUrl不起作用

  • 我在Google云端硬盘上有一些录音
  • 这些文件“具有链接的任何人都可以查看”
  • 我创建了一个链接到这些文件的播客供稿

为了使播客客户端下载文件,它需要一个直接下载链接。Google Drive API在文件的元数据中返回两个可以起到此作用的字段:

  • webContentLink适用于浏览器。它允许我的播客客户端下载小于25MB的文件;不幸的是,由于未对文件进行病毒扫描,因此Google要求用户确认超过此数量的文件。如果文件超过25MB,此用户确认步骤将阻止我的播客客户端下载文件。
  • downloadUrl是您应该使用的功能,但我根本无法使用它。如果我downloadUrl直接将a复制并粘贴到浏览器的地址栏中,则一无所获。同样,我的播客客户端无法通过downloadUrl下载任何内容。

这个问题似乎尚未解决,表明这个问题仍然存在,但是我有几个问题:

  • 我需要在带有downloadUrl请求的情况下提交API密钥吗?webContentLink不需要任何密钥。
  • 有没有解决此问题的方法?

google-drive-api

5
推荐指数
1
解决办法
1046
查看次数

Neo4j在一个查询中删除具有给定标签及其关系的所有节点

我使用标签将我的Neo4j数据库分成独立的子数据库.在开发过程中,我经常需要擦除整个子数据库.目前我这样做:

MATCH (n:myLabel)-[r]-() DELETE n, r
MATCH (n:myLabel) DELETE n
Run Code Online (Sandbox Code Playgroud)

我需要两个查询,因为我必须删除所有关系,同时删除它们的节点,但我不知道如何同时匹配未连接的节点.有没有办法在单个查询中消除由标签标记的整个子图?我在Neo4j 2.2.1上

neo4j

5
推荐指数
1
解决办法
1838
查看次数

使用Julia HDF5以numpy轴顺序读取HDF5数据

我有一个HDF5文件,其中包含使用Python/numpy保存的数组.当我使用HDF5.jl将它们读入Julia时,轴与它们在Python中出现的顺序相反.为了减少在Python和Julia代码库之间移动所涉及的心理体操,当我将数据读入Julia时,我颠倒了轴顺序.我已经编写了自己的函数来执行此操作:

function reversedims(ary::Array)
  permutedims(ary, [ ndims(ary):-1:1 ])
end

data = HDF5.read(someh5file, somekey) |> reversedims
Run Code Online (Sandbox Code Playgroud)

这并不理想,因为(1)我总是要输入reversims来使用它; (2)我必须记住每次Array阅读都要这样做.我想知道是否有可能:

  • 指示HDF5.jl使用numpy样式的轴顺序读取数组,通过关键字参数或某种全局配置参数
  • 使用内置单参数函数来反转轴

hdf5 julia

5
推荐指数
1
解决办法
279
查看次数

填充现有 numpy 数组和创建新数组之间的性能差异

在迭代算法中,多次使用大型 numpy 数组是很常见的。数组经常需要在每次迭代时手动“重置”。填充现有数组(使用 nans 或 0s)和创建新数组之间是否存在性能差异?如果是这样,为什么?

python numpy

5
推荐指数
1
解决办法
1097
查看次数

什么是管理luarocks rockspec文件的好方法,为什么?

我正在研究我的第一个lua包,我对于我的rockpec(s)以及放置它们的位置感到非常困惑.我看到的每一个流行的lua包似乎都不同地处理了rockspecs.这与Ruby非常不同,Ruby中每个宝石只有一个gemspec.这里有些例子:

  • lua-cliargs:项目根目录中的单个rockspec,(例如lua_cliargs-3.0-1.rockspec)
  • ldoc:项目根目录中的单个rockspec,以scm而不是版本号命名(例如ldoc-scm-2.rockspec)
  • lua-MessagePack:存储在顶级rockspec/目录(例如lua-messagepack-0.1.0-1.rockspec...... lua-messagepack-0.3.4-1.rockspec)中的多个版本命名的rockspec ,后面跟一些在包版本之前插入额外的lua版本(例如lua-messagepack-lua53-0.3.6-1.rockspec).有时相同的包版本有两个rockspecs,一个包含lua53而另一个不包含.
  • luafilesystem:存储在顶级/rockspec目录中的多个,版本命名的rockspec (例如luafilesystem-1.3.0-1.rockspec,... luafilesystem-1.6.1-1.rockspec),后面跟着一些cvs代替在包版本之前插入的包版本号(例如luafilesystem-cvs-1.rockspec,luafilesystem-cvs-2.rockspec).
  • lpeg:根本没有rockpec
  • luasocket:root中的一个rockspec scm而不是包号(例如luasocket-scm-0.rockspec),以及/rockspec包含带有包号的单个rockspec 的目录(例如luasocket-3.0rc2-1.rockspec)

现在,这个问题解释了为什么一个人会有一个"工作"的rockspec文件和一个充满释放版本的rockspecs的单独目录,但我还有几个问题:

  1. 什么是rockspec修订版?luarocks wiki说包发布应该用git标记版本号,它给出的例子不包括rockspec修订版.如果我的rockspec在VCS中,并且我标记了一个特定的提交,那么这不能有效地修复该提交中包含的rockspec(s),因此版本?对于rockspec的后续修订不可能在标记的提交中.
  2. 怎么可以lpeg列在luarocks但缺乏rockspec?
  3. luarocks wiki说scm如果你想让你的rockspec引用HEAD ,应该用它来代替包版本号.但是由于HEAD不断变化,并且rockspec必须列出所有文件,似乎需要不断增加rockspec 的revision数量scm以跟上任何添加或删除的文件.人们可以通过根本不使用版本号来解决这个scm问题,但是我看到的版本编号很低(例如ldoc-scm-2.rockspec).这是一个错误吗?
  4. 上述任何一个例子都被认为是最佳做法吗?

lua luarocks

5
推荐指数
1
解决办法
444
查看次数