* Why does the minibuffer get updated
@ 2009-01-15 16:43 Decebal
2009-01-16 3:36 ` Barry Margolin
2009-01-16 14:42 ` Decebal
0 siblings, 2 replies; 4+ messages in thread
From: Decebal @ 2009-01-15 16:43 UTC (permalink / raw)
To: help-gnu-emacs
I like to have a wordcount displayed. I tried it with the following:
(defun buffer-count-words()
(interactive)
(let ((occurences
(how-many "\\w+" (point-min) (point-max))
)
)
(string-match "[0-9]*" occurences)
(match-string 0 occurences)
)
)
(defvar buffer-count-words
nil
"*Number of words in the buffer."
)
(defun buffer-update-word-count()
(interactive)
(setq buffer-count-words (buffer-count-words))
(force-mode-line-update)
)
(unless buffer-count-words
(run-with-idle-timer 1 t 'buffer-update-word-count)
)
(unless (memq 'buffer-count-words global-mode-string)
(add-to-list 'global-mode-string " words: " t)
(add-to-list 'global-mode-string 'buffer-count-words t)
)
This does display the word count, but also keeps putting in the
minibuffer '<NUMBER> occurences'.
What am I doing wrong?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Why does the minibuffer get updated
2009-01-15 16:43 Why does the minibuffer get updated Decebal
@ 2009-01-16 3:36 ` Barry Margolin
2009-01-16 11:21 ` Decebal
2009-01-16 14:42 ` Decebal
1 sibling, 1 reply; 4+ messages in thread
From: Barry Margolin @ 2009-01-16 3:36 UTC (permalink / raw)
To: help-gnu-emacs
In article
<726d8899-cdb6-45a8-a30d-8ce27270c7ba@f40g2000pri.googlegroups.com>,
Decebal <CLDWesterhof@gmail.com> wrote:
> I like to have a wordcount displayed. I tried it with the following:
> (defun buffer-count-words()
> (interactive)
> (let ((occurences
> (how-many "\\w+" (point-min) (point-max))
> )
> )
> (string-match "[0-9]*" occurences)
> (match-string 0 occurences)
> )
> )
>
> (defvar buffer-count-words
> nil
> "*Number of words in the buffer."
> )
>
> (defun buffer-update-word-count()
> (interactive)
> (setq buffer-count-words (buffer-count-words))
> (force-mode-line-update)
> )
>
> (unless buffer-count-words
> (run-with-idle-timer 1 t 'buffer-update-word-count)
> )
>
> (unless (memq 'buffer-count-words global-mode-string)
> (add-to-list 'global-mode-string " words: " t)
> (add-to-list 'global-mode-string 'buffer-count-words t)
> )
>
> This does display the word count, but also keeps putting in the
> minibuffer '<NUMBER> occurences'.
> What am I doing wrong?
It's presumably coming from the how-many function, although my
documentation says that it only displays the number if the fourth
argument "interactive" is t. What version of Emacs are you running?
--
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Why does the minibuffer get updated
2009-01-16 3:36 ` Barry Margolin
@ 2009-01-16 11:21 ` Decebal
0 siblings, 0 replies; 4+ messages in thread
From: Decebal @ 2009-01-16 11:21 UTC (permalink / raw)
To: help-gnu-emacs
On Jan 16, 4:36 am, Barry Margolin <bar...@alum.mit.edu> wrote:
> In article
> <726d8899-cdb6-45a8-a30d-8ce27270c...@f40g2000pri.googlegroups.com>,
>
>
>
> Decebal <CLDWester...@gmail.com> wrote:
> > I like to have a wordcount displayed. I tried it with the following:
> > (defun buffer-count-words()
> > (interactive)
> > (let ((occurences
> > (how-many "\\w+" (point-min) (point-max))
> > )
> > )
> > (string-match "[0-9]*" occurences)
> > (match-string 0 occurences)
> > )
> > )
>
> > (defvar buffer-count-words
> > nil
> > "*Number of words in the buffer."
> > )
>
> > (defun buffer-update-word-count()
> > (interactive)
> > (setq buffer-count-words (buffer-count-words))
> > (force-mode-line-update)
> > )
>
> > (unless buffer-count-words
> > (run-with-idle-timer 1 t 'buffer-update-word-count)
> > )
>
> > (unless (memq 'buffer-count-words global-mode-string)
> > (add-to-list 'global-mode-string " words: " t)
> > (add-to-list 'global-mode-string 'buffer-count-words t)
> > )
>
> > This does display the word count, but also keeps putting in the
> > minibuffer '<NUMBER> occurences'.
> > What am I doing wrong?
>
> It's presumably coming from the how-many function, although my
> documentation says that it only displays the number if the fourth
> argument "interactive" is t. What version of Emacs are you running?
At the moment I am working with:
GNU Emacs 21.3.1 (i586-suse-linux-gnu, X toolkit, Xaw3d scroll
bars) of 2008-05-16 on hammer3
And it is also in this one going wrong.
I tried to add nil:
(how-many "\\w+" (point-min) (point-max) nil)
Nothing is displayed in the echo area (it is not the minibuffer I
learned), but there is also nothing displayed after 'words: ' in the
status bar. So that is not a solution.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Why does the minibuffer get updated
2009-01-15 16:43 Why does the minibuffer get updated Decebal
2009-01-16 3:36 ` Barry Margolin
@ 2009-01-16 14:42 ` Decebal
1 sibling, 0 replies; 4+ messages in thread
From: Decebal @ 2009-01-16 14:42 UTC (permalink / raw)
To: help-gnu-emacs
On 15 jan, 17:43, Decebal <CLDWester...@gmail.com> wrote:
> I like to have a wordcount displayed. I tried it with the following:
> (defun buffer-count-words()
> (interactive)
> (let ((occurences
> (how-many "\\w+" (point-min) (point-max))
> )
> )
> (string-match "[0-9]*" occurences)
> (match-string 0 occurences)
> )
> )
>
> (defvar buffer-count-words
> nil
> "*Number of words in the buffer."
> )
>
> (defun buffer-update-word-count()
> (interactive)
> (setq buffer-count-words (buffer-count-words))
> (force-mode-line-update)
> )
>
> (unless buffer-count-words
> (run-with-idle-timer 1 t 'buffer-update-word-count)
> )
>
> (unless (memq 'buffer-count-words global-mode-string)
> (add-to-list 'global-mode-string " words: " t)
> (add-to-list 'global-mode-string 'buffer-count-words t)
> )
>
> This does display the word count, but also keeps putting in the
> minibuffer '<NUMBER> occurences'.
> What am I doing wrong?
It is partly a version problem. With 'GNU Emacs 22.3.1 (i586-suse-
linux-gnu, X toolkit, Xaw3d scroll bars)
of 2008-12-03 on build19' it works with a few modifications.
With:
(defun buffer-count-words()
(interactive)
(how-many "\\w+" (point-min) (point-max))
)
and
(defun buffer-update-word-count()
(interactive)
(setq buffer-count-words
(number-to-string (buffer-count-words))
)
(force-mode-line-update)
)
it works.
The systems I can update, I am going to update. For the system I can
not update I have to copy how-many out of replace.el.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-01-16 14:42 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-15 16:43 Why does the minibuffer get updated Decebal
2009-01-16 3:36 ` Barry Margolin
2009-01-16 11:21 ` Decebal
2009-01-16 14:42 ` Decebal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).