小编cle*_*oux的帖子

在没有内联引用的情况下,在pandoc/markdown中自动创建bibtex的参考书目

我怎么能自动从中文提供文件创建引文列表,最好在降价(更具体地说,pandoc)格式?

我正在建立我的个人学术网站.正如大多数个人学术网站所做的那样,我包括一个列出我的出版物的页面.不过,我真的不想手工编写每一个引用,所以我试图找到从一个或多个文件中文提供创建引文的自动方法.

理想情况下,将是一个工具,我可以只手包含我的出版物,以中文提供一个文件,它会吐出降价(我使用pandoc +生成文件创建站点).我目前还没有意识到任何这样的工具.

使我的需求更加复杂的是,出版物的简单平面列表是不够的.我需要能够列出不同类别的不同出版物(同行评审和非同行评审).虽然如果像我这样的工具确实存在,我可以轻松地维护多个bibtex文件并使用一些bash-fu来实现这一目标.

markdown bibtex citations pandoc

15
推荐指数
2
解决办法
6001
查看次数

有什么优雅的方法可以在python中抽象出重复的异常处理?

在python中处理异常时,我发现自己经常重复代码.基本模式是这样的形式:

try:
  action_here()
except CommonException1:
  Action_always_taken_for_CommonException1()
except CommonException2:
  Action_always_taken_for_CommonException2()
except Exception:
  Default_action_always_taken()
Run Code Online (Sandbox Code Playgroud)

我想要做的是将一些重复代码抽象出一个函数或类.我知道一种方法是使用异常对象调用异常处理函数,例如:

try:
  action_here()
except Exception as e:
  handle_exception(e)
Run Code Online (Sandbox Code Playgroud)

然后在此函数中根据类确定异常.

def handle_exception(e):
  if type(e) == type(CommonException1()):
    Action_always_taken_for_CommonException1()
  elif type(e) == type(CommonException2()):
    Action_always_taken_for_CommonException2())
  else:
    Default_action_always_taken()
Run Code Online (Sandbox Code Playgroud)

然而,这感觉笨重而且不优雅.所以我的问题是,处理重复异常处理还有哪些其他选择?

python exception-handling

11
推荐指数
3
解决办法
1730
查看次数

如何scp文件并运行ssh命令只询问一次密码?

以下是问题的背景:

为了让我能够在工作中打印文档,我必须将文件复制到另一台计算机,然后从该计算机打印.(不要问.它很复杂,没有其他可行的解决方案.)两台计算机都是Linux,我在bash中工作.我目前这样做的方法是scp将文件传输到打印计算机,然后ssh从命令行打印并打印.

这就是我想做的事情:

为了让我的生活更轻松,我想将这两个步骤合二为一.我可以轻松编写一个执行这两个步骤的函数,但我必须提供两次密码.有没有办法合并这些步骤,以便我只提供一次密码?

在有人建议之前,基于密钥的ssh-logins不是一种选择.出于安全原因,管理员已特别禁用它.

解:

我最终做的是修改Wrikken提供的第二个解决方案.简单地在功能中完成他的第一个建议就可以完成工作,但我喜欢能够打印多个文档而无需每个文档输入一次密码的想法.我有一个相当长的密码,我是一个懒惰的打字员:)

所以,我所做的是采用一系列命令并将它们包装在python脚本中.我使用python因为我想参数化脚本,我觉得在python中最容易做到.我作弊,只是从python通过os.system运行bash命令.Python只处理参数化和流控制.逻辑如下:

if socket does not exist:
    run bash command to create socket with timeout
copy file using the created socket
ssh command to print using socket
Run Code Online (Sandbox Code Playgroud)

除了使用超时之外,我还在我的python脚本中有一个选项,如果我愿意,可以手动关闭套接字.

如果有人想要代码,请告诉我,我会粘贴它或将它放在我的git repo上.

linux ssh bash scp

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

在vim中连接两行而不移动光标

如何在vim中连接两行并将光标留在原始位置而不是跳转到合并点?

例如,将光标放在插入符指示的位置,取以下两行:

this is ^line one
this is line two
Run Code Online (Sandbox Code Playgroud)

合并J产品:

this is line one ^this is line two
Run Code Online (Sandbox Code Playgroud)

我该如何生产:

this is ^line one this is line two
Run Code Online (Sandbox Code Playgroud)

我尝试了CTRL-O各种各样的东西''.这些似乎都不起作用.它们到达行的开头,而不是原始光标位置.

vim

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

标签 统计

bash ×1

bibtex ×1

citations ×1

exception-handling ×1

linux ×1

markdown ×1

pandoc ×1

python ×1

scp ×1

ssh ×1

vim ×1