Mutt
mutt:定義顯示哪些標題(在撰寫中)
在 中撰寫消息時
mutt
,我看到以下標題:From: To: Cc: Bcc: Subject: Reply-To: Fcc: ~/.mail/sent Mix: <no chain defined> Security: None
我不知道
Mix:
標題的用途,而且我認為我永遠不需要它。同樣,我不需要編輯Reply-To:
標題。這兩條無用的線路正在佔用寶貴的空間。是否可以完全刪除這些標題?我可以指定在撰寫菜單中顯示哪些標題嗎?
好的,我有一個(非常老套的)解決方案。答:可以通過編輯
mutt
’s 的程式碼來刪除這些標頭,但目前還不能以任何其他方式。首先,在
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;
根據上面的程式碼進行這些更改:
- 註釋掉第 60 行,
HDR_REPLYTO
列舉 ->Reply-To
標題消失- 註釋掉
Prompts
數組中的“Reply-To:”字元串 -> 消失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 的程式碼是如何工作的,我看到他們使用
curses
windows。如果有人花更多時間理解此程式碼及其工作原理,請發布後續內容。