Er zijn verscheidene manieren om in Emacs naar tekst te zoeken. Veel daarvan zijn nogal complex, en niet waard om hier op in te gaan. De makkelijkste en meest comfortabele manier is door gebruik te maken van de functie isearch "Isearch" staat voor "incremental search". Stel dat je in de volgende buffer wilt zoeken naar de tekenreeks "paardenvlieg":
Ik zweette peentjes dat we zonder benzine zouden
komen te zitten, toen mijn passagier ineens uitriep
"Wel verdorie! Er zit hier een paardenvlieg!".
Je zou naar het begin van de buffer gaan, of in ieder geval naar een lokatie in de tekst waarvan je weet dat het te zoeken woord "paardenvlieg" na deze lokatie voorkomt, en typt C-s. Daarmee kom je terecht in de isearch modus. Begin nu het woord te typen waarnaar je op zoek bent, "paardenvlieg". Maar zodra je de "p" hebt ingetikt, zie je dat Emacs naar de eerste "p" in de buffer is gesprongen. Als de volledige inhoud van de buffer uit de bovenstaande quote zou bestaan, dan zou dat de eerste "p" van het woord "peentjes" zijn. Typ nu de "a" van "paardenvlieg", waarna Emacs verder springt naar "passagier" waarin de eerste tekenreeks "pa" voorkomt. De "a" brengt je bij "passagier", en tenslotte brengt nog een "a" je bij "paardenvlieg", zonder dat je het gehele woord hoefde in te tikken.
In een isearch definieer je een op te zoeken tekenreeks. Iedere keer dat je een teken aan de tekenreeks toevoegt, wordt het aantal overeenkomsten beperkt, totdat je voldoende hebt ingevoerd dat de string als uniek kan worden gedefinieerd. Zodra je de overeenkomst hebt gevonden waar je naar op zoek was, kun je de zoekopdracht verlaten met Return of één van de normale verplaatsingsopdrachten. Denk je dat de tekenreeks waar je naar op zoek bent zich eerder in de buffer bevindt, dan maak je gebruik van C-r, waarmee een terugwaartse isearch wordt uitgevoerd.
Druk nogmaals op C-s tijdens de search als je een overeenkomst tegenkomt, maar dit niet degene is die je zoekt. Na elke C-s ga je voorwaarts naar de volgende volledige match. Er wordt aangegeven dat de zoekopdracht mislukte als je er geen volgende match (meer) is. Druk je echter weer op C-s dan zal de zoekopdracht weer verdergaan bij het begin van de buffer. Het omgekeerde geldt tevens voor C-r, waarmee wordt verdergegaan vanaf het einde van de buffer.
Probeer een buffer tevoorschijn te halen met gewone tekst en voer een isearch uit voor de string "de". Eerst typ je zoveel in als je wilt, vervolgens gebruik je herhaaldelijk C-s om alle instanties ervan af te lopen. Tevens zal het overeenkomen met woorden als "den", aangezien hier ook de substring "de" in voorkomt. Om slechts naar "de" te kunnen zoeken, moet je een spatie aan het einde van je zoekstring toevoegen. Je kunt op elk punt in de zoekopdracht nieuwe tekens toevoegen, zelfs nadat je herhaaldelijk de combinatie C-s hebt gebruikt om naar de volgende overeenkomsten te zoeken. Je kunt ook de Backspace of Delete-toets gebruiken om tekens uit de zoekstring te verwijderen. Met Return beëindig je de zoekopdracht, je achterlatend bij de laatste match.
Emacs biedt je ook de mogelijkheid alle voorkomens van een string door een nieuwe string te vervangen. Dit staat bekend als query-replace. Typ voor de aanroep hiervan query-replace en druk op Return. Op de opdrachtnaam wordt voltooiing toegepast, dus zodra je "query-re" hebt ingevoerd, kun je Tab gebruiken om het af te maken. Stel dat je alle instanties van "paardenvlieg" door "huisvlieg" wilt vervangen. Typ achter de "Query replace:" prompt, "paardenvlieg", en druk op Return. Je krijgt dan de prompt weer terug en tikt in "huisvlieg". Emacs doorloopt vervolgens de buffer, en stopt bij elke instantie van het woord "paardenvlieg", en vraagt je of je het wilt vervangen. Druk elke keer op "y" of "n", voor "Yes" of "No", totdat het hiermee stopt. Probeer het uit als het je niets zegt bij het lezen ervan.