X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=doc%2Fwl.texi;h=59f53cf843a4b1c46b41a588c8e0f190153d75bc;hb=ee816dd7a4c239198b621ba62b9bd04d0a29f04b;hp=637e51bc45db81544c977972af438ba5787d8299;hpb=fde328f17f84ffce34e38b71a1c3740375235cb9;p=elisp%2Fwanderlust.git diff --git a/doc/wl.texi b/doc/wl.texi index 637e51b..59f53cf 100644 --- a/doc/wl.texi +++ b/doc/wl.texi @@ -4,7 +4,6 @@ @settitle Wanderlust -- Yet Another Message Interface On Emacsen -- @c %**end of header @documentlanguage en -@documentencoding us-ascii @include version.texi @synindex pg cp @finalout @@ -119,6 +118,7 @@ This manual is for Wanderlust @value{VERSION}. * Disconnected Operations:: Off-Line management * Expire and Archive:: Automatic expiration and archiving of messages * Scoring:: Score of the messages +* Split messages:: Splitting messages * Address Book:: Management of Address Book * Customization:: Customizing Wanderlust * Terminology:: Terminologies @@ -254,7 +254,7 @@ may help you.}. Recommended combination of APEL, FLIM and SEMI are following: @itemize @minus -@item APEL 10.3, FLIM 1.14.3 and SEMI 1.14.3 +@item APEL 10.4, FLIM 1.14.5 and SEMI 1.14.5 @end itemize You can also use many other FLIM/SEMI variants. Combination of the @@ -262,8 +262,8 @@ latest versions should work. For example, the following combination are confirmed to work. @itemize @minus -@item APEL 10.2, Chao 1.14.1, REMI 1.14.2 -@item APEL 10.2, SLIM 1.14.3, EMY 1.13.9 +@item APEL 10.4, SLIM 1.14.9, SEMI 1.14.5 +@item APEL 10.4, CLIME 1.14.5, EMIKO 1.14.1 @end itemize You have to re-install Wanderlust if you upgraded APEL, FLIM or SEMI. @@ -530,7 +530,7 @@ This means it enables you to run Wanderlust as a default mail composer of Emacsen. It is effective only when your Emacs can define @code{mail-user-agent}. -@xref{Mail Methods, , ,emacs-ja, The Emacs Editor}. +@xref{Mail Methods, , ,emacs, The Emacs Editor}. @lisp @group @@ -796,47 +796,24 @@ Example: @pindex ucs-conv You can use international mailbox names in @var{mailbox} part, if you -are using Emacs which can treat unicode and +are using Emacs with UTF-7 support and @code{elmo-imap4-use-modified-utf7} is set to non-nil value (default value is @code{nil}). -Currently, following Emacsen can treat unicode. +Currently, Mule-UCS package is required to use UTF-7. +Mule-UCS works on following Emacsen. @itemize @bullet -@item Emacs 20.3 or later + Mule-UCS +@item Emacs 20.3 or later +@item XEmacs 21.2.37 or later +@end itemize -If you installed Mule-UCS package, Emacs can treat unicode. You can obtain Mule-UCS package from following URL. @example ftp://ftp.m17n.org/pub/mule/Mule-UCS/ @end example -@item XEmacs 21.2.13 or later + ucs-conv package - -By default, XEmacs 21 cannot treat unicodes, but if you installed -ucs-conv package, it can. -You can obtain ucs-conv package from following anonymous CVS. - -@example -@group -cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root login -Password: @var{NULL} (Just enter return key) -cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root checkout ucs-conv -@end group -@end example - -You also need utf7 conversion programs, @command{u7tou8} and -@command{u8tou7} to use international mailbox name in the current -XEmacs. These programs are included in the UTF7 package which can be -obtained from following URL. - -@example -ftp://ftp.ifcss.org/pub/software/unix/convert/utf7.tar.gz -@end example -@end itemize - - @node NNTP Folder, MH Folder, IMAP Folder, Folders @section NNTP Folder @cindex @samp{-} @@ -2695,14 +2672,16 @@ message then you have the reconstructed thread. @subsection Cache File The messages which have to access via network (e.x. IMAP, NNTP folder) -are cached as a local file. The cache file is saved under the directory +are cached as a local file so as to save network traffic or to enable +off-line operation. The cache file is saved under the directory @file{~/.elmo/cache}. To expire cache, type @kbd{M-x elmo-cache-expire-by-size}. The command deletes cache files to the specified size by the order of last accessed time. @subsection Buffer Cache and Prefetching -The messages that are read are kept in the cache buffer. It is called +The messages that are read are kept in the cache buffer so as to make +the behavior fast when you are to read the message again. It is called `buffer cache'. The number of cache buffer is specified by @code{wl-message-buffer-cache-size}. @@ -2965,6 +2944,22 @@ example. @end group @end lisp +@subsection on the format for sender name + +The format string @samp{%f} displays the return value of the function specified +by @code{wl-summary-from-function}. If you use the function +@code{wl-summary-default-from} (default), it displays sender name ordinarily, +while displays the recipient names if the folder name matches with +@code{wl-summary-showto-folder-regexp} and the sender is yourself. +If the value of @code{wl-use-petname} is Non-nil, it uses petname to display. + +For example, to display recipient names for the message in @samp{+backup} if +its sender is yourself, set up as follows. + +@lisp +(setq wl-summary-showto-folder-regexp "^\\+backup$") +@end lisp + @node Key Bindings of Summary, Variables of Summary, Summary View, Summary @section Key bindings @@ -3082,8 +3077,8 @@ If the message at current cursor point is your own netnews article, a draft for `supersedes message' for the message is prepared. (@code{wl-summary-reedit}) -@item M-e -@kindex M-e (Summary) +@item M-E +@kindex M-E (Summary) @findex wl-summary-resend-bounced-mail If the message at current cursor point is a bounced message, a draft for re-sending original message is prepared. @@ -3187,6 +3182,8 @@ Redisplay the message at current cursor point without MIME analysis. If the message at current cursor point has encapsulates multiple messages using MIME, de-capsulate and extract them on the current folder. +If it is invoked in non-writable folder or it is called with prefix +argument, it asks the destination folder. (@code{wl-summary-burst}) @item @@ @@ -3299,7 +3296,9 @@ You can sort by @samp{date}, @samp{from}, @samp{number} and @samp{subject}. @item T @kindex T (Summary) @findex wl-summary-toggle-thread -Toggle the threading. +Toggle the threading. The state will be preserved after exiting +Wanderlust. You can alter default state for newly created summary +by @code{wl-summary-default-view} or @code{wl-summary-default-view-alist}. Threading status is displayed on the modeline. @samp{@{S@}} means threading is off (Sequence) and @samp{@{T@}} means threading is on (Thread). @@ -3667,6 +3666,12 @@ Pipe content of each message with target mark @samp{*} to some specified external process. (@code{wl-summary-target-mark-pipe}) +@item D +@kindex D (Summary) +@findex wl-summary-erase +Actually erase the message at once, without moving it to trash. +(@code{wl-summary-erase}) + @item M-t @kindex M-t (Summary) @findex wl-toggle-plugged @@ -3767,7 +3772,7 @@ folder is moved. @item wl-summary-weekday-name-lang @vindex wl-summary-weekday-name-lang -The initial setting is @samp{ja}. Specify language of the weekday. +Specify language of the weekday. @samp{en} displays English, @samp{fr} displays French, @samp{de} displays Deutsch. You should rescan summary view after changing this value. @@ -3794,16 +3799,38 @@ The initial setting is '(1 . 4). A cons cell to specify the rate of summary and message window. car:cdr corresponds summary:message. +@item wl-summary-from-function +@vindex wl-summary-from-function +Format function to display sender in summary. +The initial setting is @code{wl-summary-default-from}. + @item wl-summary-no-from-message @vindex wl-summary-no-from-message The initial setting is @samp{nobody@@nowhere?}. A string which is displayed when there's no @samp{From:} field in the message. +@item wl-summary-subject-function +@vindex wl-summary-subject-function +Format function to display subject in summary. +The initial setting is @code{wl-summary-default-subject} and +it will cut the list name part etc. on the top of the subject. +To display subject as it is, set as follows. + +@lisp +(setq wl-summary-subject-function 'identity) +@end lisp + @item wl-summary-no-subject-message @vindex wl-summary-no-subject-message The initial setting is @samp{(WL:No Subject in original.)}. A string which is displayed when there's no @samp{Subject:} field in the message. +@item wl-summary-default-view +@vindex wl-summary-default-view +The initial setting is @code{'thread}. +The default state for newly created summary. You can set either +@code{'thread} for thread view or @code{'sequence} for sequential view. + @item wl-summary-use-frame @vindex wl-summary-use-frame The initial setting is @code{nil}. @@ -3850,11 +3877,6 @@ Width of summary line. If @code{nil}, summary line's width is as is. The initial setting is 17. Width of sender part of summary line. -@item wl-summary-subject-length-limit -@vindex wl-summary-subject-length-limit -The initial setting is @code{nil}. Specify the limit for the length of -subject parts in summary. @code{nil} means unlimited. - @item wl-summary-indent-length-limit @vindex wl-summary-indent-length-limit The initial setting is 46. @@ -3863,6 +3885,12 @@ indent level. If you set this to @code{nil} you should set @code{wl-summary-width} to @code{nil}, too. +@item wl-summary-max-thread-depth +@vindex wl-summary-max-thread-depth +The initial setting is 15. +If thread depth of the message is larger than this value, +the thread is divided. + @item wl-summary-recenter @vindex wl-summary-recenter The initial setting is t. @@ -4060,6 +4088,14 @@ moves to the previous message. Scrolls the message forward. When the bottom of the message is hit, moves to the next message. (@code{wl-message-wheel-up}) + +@item D +@kindex D (Message) +@findex wl-message-delete-current-part +Delete the part under cursor. In fact it appends modified message to +the current folder then moves old one to trash folder. Therefore the +message number will be changed. +(@code{wl-message-delete-current-part}) @end table @section Customizable Variables @@ -4130,6 +4166,9 @@ Basically it is Emacs-standard mail mode. @node Editing Header, Editing Message Body, Usage of Draft Mode, Usage of Draft Mode @subsection Editing Message Header +You can freely edit header region above @samp{--text follows this line--}, +until you invoke the sending operation. + Initially, the cursor is at the @samp{To:} field. Fill in recipients addresses. @kbd{@key{TAB}} completes them. @@ -4178,6 +4217,11 @@ the draft when it is prepared. @node Editing Message Body, Dynamical Message Re-arrangement, Editing Header, Usage of Draft Mode @subsection Editing Messages +As a matter of course, editing message body can be performed in the same +way as usual writing. You may write message body under +@samp{--text follows this line--} line. (NOTE: Be sure to leave the line +@samp{--text follows this line--} intact.) + Multi-part editing utilize MIME edit mode of SEMI. For procedures of editing, refer to respective documents. @xref{MIME-Edit, , ,mime-ui-en, a MIME user interface for GNU Emacs}. @@ -4282,9 +4326,6 @@ In the cdr part of a cons, not only a variable but also an elisp expression can be specified as is. If the car part is a header field and the cdr part is @code{nil}, the field will be deleted. -If you want to use name of parent folder, you can refer the buffer local -variable @code{wl-draft-parent-folder}. - See the next example as well: @lisp @@ -4305,6 +4346,22 @@ example, and when it matches the header being replied. It is ignored when there is no buffer being replied, like after @code{wl-draft} was invoked. +If you want to use name of parent folder, you can refer the buffer local +variable @code{wl-draft-parent-folder}. In the following example, Wanderlust +changes From according to the folder name of the summary in which the draft +was invoked. + +@lisp +@group +(setq wl-draft-config-alist + '(((string-match \".*@@domain1$\" wl-draft-parent-folder) + (\"From\" . \"user@@domain1\")) + ((string-match \".*@@domain2$\" wl-draft-parent-folder) + (\"From\" . \"user@@domain2\")))) +@end group +@end lisp + + Note that @code{wl-draft-config-alist} is applied only once when @code{wl-draft-send-and-exit} or @code{wl-draft-send} is invoked. Therefore, if you want to apply @code{wl-draft-config-alist} again after @@ -4452,7 +4509,10 @@ http://www.iecc.com/pop-before-smtp.html @item C-c C-y @kindex C-c C-y (Draft) @findex wl-draft-yank-original -Cites the content of the current message buffer. +Cites the content of the current message buffer (the part under cursor). +If the region is active, cites the region (it affects only if +@code{transient-mark-mode} (on GNU Emacs) or @code{zmacs-regions} +(on XEmacs) is Non-nil). (@code{wl-draft-yank-original}) @item C-c C-p @@ -4679,11 +4739,25 @@ The initial setting is 7. If @code{wl-template-visible-select} is non-nil, this variable specifies the size of the preview window. +@item wl-draft-buffer-style +@vindex wl-draft-buffer-style +The initial setting is @code{full}. +Style of draft buffer window (except for replying and forwarding). +@code{keep} is to use current window, +@code{full} is to use full frame window, +@code{split} is to split current window and use it. +If some function is specified, it is called with the draft buffer +as an argument. + @item wl-draft-reply-buffer-style @vindex wl-draft-reply-buffer-style -The initial setting is @code{split}. @code{split} or @code{full} can be -specified. In the case of @code{full}, the whole frame will be used for -a reply draft buffer when it is prepared. +The initial setting is @code{split}. +Style of draft buffer for replying and forwarding. +@code{keep} is to use message buffer window, +@code{full} is to use full frame window, +@code{split} is to split message buffer window and use it. +If some function is specified, it is called with the draft buffer +as an argument. @item wl-draft-use-frame @vindex wl-draft-use-frame @@ -4779,6 +4853,12 @@ or @samp{Cc:} field, do not insert @samp{Bcc:} or @samp{Fcc:} field. The initial setting is @code{nil}. This is the SMTP server name for mail transmission. +@item wl-smtp-posting-port +@vindex wl-smtp-posting-port +The initial setting is @code{nil}. +This is the SMTP port number for mail transmission. +If @code{nil}, default SMTP port number (25) is used. + @item wl-smtp-posting-user @vindex wl-smtp-posting-user The initial setting is @code{nil}. @@ -5176,7 +5256,7 @@ manually, press @kbd{F} in the folder mode. @item elmo-enable-disconnected-operation @vindex elmo-enable-disconnected-operation -The initial setting is @code{nil}. Controls off-line operations +The initial setting is @code{t}. Controls off-line operations regarding IMAP4. If non-nil, off-line operations are carried out. @item elmo-lost+found-folder @@ -5800,7 +5880,7 @@ Needless to say, you can use your own function. @end table -@node Scoring, Address Book, Expire and Archive, Top +@node Scoring, Split messages, Expire and Archive, Top @chapter Score of the Messages @cindex Scoring @c @cindex Kill File @@ -6298,7 +6378,156 @@ pop3 N E E E @end example -@node Address Book, Customization, Scoring, Top +@node Split messages, Address Book, Scoring, Top +@chapter Message splitting +@cindex Split messages + +You can use @code{elmo-split} to split message in folder specified by +the variable @code{elmo-split-folder} a la @command{procmail} according +to some specified rules. To use this feature, set as follows in your +@file{~/.emacs} at first. + +@lisp +(autoload 'elmo-split "elmo-split" "Split messages on the folder." t) +@end lisp + +Set source folder like following. + +@lisp +(setq elmo-split-folder "%inbox") +@end lisp + +And specify the rule in the variable @code{elmo-split-rule} (its format +will be is described below). +Then you can invoke @kbd{M-x elmo-split} to split messages according to +@code{elmo-split-rule}. On the other hand, invoke @kbd{C-u M-x elmo-split} +to do a rehearsal and show result (do not split actually). + + +We will describe how to specify the rule. First of all, see following +example, please. + +@lisp +@group +(setq elmo-split-rule + ;; @r{Store messages from spammers into @samp{+junk}} + '(((or (address-equal from "i.am@@spammer") + (address-equal from "dull-work@@dull-boy") + (address-equal from "death-march@@software") + (address-equal from "ares@@aon.at") + (address-equal from "get-money@@richman")) + "+junk") + ;; @r{Store messages from mule mailing list into @samp{%mule}} + ((equal x-ml-name "mule") "%mule") + ;; @r{Store messages from wanderlust mailing list into @samp{%wanderlust}} + ;; @r{and continue evaluating following rules} + ((equal x-ml-name "wanderlust") "%wanderlust" continue) + ;; @r{Store messages from Yahoo user into @samp{+yahoo-@{username@}}} + ((match from "\\(.*\\)@@yahoo\\.com") + "+yahoo-\\1") + ;; @r{Store unmatched mails into @samp{+inbox}} + (t "+inbox"))) +@end group +@end lisp + +The basic unit of the rule is a combination like + +@lisp +(@samp{CONDITION} @samp{ACTION} [@code{continue}]) +@end lisp + +If @samp{CONDITION} is true, @samp{ACTION} is performed. +The 1st element @samp{CONDITION} is a condition represented by a +balanced expression (sexp). Its grammar will be explained below. +The 2nd element @samp{ACTION} is the name of the folder to split +messages into, or a symbol. When the 3rd element @code{continue} is +specified as symbol, evaluating rules is not stopped even when the +condition is satisfied. + +The grammar for @samp{CONDITION} is as follows. See example above to +learn how to write the condition practically. + +@enumerate +@item +Functions which accept arguments @samp{FIELD-NAME} and @samp{VALUE}. +(@samp{FIELD-NAME} is a symbol that describes the field name) + +@table @code +@item @code{equal} +True if the field value equals to @samp{VALUE}. +Case of the letters are ignored. +@item @code{match} +True if the field value matches to VALUE. +@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute +from matching @code{\(\)} patterns in the previous @samp{VALUE}. +@item @code{address-equal} +True if one of the addresses in the field equals to +@samp{VALUE}. Case of the letters are ignored. +@item @code{address-match} +True if one of the addresses in the field matches to +@samp{VALUE}. +@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute +from matching @code{\(\)} patterns in the previous @samp{VALUE}. +@end table + +@item +Functions which accept an integer argument (@samp{SIZE}). + +@table @code +@item @code{<} +True if the size of the message is less than @samp{SIZE}. +@item @code{>} +True if the size of the message is greater than @samp{SIZE}. +@end table + +@item +Functions which accept any number of arguments. + +@table @code +@item @code{or} +True if one of the argument returns true. +@item @code{and} +True if all of the arguments return true. +@end table + +@item +A symbol. + +When a symbol is specified, it is evaluated. +@end enumerate + +You can specify followings as 2nd @samp{ACTION}. + +@enumerate +@item +folder name + +If some string is specified, it will be regarded as the destination +folder, and the message will be appended to it. + +@item +@samp{delete} + +If the symbol @samp{delete} is specified, delete the substance of the +message in @code{elmo-split-folder} + +@item +@samp{noop} + +If the symbol @samp{noop} is specified, do nothing on the message and +keep it as it is. + +@item +function + +If some function is specified, execute it. +@end enumerate + +If the message passes all rules, it will be dealed along @samp{ACTION} +specified by @code{elmo-split-default-action}. + + +@node Address Book, Customization, Split messages, Top @chapter Address Book @cindex Address Book @@ -6310,6 +6539,7 @@ summary displayed with nicknames. * Address Manager:: Address Manager @end menu + @node Mail Addresses, Address Manager, Address Book, Address Book @section Address book @cindex Address book Definition @@ -6484,8 +6714,9 @@ If @command{imput} is on the @code{exec-path} at the installation, @subsection bbdb.el @pindex BBDB -Place @file{util/bbdb-wl.el} on the @code{load-path} and do the following -settings. +To use The Insidious Big Brother Database (@uref{http://bbdb.sourceforge.net/}) +with Wanderlust, place @file{util/bbdb-wl.el} on the @code{load-path} +and do the following settings. If BBDB is on the @code{load-path} at the installation, @file{bbdb-wl.el} is byte-compiled and installed. @@ -6520,7 +6751,9 @@ in draft buffer. @subsection lsdb.el @pindex LSDB -The following is an example of settings: +The following is an example setting to use +The Lovely Sister Database (@uref{http://sourceforge.jp/projects/lsdb/}) +with Wanderlust. @lisp @group