# How to move around a file This guide shows how to get to the piece of code you are looking for. It assumes you have a file open. ## Find text Press **Ctrl-F**, type what you are looking for, and press **Enter**. The first match is selected. - **F7** — next match - **Shift-F7** — previous match The search **wraps round**: pressing F7 repeatedly cycles through every match rather than stopping at the bottom of the file. Case is ignored unless you tick `Case sensitive` in the Find box. ## Jump to a line number Press **Ctrl-G**, type the number, press **Enter**. Lines count from one, as they do in compiler messages. ## Jump to a declaration Put the cursor on a name and press **F12**. Turbo Python asks the language server where it is declared and opens that file, on that line. When there is more than one declaration, it offers the list. That is one of eight questions the **Code** menu puts to the server — what implements this, where is it used, what is wrong with this file. See [How to ask what the code means](ask-about-code.md). If the file is already open, its window comes forward instead of opening a second one. > This needs pylsp. See [How to enable Python completion](enable-completion.md). ## Select and edit whole lines | | | | --- | --- | | **Double-click a word** | Select it. Typing then replaces it; holding the button after the second click extends the selection from the start of the word. | | **Ctrl-N** | Open a blank line **above** the cursor. The cursor stays on its own text, now one line lower — room made over what you are looking at. | | **Ctrl-Y** | Delete the line the cursor is on. The cursor keeps its line number, so holding the key deletes a run of lines. | Both are Turbo C's keys. `Ctrl-Y` is why **redo is `Ctrl-R`** and no longer `Ctrl-Y`: between the editor looking like Turbo C and a habit picked up here, the first won. `Ctrl-Shift-Z` was not available to move redo to — a terminal delivers it as plain `Ctrl-Z`. A double-click away from a word — on a space or a bracket — moves the cursor and selects nothing. Editors disagree about what a run of punctuation means, and nothing is at least an answer you can predict. ## Move by word, line and file | | | | --- | --- | | **Ctrl-←** / **Ctrl-→** | Previous / next word | | **Home** / **End** | Start / end of the line | | **Ctrl-Home** / **Ctrl-End** | Start / end of the file | | **PgUp** / **PgDn** | One screenful | Hold **Shift** with any of these to select as you go. ## Move between windows | | | | --- | --- | | **F6** | The window behind the current one | | **Alt-1** … **Alt-9** | That numbered window — the number is in its top-right corner | | **Alt-0** | A list of every open window | If the windows are on top of each other, `Window ▸ Tile` lays them out side by side and `Window ▸ Cascade` stacks them with every title visible. ## Variants **The file is not Python.** Everything above works except F12, which needs a language server. Colouring is off too: only `.py` files are coloured. **You want to see where you are.** The right-hand end of the status bar always shows `line:column`, counting from one. **You resized the terminal.** Windows follow it: one that filled the terminal still fills it, and one you had moved keeps its corner where you put it. Nothing is ever left larger than the terminal. **The line is longer than the window.** The view scrolls sideways to follow the cursor; the bar along the bottom of the window shows how far along you are. ## See also - Every key: [keyboard reference](../reference/keyboard.md) - Every menu item: [menu reference](../reference/menus.md)