# fourier/loccur

### Subversion checkout URL

You can clone with
or
.
loccur is Emacs minor mode for navigating through the file like occur does, but without opening a new window.
Emacs Lisp
latest commit 5e2f33943a
authored
 Failed to load latest commit information. README.md Mar 31, 2013 loccur.el Jun 11, 2015

# Functionalities

Provides is a minor mode for Emacs acting like occur but without creating a new window. It just hides all the text except lines containing matches for a given regexp. The following functions are provided:

• loccur Prompts for a regexp and hides all the lines not containing matches. If the given regexp is empty, defaults to the current selection and, if the selection is also empty, defaults to the word at point.
• loccur-previous-match Repeats the last loccur search.
• loccur-toggle-highlight Disables or enables highlighting of the matches.

After loccur is ran, hit RET to move to the line where the cursor is and display everything again.

The good thing about this mode is that you can navigate through the buffer easily. In particular, hopefully useful functions using loccur are suggested in Section Quick Navigation.

# Example

If you run loccur on regexp [0-9]+ (finding any decimal number) on the following buffer,

Lorem ipsum dolor 100 sit amet, consectetur adipisicing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis 20090 nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat 3 cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est
laborum.


we obtain

Lorem ipsum dolor 100 sit amet, consectetur adipisicing elit, sed
enim ad minim veniam, quis 20090 nostrud exercitation ullamco
fugiat nulla pariatur. Excepteur sint occaecat 3 cupidatat non


and, if we hit RET on the third line of this display, the first content is displayed again and the cursor is placed on the 6th line.

# Suggested settings

(require 'loccur)
;; defines shortcut for loccur of the current word
(define-key global-map [(control o)] 'loccur-current)
;; defines shortcut for the interactive loccur command
(define-key global-map [(control meta o)] 'loccur)
;; defines shortcut for the loccur of the previously found word
(define-key global-map [(control shift o)] 'loccur-previous-match)

Now you can point the cursor to the word and press C-o to hide all lines except those containing this word. Moving cursor to the required line and pressing C-o again or RET will shows all the text. C-S-o will repeat the last search.

You can also use loccur to efficiently navigate in a buffer. For instance, the following function displays only the declaration of all the Python functions in the current file; making it very easy to jump to a particular function.

(defun loccur/list-Python-functions()
"Displays only the lines corresponding to a function
declaration in a Python file."
(loccur-no-highlight "^ *def "))

In the same way, the following snippet provides a very useful function for whoever uses beamer: it lists all the frame titles to easily jump to a particular one.

(defun loccur/list-beamer-frames()
"Displays only the lines corresponding to a frame title
declaration in a beamer LaTeX file."
(loccur-no-highlight "\\frametitle"))

When running this command, this buffer

\begin{frame}
\frametitle{First frame}

<insert fascinating content here>
\end{frame}

\begin{frame}

<insert some stunning figure here>
\end{frame}

\begin{frame}
\frametitle{Wrapping up}

<insert witty and challenging conclusion here>
\end{frame}


becomes


\frametitle{First frame}

and hitting RET will bring back the first buffer and place the cursor on the line wanted.