\documentclass[a4paper,twocolumn,10pt]{article} \usepackage[swedish]{babel} \usepackage[latin1]{inputenc} \usepackage{layout} %\usepackage{palatino} \raggedright \setlength{\topmargin}{-2cm} \addtolength{\textwidth}{2cm} %\addtolength{\evensidemargin}{-4cm} \addtolength{\oddsidemargin}{-1cm} \addtolength{\textheight}{4.5cm} \newcommand{\latdel}{\section*} \newcommand{\file}[1]{{\rmfamily\upshape#1}} \renewenvironment{description} {% \renewcommand{\item}{\ttfamily\item} \begin{list}{foo} {\setlength{\parsep}{0\fill}% \renewcommand{\makelabel}[1]{\texttt{##1}}}} {\end{list}} \begin{document} %\layout {\Huge\bfseries GNU Emacs}\hfill \parbox[b]{1.5cm}{Liten\\lathund} \vspace{10pt} \noindent Framställd för UppLYSning 11/10 1995 av David Kågedal \texttt{}. \vspace{6pt} \noindent\hrulefill \latdel{Hjälp} \begin{description} \item[C-h C-h C-h] Hjälp om hjälp \item[C-h m] Mod-specifik hjälp. Används om du undrar vad som är speciellt med en buffert och dess mod. \item[C-h k] Beskriv vad en tangent gör. \item[C-h w] Hitta på vilken tangent ett kommando är bundet. \item[\ldots C-h] Vilka kommandon finns under \ldots? Om du trycker t.ex. \texttt{C-c~C-h} får du veta vilka tangentkommandon som finns under \texttt{C-c}. \item[C-h i] Starta Info. Använd \texttt{h} för hjälp i Info, och \texttt{t} för en introduktion. \item[C-\_, C-/, C-x u] Ångra. Jag tyckte det var lika bra att nämna det på en gång. \end{description} \latdel{Kommandon} \begin{description} \item[M-x] Kör ett kommando \item[M-n, M-p] Gå framåt och bakåt i historielistan. \item[C-u] Prefix. Ska man ange ett numeriskt prefix, skriv \texttt{C-u~1~7} för att ge prefixet 17. Ett alternativt sätt är att skriva \texttt{M-1~M-7} eller \texttt{M-1~7}. För negativa prefix, ge ett minustecken först. \end{description} \latdel{Filer och buffertar} Ett \textit{fönster} visar innehållet i en \textit{buffert}. Innehållet i en buffert är ofta inläst från en \textit{fil}. \begin{description} \item[C-x C-f] Plocka in en fil en en buffert, och visa den i ett fönster. Du kan även visa filkataloger så här. (Varning för att det kan fungera dåligt på IDA) Läs även om \texttt{ange-ftp}, som gör att du kan läsa filer på andra datorsystem via \texttt{ftp}. \item[C-x C-v] Öppna en annan fil i samma buffert. Om du råkade öppna fel fil, eller en fil som inte fanns, och vill välja rätt fil istället så använd detta kommando. \item[C-x b] Hoppa till en annan buffert i det aktuella fönsret. \item[C-x C-b] Visa en lista på alla buffertar. Använd \texttt{C-h~m} i bufferten för att få hjälp. \item[C-x 2] Dela ett fönster. \item[C-x o] Hoppa till det andra fönstret. \item[C-x 0] Ta bort det här fönstret. \item[C-x 1] Ta bort alla andra fönster. \item[M-x bury-buffer] Göm en buffert. \item[C-x 4 f] Öppna en fil i en buffert i ett annat fönster. Finns inget annat fönster, skapas ett. \item[C-x 4 b] Hoppa till en buffert i ett annat fönster. \item[C-x 4 C-h] Du kommer väl ihåg hur man tar reda på vilka kommandon som finns? \end{description} \latdel{Förflyttning \& redigering} \begin{description} \item[C-f] Ett steg framåt. \item[C-b] Ett steg bakåt. \item[C-n] Gå till nästa rad. \item[C-p] Gå till föregående rad. \item[M-f] Ett ord framåt. \item[M-p] Ett ord bakåt. \end{description} Kom ihåg att du kan ange ett prefix till ovanstående kommandon för att förflytta dig längre steg i taget. \texttt{C-u~C-u~C-n} går t.ex. $16$ ($4\times4$) rader nedåt. \begin{description} \item[C-v] En sida framåt. \item[M-v] En sida bakåt. \item[M-C-v] En sida ner i ett annat fönster. Detta är t.ex. användbart när man får en lång hjälptext i ett annat fönster. \item[C-a] Hoppa till början på raden. \item[C-e] Hoppa till slutet på raden. \item[M-<] Hoppa till början på bufferten. \item[M->] Hoppa till slutet på bufferten. \item[C-d] Radera nästa tecken. \item[M-d] Radera nästa ord. \item[C-o] Dela raden vid insättningspunkten. \item[M-SPC] Ta bort överflödigt tomrum kring insättningspunkten. \item[C-t] Byt plats på två tecken. Mer användbart än du tror! \item[M-t] Byt plats på två ord. \item[M-C-t] Byt plats på två uttryck. \end{description} \latdel{Klipp \& klistra (och mark \& region)} \begin{description} \item[C-k] Kill. Ta bort resten av raden och lägg den på kill-ringen. Om man står sist på raden redan, ta bort radbrytningen. Upprepad användning av \texttt{C-k} lägger ihop den dödade texten i ett block som lätt sätts in igen. \item[C-y] Yank. Sätt in den senast dödade texten. \item[M-y] Yank-pop. Detta kommando används direkt efter ett \texttt{C-y} eller \texttt{M-y}, och sätter in det föregående urklippet. Om du först sätter in det nyaste urklippet med \texttt{C-y}, så kommer den första tryckningen på \texttt{M-y} att ta bort den texten och ersätta den med ett äldre urklipp. Om du trycker på \texttt{M-y} fler gånger, kommer älrde urklipp successivt att ersätta det tidigare. Detta kommando kan spara dig mycket svett! \item[C-SPC] Sätt markeringen här. \item[C-x C-x] Växla insättningspunkt och markering. \item[C-w] Döda regionen (området mellan markeringen och insättningspunkten). Det fungerar som om du tryckt \texttt{C-k} på hela texten. \item[M-w] Kopiera regionen till kill-ringen. Detta kommando gör samma sak som \texttt{C-w}, men lämnar kvar texten. Det är detta kommando du oftast använder för att kopiera text. \item[M-C-w] Nästa döda-kommando kommer att lägga till det senaste urklippet, istället för att skapa ett nytt. \end{description} \latdel{Formattering mm} \begin{description} \item[TAB] Indentera en rad. För att indentera en rad i program kod ska du alltid försöka använda \texttt{TAB}-tangenten istället för att stega dig fram med mellanslag. \item[LFD, C-j] Ny rad, och indentera. Detta är väldigt användbart vid progamkodseditering, och jag föreslår att du byter plats på LFD och RET. \item[M-C-q] Indentera ett uttryck. Detta kommando finns bara i vissa programmeringsmoder. \item[M-C-$\backslash$] Indentera regionen. \item[M-x comment-region] Kommentera ut ett helt block med programkod. Ett numeriskt prefix ger antalet kommentarer, och mes ett \texttt{C-u}-prefix avkommenteras regionen istället. \item[M-l, M-u, M-c] Gör nästa ord till bara små bokstäver, stora bokstäver respektive kapitaliserat. \item[M-q] Bryt om ett stycke. Om du har skrivit ett textstycke som du behöver bryta om till lagom radlängd, ställer du dig i stycket och ger detta komamndo. \item[M-x auto-fill] Slå på \texttt{auto-fill-mode} som gör att rader bryts automatiskt. \end{description} Fler kommandon som kan vara intressanta är bland andra (kolla om de har någon bindning med \texttt{C-h~w}): \texttt{center.\{line,region,paragraph\}}, \texttt{intent-rigidly}, \texttt{kill-rectangle}, \texttt{yank-rectangle} \texttt{insert-file} och många, många fler. \latdel{Sök \& ersätt} \begin{description} \item[C-s] Inkrementell sökning framåt. Väldigt användbart! Tryck \texttt{C-h k~C-s} för att få veta alla finesser. \item[C-r] Inkrementell sökning bakåt. Observera att du kan byta mellan \texttt{C-s} och \texttt{C-r} under en och samma sökning. \item[M-\%] Sök och ersätt. Sök efter en sträng, och ersätt med en annan. Läs hjälptexten! \item[M-x query-replace-regexp] En mer avancerad variant som arbetar med reguljära uttryck istället. \item[M-/] Expandera ett ord till ett annat som finns i samma buffert. \item[M-.] Hoppa till en deklaration med ett visst namn. Använder en \texttt{TAGS}-fil, som du skapar med programmet \texttt{etags}. \end{description} \latdel{Tangentbindningar} \begin{description} \item[M-x global-set-key] Bind en tangent globalt. \item[M-x local-set-key] Bind en tangent i en buffert. \end{description} \latdel{Variabler och funktioner} \begin{description} \item[M-x set-variable] Sätt en variabel. \item[C-h a] Sök efter ett kommando utifrån en del av namnet. \item[M-x apropos] Sök efter funktioner och variabler utifrån en del av namnet. Om du tycker att detta är mer användbart, råder jag dig att binda \texttt{apropos} till \texttt{C-h~a}. \end{description} \latdel{Speciella paket} \begin{description} \item[C-x m] Sriv ett brev och skicka iväg det med \texttt{C-c C-c}. Glöm inte \texttt{C-h m}. \item[M-x lyskom] Starta LysKOM \item[M-x rmail] Starta RMAIL. Observera att RMAIL kommer att flytta alla dina brev till \texttt{\~{}/RMAIL}. \item[M-x gnus] Starta News-programmet \texttt{Gnus}. \item[M-x doctor] Om du blir riktigt desperat. \item[C-u 9 M-x hanoi] När du inte trodde att du kunde få det tråkigare. \item[M-x shell] När du insett att man inte behöver något mer än en Emacs. \end{description} \noindent\hrulefill \latdel{Emacs Lisp} \begin{description} \item[(setq {\rmfamily\itshape variabel} {\rmfamily\itshape värde})] Sätt \textit{variabel} till \textit{värde}. \item[(require 'rsz-mini)] Se till att paketet \texttt{rsz-mini} är inladdat. \item[(load "tex-site")] Ladda filen \texttt{tex-site.el(c)}. \item[(add-hook 'text-mode-hook 'turn-on-auto-fill)] Addera funktionen \texttt{turn-on-auto-fill} till kroken \texttt{text-mode-hook} \end{description} \ldots och en förskräcklig massa mer. \noindent\hrulefill \vfill {\itshape Denna fil kan hämtas via {\em WWW} från \file{http://www.lysator.liu.se/upplysning/emacs/lathund.tex}, eller via \file{ftp} från \file{ftp.lysator.liu.se}, som \file{/pub/emacs/lathund.tex}. På samma ställe finns även \file{dvi}- och PostScript-versioner av filen.} \end{document}