我正在为git编写一组命令,并且以典型的git方式,我想启动编辑器供用户查看和编辑文件作为输入。 (这是用于提交消息和交互式rebase的样式。)我可以显式调用编辑器:
require 'dragonfly'
# Configure
Dragonfly.app.configure do
if Rails.env.production?
datastore :s3,
bucket_name: ENV['S3_BUCKET'],
access_key_id: ENV['S3_KEY'],
secret_access_key: ENV['S3_SECRET'],
region: ENV['S3_REGION'],
url_scheme: 'https'
else
datastore :file,
root_path: Rails.root.join('public/system/dragonfly', Rails.env),
server_root: Rails.root.join('public')
end
plugin :imagemagick
secret "baaa65a6761943c5b52bfb927ffbe193bcb03858bf1bd73fa3d655f8208a1c39"
url_format "/media/:job/:name"
#datastore :file,
#root_path: Rails.root.join('public/system/dragonfly', Rails.env),
#server_root: Rails.root.join('public')
end
# Logger
Dragonfly.logger = Rails.logger
# Mount as middleware
Rails.application.middleware.use Dragonfly::Middleware
# Add model functionality
ActiveSupport.on_load(:active_record) do
extend Dragonfly::Model
extend Dragonfly::Model::Validations
end
但这忽略了用户的设置。我可以尝试从vim /tmp/myfile
:
git config
但如果editor=$(git config core.editor)
$editor /tmp/myfile
没有明确的设置,这将无效。在这种情况下,core.editor
只是空字符串。
如何调用用户的编辑器?
注意:我不期待edit the configuration file。
答案 0 :(得分:0)
使用git var
:
$editor
或只是
editor=$(git var GIT_EDITOR)
$editor /tmp/myfile
这将为编辑器计算相同的值$(git var GIT_EDITOR) /tmp/myfile
和commit
。除了git的默认(当前rebase
)和各种配置文件之外,这还将考虑vi
环境变量,该变量可用于覆盖单个进程中的其他设置。