help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why emacsclient -e "(current-word nil t)" does not print ?


From: Pascal J. Bourguignon
Subject: Re: Why emacsclient -e "(current-word nil t)" does not print ?
Date: Tue, 21 Jul 2009 15:35:20 +0200
User-agent: Gnus/5.101 (Gnus v5.10.10) Emacs/22.2 (gnu/linux)

Wang Lei <wanglei.198112@gmail.com> writes:

> On 7/21/09, Pascal J. Bourguignon <pjb@informatimago.com> wrote:
>> Wang Lei <wanglei.198112@gmail.com> writes:
>>
>>> On 7/21/09, Pascal J. Bourguignon <pjb@informatimago.com> wrote:
>>>> Wang Lei <wanglei.198112@gmail.com> writes:
>>>>
>>>>> Hi, all.
>>>>>
>>>>> I'm doing a piece of code. What needs get the output of
>>>>> emacsclient -e "(current-word nil t)"
>>>>>
>>>>> and send it to an external command. But there was NO output. I don't
>>>>> understand.
>>>>>
>>>>> Could someone explain that?
>>>>
>>>> That's because -e prints the result only when it's not nil.
>>>> Try:
>>>>
>>>>     emacsclient -e "(or (current-word nil t) :nil)"
>>>>
>>> Actually, what am i interested is the "current word", in this line,
>>> it's should print 't'. In emacs it does print 't'. But with
>>> emacsclient, nothing.
>>>
>>> Is this normal?
>>
>> Perhaps.   I cannot parse your sentence starting with "Actually".
>>
> I mean "in fact", sorry for my poor english. ;)

Yes, I understand the meaning of the word "Actually", but it's the
whole sentence that I don't understand:

    Actually, what am i interested is the "current word", in this
    line, it's should print 't'.

What is the "it" that should print 't'?  

"current word" is two words, "current" and "word"...  Which of those
two words are you interested in?  The current word, or the word
"current", or the word "word"?  Or do you mean that "this line" refers
to another line?



>> Did you read what I wrote above?  I won't repeat it.
>>
> Yes, I read and tried. It return :nil.

So this shows that there is no current word, since current-word
returns nil, which my expression explicitely substitute with :nil.


>> Otherwise, if you use emacsclient from within emacs (eg. from the M-x
>> shell) you will obviously get different results.  Once you hit RET,
>> emacs changes the position of the cursor, so the current word is not
>> the same as when you hit RET, and current-word will return nil.
>>
> Yes. Maybe this is the reason, or maybe as Miles Bader said, it is in
> the *server* buffer and it is empty.
>
> Anyway, it proves what i have thought is wrong.

I can confirm that with my version of emacs, I get the current buffer
and the current word:

$ emacsclient -e '(list emacs-version (buffer-name) (current-word))'
("22.2.1" "Main.cc" "FilterFunction")


>> And I don't see how current-word could return t.  At best, it could
>> return "t", if you had the cursor on a single letter 't'.
>>
> I meant, in emacs C-x C-e, it returns "t".

With my emacs,

On a line alone, (current-word) C-x C-e  shows «"current-word"» in the mini 
buffer.

On a line alone, (current-word) SPC t C-b C-x C-e shows «"t"» in the mini 
buffer.

On a line alone, (current-word) SPC SPC t C-b C-b C-x C-e shows 
«"current-word"» in the mini buffer.


-- 
__Pascal Bourguignon__


reply via email to

[Prev in Thread] Current Thread [Next in Thread]