在临时文件上调用git配置的文本编辑器

时间:2018-02-21 00:35:31

标签: bash git configuration

我正在为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

1 个答案:

答案 0 :(得分:0)

使用git var

$editor

或只是

editor=$(git var GIT_EDITOR)
$editor /tmp/myfile

这将为编辑器计算相同的值$(git var GIT_EDITOR) /tmp/myfile commit。除了git的默认(当前rebase)和各种配置文件之外,这还将考虑vi环境变量,该变量可用于覆盖单个进程中的其他设置。