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

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

Re: Replace all tab characters in buffer with newline


From: Kevin Rodgers
Subject: Re: Replace all tab characters in buffer with newline
Date: Wed, 15 Jan 2014 23:30:18 -0700
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.28) Gecko/20120306 Thunderbird/3.1.20

On 1/15/14 9:51 AM, Angus Comber wrote:
Hi I found a way to do this:

c-m-% then C-Q<tab>  replace with: C-Q C-J

C-j is the key thing that works.

Reason is that C-J means a newline and if you just press enter that is 
interpretted by emacs as the end of the command.  (Or anyway is interpretted 
differently).

[Please don't top-post.]

For a precise explanation of that interpretation:

1. C-h f read-event

   Note that evaluating (read-event "Event: ") in the *scratch* buffer and then
   hitting the Enter key returns [return] i.e. a vector with 1 element which
   is a symbol.

2. C-h f read-key

   Note that evaluating (read-key "Key: ") in the *scratch* buffer and then
   hitting the <Enter> key returns 13, which is the ASCII code for Control-M:

   (format "%c" 13) returns "^M" i.e. a string with 1 character which is
   Control-M.

3. See the "Named ASCII Chars" node in the Emacs manual.

4. See the "Function Keys" and "Translation Keymaps" nodes in the Emacs Lisp
   manual.

5. C-h v local-function-key-map

You can get C-q <Enter> to behave as you expected with this:

(defadvice quoted-insert (around translate-enter-to-newline activate)
  (let ((local-function-key-map  (copy-keymap local-function-key-map)))
    (define-key local-function-key-map [return] [?\C-j])
    ad-do-it))

> On Wednesday, 15 January 2014 16:41:08 UTC, Angus Comber  wrote:
>> I have eg:
>>
>> text1<tab>text2<tab>text3
>> text4<tab>text5<tab>text6
>>
>> I want to transform into:
>>
>> text1
>> text2
>> text3
>> text4
>> text5
>> text6
>>
>> Using c-m-% I tried this:
>>
>> c-m=% Used C-Q for quorted then entered tab key on keyboard
>>
>> For replacement I used C-Q (quoted) then entered<enter>  key
>>
>> But then I end up with:
>>
>> text1^Mtext2^Mtext3
>> text4^Mtext5^Mtext6
>>
>> How should I have done it?
>>
>> Platform is Windows by the way.



--
Kevin Rodgers
Denver, Colorado, USA




reply via email to

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