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

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

Re: Then how to replace all my $$ ... $$ to \[ \] through search and rep


From: Xah
Subject: Re: Then how to replace all my $$ ... $$ to \[ \] through search and replace?
Date: Fri, 15 Aug 2008 01:01:51 -0700 (PDT)
User-agent: G2/1.0

On Aug 15, 12:29 am, "xiaopeng hu" <address@hidden> wrote:
> Then how to replace all my $$ ... $$ to \[ \] through search and replace?
> Thanks

Please read the manual! You can read the manual in the menu “Help‣Read
Emacs Manual” section. Then, you can easily find search and replace
section.

your question seems to be a basic question of using emacs. Are you
having a problem with regex? or you don't know what command to use??

If your question is about regex, see:

Text Pattern Matching in Emacs
http://xahlee.org/emacs/emacs_regex.html

or the emacs manual about regex.

If your question is about emacs's find/replace commands, see:

Find and Replace with Emacs
http://xahlee.org/emacs/emacs_find_replace.html

Plain text version follows.

------------------------

Find and Replace with Emacs

Xah Lee, 2008-03

This page shows you how to use emacs to do find and replace
operations, and tells you how to do case-sensitive or case-insensitive
match or replacement, and how to force captured regex text pattern
into upper or lower case.

EMACS'S FIND AND REPLACE COMMANDS

Here are the emacs find and replace commands. These are also under the
graphical menu “Edit‣Replace”.

Command Name    keybard shortcut        Target  Description
query-replace   “Alt+%” or menu “Edit‣Replace”  region, or cursor point
to end  interactive find and replace
query-replace-regexp    “Ctrl+Alt+%” or menu “Edit‣Replace”     region, or
cusor point to end      interactive find and replace with regex pattern
dired-do-query-replace-regexp   In dired, “Q”, or menu “Operate‣Query
Replace in Files...”    multiple files  interactive find and replace with
regex pattern on multiple files

For example, to use query-replace, type “Alt+%”, then type your search
string, then type your replacement string.

When the query commands stops to ask you for confirmation, type
“y” (or space bar) to do the replacement, type “n” to skip, type “!”
to do all remaining replacements without asking, type “q” to exit.

For tutorial on how to use dired-do-query-replace-regexp, see
Interactively Find and Replace String Patterns on Multiple Files.

Emacs also have commands replace-string and replace-regexp. They are
the non-interactive versions of query-replace and query-replace-
regexp. They do all replacements in one-shot without asking
confirmation for each replacement.

CASE SENSITIVITY IN SEARCH STRING

By default, search is not case sensitive; however, if your search
string contains a capital letter, search is automatically case
sensitive.

To make your search absolutely case-sensitive, use the menu
“Options‣Case-Insensitive Search”. The menu is a toggle. A checkmark
in front of the menu means it is on.

(Technically, the case sensitivity is controlled by the variable case-
fold-search. You can set this variable to true (t) or false (nil) by
typing “M-x set-variable”, then the vaiable name, then give a value
“t” or “nil”. To see what the current value is, type “M-x describe-
variable” then give the variable name. There is also a command toggle-
case-fold-search, which toggles the value of case-fold-search)

CASE IN REPLACEMENT STRING

By default, the case of the replaced text is smartly dependent on the
matched text. For example, suppose your search string is “here”, and
your replacement string is “dragon” (and assume you are using default
emacs setup so that it will match both “here”, “Here”, “HERE”). Now,
when emacs found “here”, the replacement will be “dragon”, when emacs
found “Here”, the replacement will be “Dragon”, when emacs found
“HERE”, the replacement will be “DRAGON”.

If you want the letter case of your replacement string be literal, you
need to set the variable case-replace to “t”. Type “Alt+x set-
variable” then the variable name, then give it a value of “t”.

FORCE CASE OF MATCHED TEXT

Sometimes you need to do regex search to find a pattern, and have the
case of the pattern be changed. For example, suppose in your html code
you have:

<p>once upon a time ...</p>

<P>There is a dragon who lived in ...</P>

<p>princess Tana is still waiting ...</p>

You want to make sure that all paragraphs starts with a capital
letter. So, you use a pattern that catches the first letter after <p>,
like this “<p>\([a-z]\)”. By default, emacs will match both “<P>” and
“<p>”.

To make your captured pattern upper case, give your replacement string
this expression: “<p>\,(upcase \1)”. The “\,” tells emacs that what
follows should be a lisp expression. The “(upcase \1)” is a lisp
expression. The “upcase” is a lisp function and the “\1” means the 1st
captured string in your regex pattern. If you want lower case, use
“downcase” in place of “upcase”.

For a more complex example in using the “\,” in replacement, see: Lisp
Lesson: Regex Replace with a Function.

Reference: (info "(emacs)Search").

----------------------------

  Xah
∑ http://xahlee.org/

reply via email to

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