mutt:定义显示哪些标题(在撰写中)

Mar*_*ter 10 mutt

在 中撰写消息时mutt,我看到以下标题:

    From: 
      To: 
      Cc:
     Bcc:
 Subject:
Reply-To:
     Fcc: ~/.mail/sent
     Mix: <no chain defined>
Security: None
Run Code Online (Sandbox Code Playgroud)

我不知道Mix:标题是做什么用的,而且我认为我永远不需要它。同样,我不需要编辑Reply-To:标题。

这两条无用的线路占用了宝贵的空间。是否可以完全删除这些标题?我可以指定在撰写菜单中显示哪些标题吗?

pol*_*lym 3

好吧,我得到了一个(非常hacky)的解决方案。答:可以通过编辑mutt的代码来删除这些标头,但到目前为止还不可能以任何其他方式。

首先,没有标志或任何检查源mutt代码来阻止这些标头出现在撰写菜单窗口中。至少我没有看到任何。

因此,如果不编辑 的代码,就无法指定在撰写菜单中显示哪些标题mutt

我查看了源代码(apt-get source mutt)并发现,mutt当您撰写邮件时,在哪里绘制其标题。

重要的部分在于compose.c

[...]

[line 60]
//  HDR_REPLYTO,

[...]

[line 77]
static char *Prompts[] =
{
  "From: ",
  "To: ",
  "Cc: ",
  "Bcc: ",
  "Subject: ",
//  "Reply-To: ",
  "Fcc: "
};

[...]

[line 251]
static void draw_envelope (HEADER *msg, char *fcc)
{
  draw_envelope_addr (HDR_FROM, msg->env->from);
  draw_envelope_addr (HDR_TO, msg->env->to);
  draw_envelope_addr (HDR_CC, msg->env->cc);
  draw_envelope_addr (HDR_BCC, msg->env->bcc);
  mvprintw (HDR_SUBJECT, 0, TITLE_FMT, Prompts[HDR_SUBJECT - 1]);
  mutt_paddstr (W, NONULL (msg->env->subject));
//  draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to);
  mvprintw (HDR_FCC, 0, TITLE_FMT, Prompts[HDR_FCC - 1]);
  mutt_paddstr (W, fcc);

  if (WithCrypto)
    redraw_crypt_lines (msg);

#undef MIXMASTER
#ifdef MIXMASTER
  redraw_mix_line (msg->chain);
#endif

[...]

[line 564]
//      case OP_COMPOSE_EDIT_REPLY_TO:
//  menu->redraw = edit_address_list (HDR_REPLYTO, &msg->env->reply_to);
//        mutt_message_hook (NULL, msg, M_SEND2HOOK);
//  break;
Run Code Online (Sandbox Code Playgroud)

根据上面的代码进行这些更改:

  • 注释掉第 60 行,HDR_REPLYTO枚举 -> 使Reply-To标题消失
  • 注释掉数组中的“Reply-To:”字符串Prompts-> 使Reply-To标题字符串消失
  • 注释掉draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to);-> 消失Reply-To标题
  • 注释掉行564-567以避免由于缺少而导致编译错误HDR_REPLYTO-> 消失Reply-To标题编辑选项
  • 在 def 检查之前添加#undef MIXMASTER(或者可以提前添加此行以避免任何检查为正)-> 消失标题Mix

然后./configure创建make您的个性化mutt. 您可能必须修复一些编译和配置问题。

它起作用了mutt-1.5.21

我真的不知道mutt的代码是如何工作的,我看到他们使用curseswindows。如果有人花更多时间理解这段代码及其工作原理,请发布后续内容。