3. 설정

이미 소개했듯이 mutt은 매우 유연한 설정을 가지고 있으며, 이를 이용해 자신만의 mutt를 만들수 있다.

mutt이 실행될때 ``-n'' 실행 옵션을 사용하지 않는 이상 기본적으로 ``시스템'' 설정 파일을 먼저 읽게 되며, 이 시스템 설정 파일은 일반적으로 /usr/local/share/mutt/Muttrc/etc/Muttrc등에 위치한다. 다음 mutt은 홈 디렉토리의 .muttrc을 찾고, 이것이 없다면 홈 디렉토리의 하위 디렉토리(~/.mutt/muttrc)에서 muttrc 파일을 찾게 된다.

일반적으로 홈 디렉토리의 .muttrc파일을 명령어 설정 파일로 사용하게 될것이다.

추가적으로 mutt은 버전을 명시한 파일이름을 지원하는데 예를 들어 mutt의 버전이 0.88이면 .muttrc-0.88 를 설정파일로 사용하게 된다. 즉, 홈 디렉토리에 .muttrc.muttrc-0.88이 같이 존재 한다면 .muttrc-0.88가 사용된다.

mutt의 버전은 ``-v'' 실행 옵션으로 확인하거나 mutt 실행중에는 show-version 키 (기본: V)를 누르면 알수 있다.

3.1. 문법

설정 파일의 내용은 명령어설정 변수들로 이루어진다. 한줄에는 하나 이상의 명령어가 올수 있으며, 이때에는 명령어들을 세미콜론(;)으로 구분한다.
set realname='임 은재' ; ignore x-

``#''는 주석을 달때 사용되며 # 이후의 문자는 무시된다.
my_hdr X-Disclaimer: 뭘봐요? # 이것은 주석 :-)

인용 부호 (',")는 공백이나 특수 문자가 포함될때 사용할 수 있다. 두가지 인용부호의 차이점은 쉘 프로그램에서의 경우와 비슷하게 적용되는데 다음 예제를 보면 쉽게 이해할 수 있을것이다.

만약 다음과 같이 문장사이에 " 를 넣으려면 \ 를 붙여준다.
set realname="Im \"Sexy\" Eunjea"

마찬가지로 ``\\'' 는 ``\''가 들어갈 것이며, ``\n'' 와 ``\r''는 C 에서와 마찬가지로 각각 라인피드(linefeed)와 캐리지 리턴(carriage-return)을 의미한다.

또한 \ 가 줄의 끝에 사용되면 다음줄은 하나의 명령으로 인식할 것이다. 이것은 매우 긴 명령을 보기 쉽도록 여러줄로 나누어 표기할때 사용될 수 있다.

또한 (``)를 사용해서 외부 명령어를 설정 파일에 사용할 수 있다. 다음 예를 보라.
my_hdr X-Operating-System: `uname -a`

역시 환경변수의 값을 사용할 수도 있다.
set record=+sent_on_$HOSTNAME

명령어 참고.

3.2. 알리아스 정의/사용

사용법: alias 주소 [ , 주소, ... ]

보통 자신과 이메일을 주고 받는 사람들의 이메일 주소를 기억하다는 것은 매우 귀찮은 일이므로, mutt은 이메일 주소록을 만들수 있도록 ``aliases'' 기능을 제공한다.

주의: 만약 일정 그룹(하나 이상의 주소)의 알리아스를 만들려 한다면, 각 주소는 (``,'')로 분리되어야 한다.

다음은 모든(*) 알리아스 정의를 삭제한다: unalias [ * | key ... ]

alias muttdude me@cs.hmc.edu (Michael Elkins)
alias theguys manny, moe, jack

다른 메일 클라이언트들과 다르게 mutt은 알리아스 파일을 위해 다른 파일을 필요로 하지 않으며, alias 명령은 설정 파일의 어느곳에나 위치할 수 있다. 하지만, source를 사용해서 여러개의 알리아스 파일을 지정해 사용할 수도 있다.

예:
source /usr/local/share/Mutt.aliases
source ~/.mail_aliases
set alias_file=~/.mail_aliases

알리아스는 mutt이 주소를 물어보는 곳(To:Cc: 등)에서 사용될 수 있으며, 이때 TAB 키를 누르면 알리아스의 목록을 보여주고 원하는 주소를 선택 할 수 있다. 여러개의 메일주소를 지정할 경우 각 메일주소의 구분은 (,) 로 해준다.

3.3. 키 설정 바꾸기

사용법: bind map key function

이 명령은 기본 키 설정을 원하는 키로 바꿀때 사용한다.

map (키가 사용될 메뉴)에 올수 있는 값은 다음과 같다:

key 는 사용할 키이다. 콘트롤 문자를 사용할때에는 \Cx 의 형식으로 x 에 ctrl 과 같이 사용될 문자를 지정해준다 (예를 들어 control-A 는 ``\Ca''). 대소문자는 무시되므로, \CA, \Ca, \cA, \ca 는 모두 같은 의미가 된다. 선택적으로 세자리 수의 키값을 ``\'' 와 함께 사용할 수 있다 (예: \177\c? 는 같은 의미이다).

추가적으로 key 값에 올수 있는 것들:

\t              tab
<tab>           tab
\r              carriage return
\n              newline
\e              escape
<esc>           escape
<up>            up arrow
<down>          down arrow
<left>          left arrow
<right>         right arrow
<pageup>        Page Up
<pagedown>      Page Down
<backspace>     Backspace
<delete>        Delete
<insert>        Insert
<enter>         Enter
<return>        Return
<home>          Home
<end>           End
<space>         Space bar
<f1>            function key 1
<f10>           function key 10

key 값은 공백을 포함하지 않는 이상 인용부호를 사용할 필요가 없다.

function 에는 key 가 눌렸을때 어떤 일을 할것인지 지정해준다. 기능들의 목록은 기능(함수)편을 참고하라. noop 명령은 해당키의 기능을 끌때 사용된다.

3.4. 알리아스의 character set 설정

사용법: charset-hook alias charset 사용법: iconv-hook charset local-charset

charset-hook 명령은 문자셋의 알리아스를 지정할때 쓰인다. 이것은 메일의 문자셋을 mutt이 자동으로 인식하지 못할때 사용할 수 있다.

iconv-hook 명령은 해당 문자셋의 이름이 시스템의 것과 다를때 지정해 줄수 있다.

3.5. 메일함 관련 설정

사용법: folder-hook [!]정규 표현식 명령어

각 메일함마다 다른 설정을 사용할때 쓰인다.

패턴은 정규 표현식으로 일치하는 메일함이 있는 경우 명령어가 실행된 후에 메일함을 읽는다.

주의: 만약 ``!'' 를 사용할 경우 정규 표현식은 인용 부호로 감싸줘야 한다.

다음 예는 모든 메일함을 보낸 시간으로 정렬한다:
folder-hook . set sort=date-sent

다음 예는 mutt 메일함을 쓰레드 형식으로 정렬한다:
folder-hook mutt set sort=threads

3.6. 키보드 매크로

사용법: macro menu sequence [ 설명 ]

매크로는 일련의 키의 연속(sequence)을 하나의 키로 정의하는 것이다.

즉, menu 에서 를 누르면 sequence를 입력한 것과 같은 역할을 하게 되는 것으로, 몇가지 명령을 하나의 키로 단축할 수 있다. keysequencebind와 같은 요령으로 설정한다.

추가적으로 sequence에는 ^x를 사용해서 콘트롤 문자를 사용하거나, 키의 이름(예:<UP>)이나 명령어들을 사용할 수도 있다.

bind, 기능(함수) 참고.

sequence 대신에 명령어를 직접 정의하면 해당 명령어의 키 설정이 바뀌어도 그대로 사용할 수 있다는 장점이 있다. 다음 예를 보라.

folder-hook . 'macro index d "<save-message>=trash\n\n<sync-mailbox>" "휴지통으로"'

매크로 정의시 설명을 추가하면 도움말 화면에서 이것을 볼수 있다.

주의: 도움말 화면에서 매크로 설명은 화면 폭에 의해서 짤릴수 있다.

3.7. 색 사용하기

사용법: color 대상 전경색 배경색 [ 정규 표현식 ]

사용법: color index 전경색 배경색 패턴

사용법: uncolor index 패턴 [ 패턴 ... ]

터미날이 색을 지원한다면 Mutt 상의 각 아이템에 색을 지정해 사용할 수 있다. 색의 지정은 전경색과 배경색을 같이 지정해 주어야 한다.

다음과 같은 대상 들이 사용될 수 있다:

전경색배경색 에는 다음 값이 올수 있다:

전경색 은 선택적으로 bright 문자를 덧붙이면 밝거나 굵은 문자를 표시하게 할 수 있다 (예, brightred).

터미날이 지원한다면, 특별한 키워드인 default 를 사용해서 투명하게 설정할 수도 있다. 역시 brightdefault 도 가능하다. 만약 Mutt 컴파일시 S-Lang 라이브러리와 링크되었다면, COLORFGBG 환경변수를 사용해서 터미날의 기본색을 지정해 주어야 한다. 다음 예를 보라.

set COLORFGBG="green;black"
export COLORFGBG

주의: S-Lang 라이브러리의 경우 whiteyellow 대신에 lightgraybrown 값을 사용해야 한다.

주의: uncolor 명령은 오직 인덱스 대상에만 적용된다.

또한 mutt은 color0, color1, … 형식의 키워드를 인식한다. colorN-1 (N은 터미날이 지원하는 색을 표현하는 숫자).

만약 흑백 터미날을 사용한다면 ``mono'' 키워드를 사용해서 새로운 속성의 지정 가능하다:

사용법: mono <대상> <속성> [ 정규 표현식 ]

사용법: mono index 속성 패턴

사용법: unmono index 패턴 [ 패턴 ... ]

속성의 값은 다음과 같다:

3.8. 원하지 않는 헤더 숨기기

사용법: [un]ignore pattern [ pattern ... ]

이메일에는 보통 네트워크상에서 거쳐가는 시스템들에 의해 여러가지 헤더들이 추가되는데, 이들 대부분이 표시되지 않아도 되는 것들이다. 이 명령은 어떤 헤더를 보여 줄것인지 또는 감출것인지 정의할때 사용한다.

헤더 필드 이름은 완벽하게 적어주지 않아도 된다. 예를 들어 ``ignore content-'' 는 ``content-''로 시작하는 모든 헤더를 표시하지 않을 것이다.

다음 예와 같이 ``unignore'' 명령을 사용해서 일단 모두 표시하지 않는 것으로 설정한후에 원하는 것들만 다시 지정해주는 방법도 있다.

예:
ignore *
unignore from date subject to cc
unignore organization organisation x-mailer: x-newsreader: x-mailing-list:
unignore posted-to:

3.9. 메일링 리스트

사용법: [un]lists 주소 [ 주소 ... ]

사용법: [un]subscribe 주소 [ 주소 ... ]

mutt은 몇가지 메일링 리스트와 관련된 기능을 가지고 있으며, 이것을 사용하기 위해서는 메일링 리스트의 주소와 가입 여부를 명시해 주어야 한다.

이것이 끝나면 list-reply (메일링 리스트로 답장) 기능을 사용할 수 있다. 추가적으로 가입된 메일링 리스트로 메일을 보낼때에는 mutt이 Followup-To 헤더를 자동으로 추가할 것이다 (followup-to 참고)

``lists''를 사용해서 "알고 있는" 메일링 리스트의 주소를 ``subscribe''에는 "가입된" 메일링 리스트의 주소를 적어준다.

``unlists'' 명령을 사용하면 "알고 있는/가입된" 메일링 리스트의 설정을 해제할 수 있다.

가입하지 않았지만 "알고 있는" 메일링 리스트라면 ``unsubscribe'' 명령을 사용할 수 있다.

3.10. 다중 스풀 (spool) 메일함 사용

사용법: mbox-hook [!]패턴 메일함

여러개의 스풀 메일함을 사용할 경우 읽은 메일을 해당 메일함으로 옮길때 사용한다. 패턴은 정규 표현식으로 스풀 메일함을 지정하고 메일함 은 읽은 메일이 저장될 곳을 지정해 주면 된다.

다른 hook 명령들과는 다르게, 첫번째 패턴만이 사용된다. (즉, 여러개의 메일함으로 동시에 저장되는것은 불가능하다.)

3.11. 수신 메일함 설정

사용법: mailboxes [!]파일명 [ 파일명 ... ]

어떤 메일함에 새로운 메일이 도착하며 그것을 감시할 것인가를 설정한다. 기본적으로 주 메뉴의 상태창에 이 메일함(들)에 새 메일이 도착했음을 표시해준다.

메일함을 바꿀때 space키를 누르면 새 메일이 도착한 메일함으로 이동한다.

디렉토리 브라우져에서 TAB키를 누르면 이 메일함들을 보여주며, 새 메일이 있는지 확인할 수 있다. 또한, mutt이 실행될때 -y 옵션을 붙이면 자동적으로 이 모드로 시작된다.

주의: 새 메일의 인식은 마지막 수정 시간과 마지막 접근 시간을 비교함으로 이루어 진다. bifffrm 같이 일정 간격으로 메일함에 접근 하는 프로그램들이 접근 시간을 제대로 reset 해주지 못하면 mutt은 새 메일을 인식하지 못할것이다. 또한 백업 도구들도 공통적으로 파일 접근 시간을 바꾸어 놓는다.

주의: ``='' 나 ``!'' 같은 shortcuts이 사용되는 메일함을 설정할 때에는 관련된 변수(folder, spoolfile)가 먼저 선언되어야 한다.

3.12. 메일 헤더 정의

사용법: my_hdr string

사용법: unmy_hdr field [ field ... ]

``my_hdr'' 명령은 자신만의 메일 헤더를 정의 할 수 있게 해준다.

예를 들어, ``Organization:'' 헤더를 보내는 메일에 넣으려면 다음을 .muttrc 파일에 넣어준다.

my_hdr Organization: Eunjea\'s Secret Penguin Labs

주의: 키워드와 콜론 (``:'') 사이에는 공백 문자가 올수 없다 (이것은 RFC822에 준하며, mutt은 이것을 지킨다).

3.13. 메일 헤더 정렬

사용법: hdr_order header1 header2 header3

메일을 읽을때 보여지는 메일 헤더의 내용을 원하는 데로 정렬할 수 있다.

``unhdr_order *'' 는 이미 정의되어 있는 헤더 정렬 명령을 해제할때 사용한다.

hdr_order From Date: From: To: Cc: Subject:

3.14. 저장시 기본 파일 이름

사용법: save-hook [!]패턴 파일명

메일을 저장 할때 사용되는 기본 파일 이름을 지정한다.

파일명From: 또는 to:의 주소가 패턴(정규 표현식)과 일치할때 사용된다.

패턴의 정확한 사용법은 pattern-hook을 참고하라.

예:

save-hook me@(turing\\.)?cs\\.hmc\\.edu$ +elkins
save-hook aol\\.com$ +spam

fcc-save-hook 참고.

3.15. 기본 Fcc: 메일함 지정

사용법: fcc-hook [!]패턴(regexp) 메일함

이 명령은 보내는 메일을 record 변수에 지정된 메일함외에 다른 곳에 저장할때 사용한다.

mutt은 보내는 메일의 수신자중 패턴 에 일치하는 것이 있으면 여기에 지정된 메일함으로 저장하고 일치하지 않는 경우 record에 지정된 메일함에 저장한다.

pattern-hook에서 자세한 패턴 사용법을 참고하라.

예: fcc-hook kldp.org$ +kldp

위의 예는 메일의 수신자가 kldp.org 도메인을 가지고 있는 경우 `+kldp' 메일함에 저장되도록 한것이다.

fcc-save-hook 참조.

3.16. 기본 파일 이름과 Fcc: 메일함 지정

사용법: fcc-save-hook [!]패턴 메일함

이 명령 하나로 fcc-hooksave-hook을 대신할 수 있다.

3.17. 수신자에 따라 다른 설정 적용

사용법: send-hook [!]패턴 명령어

이 명령은 메일의 수신자에 따라 특정 명령을 적용하도록 해준다. 패턴은 정규 표현식으로 수신자의 주소가 이것에 일치하면 command 를 실행하게 된다. 만약 여러번 일치하게 되면 설정파일에 적혀 있는 순서대로 명령을 차례대로 실행한다.

pattern-hook에서 자세한 패턴 사용법을 참고하라.

예: send-hook mutt "set mime_forward signature=''"

전형적인 사용 예로는 수신자에 따라 attribution, signature. locale등을 다르게 지정해 줄수 있다.

주의: send-hook 명령은 오직 한번만 실행된다. 즉, 메일 작성후에 수신자를 변경하거나, 메일을 수정한 후에는 적용되지 않는다.

3.18. 메일의 형식에 따라 설정 바꾸기

사용법: message-hook [!]패턴 명령어

메일을 읽거나 포맷팅후에 해당 메일의 정보에 따라 명령을 줄수 있다. 메일의 내용이 패턴 에 일치하면 명령어 를 실행 시킨다.

pattern-hook에서 자세한 패턴 사용법을 참고하라.

예:
message-hook ~A 'set pager=builtin'
message-hook '~f freshmeat-news' 'set pager="less \"+/^  subject: .*\""'

3.19. 수신자의 PGP 키

사용법: pgp-hook 패턴 keyid

pgp-hook 명령은 메일을 PGP 암호화 하여 보낼때 패턴에 따라 특정키가 사용되도록 설정할 수 있다.

3.20. 키보드 버퍼에 일련의 키 입력 기억 시키기

사용법: push 문자

특정 문자열을 키보드 버퍼에 기억시킬때 사용한다. 문자는 제어문자와 키 이름, 기능의 이름등이 사용될 수 있다. 이것은 mutt이 실행될때나 특정 메일함에 들어갈때 사용될 수 있을것이다.

3.21. 명령 실행

사용법: exec 기능 [ 기능 ... ]

기능을 실행할때 쓰인다. 기능들의 목록은 기능(함수)을 참고하라. ``exec 기능'' 과 ``push <기능>'' 는 같은 역할을 한다.

3.22. 메일 스코어링

사용법: score 패턴 점수

사용법: unscore 패턴 [ 패턴 ... ]

메일 스코어링 명령은 패턴 (패턴) 과 일치하는 메일에 점수를 준다 (주의: 다음 패턴들은 사용될 수 없다. ˜b, ˜B, ˜h).

점수 는 음/양수가 될 수 있으며, 메일의 총 점수는 각 score 명령의 패턴에 일치하는 만큼 더해진다. 하지만, 점수에 = 부호를 사용하여 반복되어 점수가 더해지는 것을 방지 할 수도 있다.

unscore 명령은 설정된 score을 해제할때 사용한다.

3.23. 변수값의 설정

사용법: set [no|inv]variable[=value] [ variable ... ]

사용법: toggle variable [variable ... ]

사용법: unset variable [variable ... ]

사용법: reset variable [variable ... ]

이 명령은 설정 변수의 값을 설정한다. 기본적으로 다음 네가지 형태의 값이 사용될 수 있다:

1. boolean : set (yes) 또는 unset (no).

2. 숫자

3. 문자 : 공백이나 TAB을 포함하는 경우 인용 부호로 감싸주어야 하며, \n 는 새줄, \t는 TAB을 표현할때 사용한다.

4. quadoption : 은 네가지 값이 올수 있음을 뜻하며 yesno 일 경우 해당 기능을 물어보지 않고 실행/취소 하며, ask-yesask-no 는 mutt이 해당 기능을 실행하기 전에 물어보는 프롬프트를 보여주며 각각 yes와 no의 기본값을 설정한다.

각 변수에 ``no'' 를 붙여서 unset 할 수도 있다. 예: set noaskbcc.

boolean 값에는 추가적으로 inv를 변수 이름앞에 붙여 사용할 수 있는데, 이것은 이전 설정값의 반대값이 된다는 의미이다. 이것은 macro를 설정할때 유용하게 쓰일수 있다 (예: set invsmart_wrap).

toggle 명령을 사용하는 것과 변수 이름앞에 inv 를 붙이는 것은 같은 효과를 준다.

역시, unset 명령과 변수 이름앞에 no 를 붙이는 것도 같다.

index 메뉴에서는 명령어 실행 기능을 사용해서 변수앞에 ? 를 붙이면 현재 값을 볼수 있다:

set ?allow_8bit

물음표는 boolean 와 quadoption 값을 볼때만 필요하다.

reset 명령은 해당 변수값을 컴파일시의 기본값으로 돌려 놓는다 (기본값은 이 문서에 언급되어 있다). 만약 set 명령과 변수앞에 ``&''를 덧붙이면 이것은 reset 과 같은 효과를 준다. 또한 reset 명령에 ``all'' 을 지정하면 모든 설정값이 초기화 된다.

3.24. 초기 명령어를 다른 파일에서 읽어오기

사용법: source 파일 이름

이 명령을 사용해서 다른 파일의 내용을 설정 파일로 불러 오는 것이 가능하다. 예를 들어 알리아스를 ˜/.mail_aliases 파일에 저장되도록 할 수 있다.

파일 이름이 ``˜''로 시작하면 그것은 홈 디렉토리에 파일이 위치하고 있는 것을 뜻한다.

Tip: 만약 파일 이름이 | 로 끝난다면, 해당 파일을 실행하고 그 결과를 사용하게 된다 (예: tt/source  /bin/myscript|/).

3.25. hook 지우기

사용법: unhook [ * | hook 종류 ]

이 명령으로 이전에 설정된 hook 을 해제할 수 있다. ``*'' 문자를 사용해서 모든 hook 설정을 해저하거나, 다음과 같이 특정 hook을 지정할 수 있다. unhook send-hook.