* how to reverse a region of several words? @ 2008-07-28 8:11 sunway 2008-07-28 9:03 ` Thierry Volpiatto ` (3 more replies) 0 siblings, 4 replies; 11+ messages in thread From: sunway @ 2008-07-28 8:11 UTC (permalink / raw) To: help-gnu-emacs e.g. the region contains words like "aaa bbb ccc ddd",I want to reverse it to "ddd ccc bbb aaa" ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: how to reverse a region of several words? 2008-07-28 8:11 how to reverse a region of several words? sunway @ 2008-07-28 9:03 ` Thierry Volpiatto 2008-07-28 15:00 ` tyler ` (2 subsequent siblings) 3 siblings, 0 replies; 11+ messages in thread From: Thierry Volpiatto @ 2008-07-28 9:03 UTC (permalink / raw) To: sunway; +Cc: help-gnu-emacs sunway <sunwayforever@gmail.com> writes: > e.g. the region contains words like "aaa bbb ccc ddd",I want to > reverse it to "ddd ccc bbb aaa" > kill your region with some kill func (check elisp man) and store it (A) Be sure to remember the position of your text. ,---- | ELISP> (setq A "aaa bbb ccc ddd") | "aaa bbb ccc ddd" | ELISP> (setq A (split-string A)) | ("aaa" "bbb" "ccc" "ddd") | | ELISP> (setq A (reverse A)) | ("ddd" "ccc" "bbb" "aaa") | | ELISP> (mapconcat #'(lambda (x) x) A " ") | "ddd ccc bbb aaa" `---- And now insert the new text at the saved position. -- A + Thierry Volpiatto Location: Saint-Cyr-Sur-Mer - France ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: how to reverse a region of several words? 2008-07-28 8:11 how to reverse a region of several words? sunway 2008-07-28 9:03 ` Thierry Volpiatto @ 2008-07-28 15:00 ` tyler 2008-07-28 17:44 ` Pascal J. Bourguignon [not found] ` <mailman.15498.1217257259.18990.help-gnu-emacs@gnu.org> 3 siblings, 0 replies; 11+ messages in thread From: tyler @ 2008-07-28 15:00 UTC (permalink / raw) To: help-gnu-emacs sunway <sunwayforever@gmail.com> writes: > e.g. the region contains words like "aaa bbb ccc ddd",I want to > reverse it to "ddd ccc bbb aaa" > I think you probably want the words themselves to stay in the original order, i.e., one two => two one? If not, if you want to completely reverse the text, i.e., one two => owt eno, I use the following function: (defun reverse-string (beg1 end2) "Reverse the order of characters in a region. From a program takes two point or marker arguments, BEG1 and END2." (interactive "r") (if (> beg1 end2) (let (mid) (setq mid end2 end2 beg1 beg1 mid))) (while (< beg1 (1- end2)) (let ((end1 (1+ beg1)) (beg2 (1- end2))) (transpose-regions beg1 end1 beg2 end2)) (incf beg1) (decf end2))) Cheers, Tyler -- Philosophy of science is about as useful to scientists as ornithology is to birds. --Richard Feynman ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: how to reverse a region of several words? 2008-07-28 8:11 how to reverse a region of several words? sunway 2008-07-28 9:03 ` Thierry Volpiatto 2008-07-28 15:00 ` tyler @ 2008-07-28 17:44 ` Pascal J. Bourguignon 2008-07-28 18:51 ` tyler [not found] ` <mailman.15498.1217257259.18990.help-gnu-emacs@gnu.org> 3 siblings, 1 reply; 11+ messages in thread From: Pascal J. Bourguignon @ 2008-07-28 17:44 UTC (permalink / raw) To: help-gnu-emacs sunway <sunwayforever@gmail.com> writes: > e.g. the region contains words like "aaa bbb ccc ddd",I want to > reverse it to "ddd ccc bbb aaa" Select it and M-x reverse-line RET -- __Pascal Bourguignon__ http://www.informatimago.com/ Until real software engineering is developed, the next best practice is to develop with a dynamic system that has extreme late binding in all aspects. The first system to really do this in an important way is Lisp. -- Alan Kay ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: how to reverse a region of several words? 2008-07-28 17:44 ` Pascal J. Bourguignon @ 2008-07-28 18:51 ` tyler 0 siblings, 0 replies; 11+ messages in thread From: tyler @ 2008-07-28 18:51 UTC (permalink / raw) To: help-gnu-emacs pjb@informatimago.com (Pascal J. Bourguignon) writes: > sunway <sunwayforever@gmail.com> writes: > >> e.g. the region contains words like "aaa bbb ccc ddd",I want to >> reverse it to "ddd ccc bbb aaa" > > Select it and M-x reverse-line RET What version are you running? 23.0.60.1 doesn't have reverse-line... Tyler -- Tired of spyware? Try Firefox: www.firefox.com ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <mailman.15498.1217257259.18990.help-gnu-emacs@gnu.org>]
* Re: how to reverse a region of several words? [not found] ` <mailman.15498.1217257259.18990.help-gnu-emacs@gnu.org> @ 2008-07-29 3:13 ` sunway 2008-07-29 5:35 ` Thierry Volpiatto 2008-07-29 5:46 ` Pascal J. Bourguignon 0 siblings, 2 replies; 11+ messages in thread From: sunway @ 2008-07-29 3:13 UTC (permalink / raw) To: help-gnu-emacs I want to transpose "one two" to " two one" On Jul 28, 11:00 pm, tyler <tyler.sm...@mail.mcgill.ca> wrote: > sunway <sunwayfore...@gmail.com> writes: > > e.g. the region contains words like "aaa bbb ccc ddd",I want to > > reverse it to "ddd ccc bbb aaa" > > I think you probably want the words themselves to stay in the original > order, i.e., one two => two one? If not, if you want to completely > reverse the text, i.e., one two => owt eno, I use the following > function: > > (defun reverse-string (beg1 end2) > "Reverse the order of characters in a region. > From a program takes two point or marker arguments, BEG1 and END2." > (interactive "r") > (if (> beg1 end2) > (let (mid) (setq mid end2 end2 beg1 beg1 mid))) > (while (< beg1 (1- end2)) > (let ((end1 (1+ beg1)) > (beg2 (1- end2))) > (transpose-regions beg1 end1 beg2 end2)) > (incf beg1) > (decf end2))) > > Cheers, > > Tyler > -- > Philosophy of science is about as useful to scientists as ornithology is to > birds. --Richard Feynman ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: how to reverse a region of several words? 2008-07-29 3:13 ` sunway @ 2008-07-29 5:35 ` Thierry Volpiatto 2008-07-29 5:46 ` Pascal J. Bourguignon 1 sibling, 0 replies; 11+ messages in thread From: Thierry Volpiatto @ 2008-07-29 5:35 UTC (permalink / raw) To: sunway; +Cc: help-gnu-emacs sunway <sunwayforever@gmail.com> writes: > I want to transpose "one two" to " two one" Put the point on two and hit M-t. ,----[ C-h k M-t ] | M-t runs the command transpose-words, which is an interactive compiled | Lisp function in `simple.el'. | | It is bound to M-t. | | (transpose-words arg) | | Interchange words around point, leaving point at end of them. | With prefix arg arg, effect is to take word before or around point | and drag it forward past arg other words (backward if arg negative). | If arg is zero, the words around or after point and around or after mark | are interchanged. | | [back] `---- > On Jul 28, 11:00 pm, tyler <tyler.sm...@mail.mcgill.ca> wrote: >> sunway <sunwayfore...@gmail.com> writes: >> > e.g. the region contains words like "aaa bbb ccc ddd",I want to >> > reverse it to "ddd ccc bbb aaa" >> >> I think you probably want the words themselves to stay in the original >> order, i.e., one two => two one? If not, if you want to completely >> reverse the text, i.e., one two => owt eno, I use the following >> function: >> >> (defun reverse-string (beg1 end2) >> "Reverse the order of characters in a region. >> From a program takes two point or marker arguments, BEG1 and END2." >> (interactive "r") >> (if (> beg1 end2) >> (let (mid) (setq mid end2 end2 beg1 beg1 mid))) >> (while (< beg1 (1- end2)) >> (let ((end1 (1+ beg1)) >> (beg2 (1- end2))) >> (transpose-regions beg1 end1 beg2 end2)) >> (incf beg1) >> (decf end2))) >> >> Cheers, >> >> Tyler >> -- >> Philosophy of science is about as useful to scientists as ornithology is to >> birds. --Richard Feynman > -- A + Thierry Volpiatto Location: Saint-Cyr-Sur-Mer - France ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: how to reverse a region of several words? 2008-07-29 3:13 ` sunway 2008-07-29 5:35 ` Thierry Volpiatto @ 2008-07-29 5:46 ` Pascal J. Bourguignon 2008-07-30 6:27 ` sunway 1 sibling, 1 reply; 11+ messages in thread From: Pascal J. Bourguignon @ 2008-07-29 5:46 UTC (permalink / raw) To: help-gnu-emacs sunway <sunwayforever@gmail.com> writes: > I want to transpose "one two" to " two one" put the cursor between one and two and type: M-x transpose-words RET or M-t -- __Pascal Bourguignon__ http://www.informatimago.com/ NOTE: The most fundamental particles in this product are held together by a "gluing" force about which little is currently known and whose adhesive power can therefore not be permanently guaranteed. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: how to reverse a region of several words? 2008-07-29 5:46 ` Pascal J. Bourguignon @ 2008-07-30 6:27 ` sunway 2008-07-30 7:00 ` Pascal J. Bourguignon 2008-07-30 7:43 ` Thierry Volpiatto 0 siblings, 2 replies; 11+ messages in thread From: sunway @ 2008-07-30 6:27 UTC (permalink / raw) To: help-gnu-emacs no, I want to transpose "one two three four" to "four three two one" On Jul 29, 1:46 pm, p...@informatimago.com (Pascal J. Bourguignon) wrote: > sunway <sunwayfore...@gmail.com> writes: > > I want to transpose "one two" to " two one" > > put the cursor between one and two and type: > M-x transpose-words RET or M-t > > -- > __Pascal Bourguignon__ http://www.informatimago.com/ > > NOTE: The most fundamental particles in this product are held > together by a "gluing" force about which little is currently known > and whose adhesive power can therefore not be permanently > guaranteed. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: how to reverse a region of several words? 2008-07-30 6:27 ` sunway @ 2008-07-30 7:00 ` Pascal J. Bourguignon 2008-07-30 7:43 ` Thierry Volpiatto 1 sibling, 0 replies; 11+ messages in thread From: Pascal J. Bourguignon @ 2008-07-30 7:00 UTC (permalink / raw) To: help-gnu-emacs sunway <sunwayforever@gmail.com> writes: > > On Jul 29, 1:46 pm, p...@informatimago.com (Pascal J. Bourguignon) > wrote: >> sunway <sunwayfore...@gmail.com> writes: >> > I want to transpose "one two" to " two one" >> >> put the cursor between one and two and type: >> M-x transpose-words RET or M-t > > no, I want to transpose "one two three four" to "four three two one" (defun reverse-words (start end) (interactive "r") (let ((words (reverse (split-string (buffer-substring start end))))) (delete-region start end) (dolist (word words) (insert word " ")) (backward-char 1) (delete-char 1))) -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail? ----------> http://www.netmeister.org/news/learn2quote.html <----------- ---> http://homepage.ntlworld.com/g.mccaughan/g/remarks/uquote.html <--- __Pascal Bourguignon__ http://www.informatimago.com/ ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: how to reverse a region of several words? 2008-07-30 6:27 ` sunway 2008-07-30 7:00 ` Pascal J. Bourguignon @ 2008-07-30 7:43 ` Thierry Volpiatto 1 sibling, 0 replies; 11+ messages in thread From: Thierry Volpiatto @ 2008-07-30 7:43 UTC (permalink / raw) To: sunway; +Cc: help-gnu-emacs sunway <sunwayforever@gmail.com> writes: > no, I want to transpose "one two three four" to "four three two one" ,---- | (defun reverse-sentence-region (&optional separator) | (interactive "P") | (let ((beg (point)) | (sentence) | (separator)) | (when current-prefix-arg | (setq separator (read-string "Separator: "))) | (kill-region beg (mark)) | (setq sentence (nth 0 kill-ring)) | (setq sentence (split-string sentence (if separator | separator))) | (setq sentence (reverse sentence)) | (setq sentence (mapconcat #'(lambda (x) x) | sentence | (if separator | separator | " "))) | (insert sentence))) `---- 1) Mark region 2) Run M-x reverse-sentence-region or C-u M-x reverse-sentence-region if the words in region are separated with something else than " " > On Jul 29, 1:46 pm, p...@informatimago.com (Pascal J. Bourguignon) > wrote: >> sunway <sunwayfore...@gmail.com> writes: >> > I want to transpose "one two" to " two one" >> >> put the cursor between one and two and type: >> M-x transpose-words RET or M-t >> >> -- >> __Pascal Bourguignon__ http://www.informatimago.com/ >> >> NOTE: The most fundamental particles in this product are held >> together by a "gluing" force about which little is currently known >> and whose adhesive power can therefore not be permanently >> guaranteed. > -- A + Thierry Volpiatto Location: Saint-Cyr-Sur-Mer - France ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2008-07-30 7:43 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-07-28 8:11 how to reverse a region of several words? sunway 2008-07-28 9:03 ` Thierry Volpiatto 2008-07-28 15:00 ` tyler 2008-07-28 17:44 ` Pascal J. Bourguignon 2008-07-28 18:51 ` tyler [not found] ` <mailman.15498.1217257259.18990.help-gnu-emacs@gnu.org> 2008-07-29 3:13 ` sunway 2008-07-29 5:35 ` Thierry Volpiatto 2008-07-29 5:46 ` Pascal J. Bourguignon 2008-07-30 6:27 ` sunway 2008-07-30 7:00 ` Pascal J. Bourguignon 2008-07-30 7:43 ` Thierry Volpiatto
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).