我希望能够在使用 Textmate (v. 2.0.6) 而不是 TeXShop 时自动从 BibDesk (v. 1.7.5) 插入引文。一年半以前,@AdamMaxwell提及他编写了一个 Textmate 包来实现这一点,但我无法找到它。
哪里有这个包可用?或者有其他方法可以获得相同的功能吗?
答案1
我的用于 BibDesk 自动完成的 TextMate 包可从我的 DropBox 中获取:https://www.dropbox.com/s/fwj50u3lmq6m63g/BibDeskTMCompletions.zip?dl=0
该 .zip 文件的日期为 2019 年 10 月。以下是我当时通过电子邮件发送给某人的说明:
我已经不记得如何向某人发出 TextMate 命令了,所以这里是捆绑设置的屏幕截图,后面是 ruby 代码。您必须编辑 ruby 中的 CMD 变量以指向 BibDeskTMCompletions,但我只是破解了它以与 TextMate 2.0 配合使用,它似乎运行良好。
如果有效请告诉我!我以前有一个包含说明和 .tmCommand 的 ReadMe,但那是三台计算机之前的事了。
#!/usr/bin/env ruby -wKU
# for TextMate.exit
require ENV["TM_SUPPORT_PATH"] + "/lib/exit_codes.rb"
require ENV["TM_SUPPORT_PATH"] + "/lib/ui.rb"
SUPPORT = ENV['TM_SUPPORT_PATH']
DIALOG = ENV['DIALOG']
require SUPPORT + '/lib/escape'
require SUPPORT + '/lib/osx/plist'
#require "#{ENV['TM_BUNDLE_SUPPORT']}/lib/LaTeXUtils.rb"
require ENV['TM_BUNDLE_SUPPORT'] + '/lib/Ruby/latex.rb'
latexMaster = LaTeX.master(ENV['TM_LATEX_MASTER'] || ENV['TM_FILEPATH'])
if !latexMaster
latexMaster = ""
end
searchTerm = STDIN.read
# omit -s to return all items
CMD = '"$HOME"/BuildProducts/Debug/BibDeskTMCompletions ' + (searchTerm == "" ? "" : "-s #{searchTerm}") + ' -t "$TM_FILEPATH" ' + latexMaster
# returns an XML plist
plist = `#{CMD}`
# cribbed from example on pastie
res = OSX::PropertyList::load(`#{e_sh DIALOG} -up #{e_sh plist}`)
# this keeps us from overwriting on cancel
TextMate.exit_discard unless res.has_key? 'selectedMenuItem'
# insert valueForKey:@"citeKey"
print res['selectedMenuItem']['citeKey']