#lang scribble/manual
@(require (for-label racket))

@title{Keyboard Shortcuts}
 Keyboard shortcuts for SuperCollider@section{categories}
  Frontends

@section{section}
  Language-Specific Commands

@section{note}
  For shortcuts bindings of teletype::ScIDE::, please consult the menu and/or the shortcut configuration menu.::

@section{table}
 
## strong::Functions::
|| strong::macOS::
|| strong::GEdit (sced):: @section{footnote}
 http://artfwo.googlepages.com/sced::
|| strong::Vim (scvim):: @section{footnote}
 http://www.neisis.net/%7Ealex/scvim::
|| strong::Emacs (scel):: @section{footnote}
  link::Reference/EmacsEditor:: ::

## Interpret Selection
|| enter, ctl-c, ctl-return, shift-return
|| ctl-e
|| F5
|| C-c C-d / C-c C-c

## Interpret current line
|| enter, ctl-c, ctl-return, shift-return
|| ctl-e
|| F6
|| C-c C-c

## Interactively evaluate expression...
||
||
||
|| C-c C-e

## Evaluate defun or code-block
||
||
||
|| C-M-x

## Evaluate current document
||
||
||
|| C-c C-f

## Stop
|| cmd-.
|| escape
|| F12
|| C-c C-s

## TempoClock.default.clear
||
||
|| F7
||

## s.freeAll
||
||
|| F8
||

## Run Main-run
|| cmd-r
||
||
|| C-c C-r

## Recompile library
|| cmd-k
||
|| :SClangStart
|| C-c C-l

## Stop interpreter
||
||
|| :SClangKill
|| M-x sclang-stop

## Clear post window
|| cmd-sh-c
||
||
|| C-c <

## Open Help File
|| cmd-d
|| ctl-u
|| K or :SChelp
|| C-c C-h

## Open Class Definition (look up class file, either Class name or Class:method) e.g. Object, Object:dump
|| cmd-j
|| ctl-y
|| ^k or :SCdef
|| C-c :

## Implementations of (which objects have code that defines methods, e.g. 'play')
|| cmd-y
||
||
|| C-c :

## References to (where in the source files is e.g. the method 'play' used?)
|| cmd-sh-Y
||
||
|| C-c ;

## Dump interface
||
||
||
|| C-c [

## Dump full interface
||
||
||
|| C-c {

## Show method arguments
||
||
||
|| C-c C-m / C-c RET

## Autocomplete keyword
||
||
||
|| C-c C-n / M-TAB

## Show server panels
||
||
||
|| C-c C-p p
::

@section{section}
  Files
@section{table}
 
## strong::Functions::
|| strong::macOS::
|| strong::GEdit (sced)::
|| strong::Vim (scvim)::
|| strong::Emacs (scel)::

## Open text document
|| cmd-o
|| ctl-o
|| :e
|| C-x C-f

## New text document
|| cmd-n
|| ctl-n
|| :enew
|| (open non-existent file w. new name)

## Close text document
|| cmd-w
|| ctl-w
|| :close
|| C-x k

## Save text document
|| cmd-s
|| ctl-s
|| :w
|| C-x C-s

## Save text document as
|| cmd-sh-s
|| ctl-sh-s
|| :sav
|| C-x C-w

## HTML doc window => code win
||
|| ctl-t
||
|| E
::

@section{section}
 Text Editing
@section{table}
 
## strong::Functions::
|| strong::macOS::
|| strong::GEdit (sced)::
|| strong::Vim (scvim)::
|| strong::Emacs (scel)::

## Undo
|| cmd-z
|| ctl-z
|| u
|| C-x u / C-_

## Redo
|| cmd-sh-Z
|| ctl-sh-z
|| ^R
|| C-x u / C-_

## Copy
|| cmd-c
|| ctl-c
|| "+y
|| M-w

## Paste
|| cmd-v
|| ctl-v
|| "+gP
|| C-y

## Cut
|| cmd-x
|| ctl-x
|| "+x
|| C-w

## Select all
|| cmd-a
|| ctl-a
|| ggVG
|| C-x a

## Select block
||
||
||
||

## Goto line ...
|| cmd-,
|| ctl-i
|| (linenumber)G
|| M-g g

## Find ...
|| cmd-f
|| ctl-f
|| / or *
|| C-s

## Find next
|| cmd-g
|| ctl-g
|| *
|| C-s

## Find previous
|| cmd-d
|| ctl-sh-g
|| #
|| C-r

## Replace and find next
|| cmd-l
||
||
|| M-%

## Replace
|| cmd-=
|| ctl-h
||
|| M-,

## Copy text style only
|| cmd-alt-c
||
||
||

## Paste text style only
|| cmd-alt-v
||
||
||
::

@section{section}
 Formatting
@section{table}
 
## strong::Functions::
|| strong::macOS::
|| strong::GEdit (sced)::
|| strong::Vim (scvim)::
|| strong::Emacs (scel)::

## Syntax Colorise
|| cmd-'
|| auto
|| auto
|| auto

## Balance (find next matched parens/curly braces and select everything enclosed)
|| cmd-sh-B
||
||
|| C-<space>, C-M-f

## Balance backwards (find previous matched parens/curly braces and select everything enclosed)
||
||
||
|| C-<space>, C-M-b

## Paren match highlight
||
||
|| auto
|| auto with option Paren-Match-Highlighting

## Comment (add // in front)
|| cmd-/
||
||
|| (select text and) M-;

## Uncomment (remove //s)
|| cmd-sh-/
||
||
|| (select text and) M-;

## Indent / Shift left (move selected text by one tab)
|| cmd-[
||
||
|| TAB (auto-aligns tabs according to code)

## Unindent / Shift right (by one tab)
|| cmd-]
||
||
||

## Insert (): enclose selected text with (txt)
|| cmd-(
||
||
||

## Insert []: enclose selected text with [txt]
|| cmd-alt-[
||
||
||

## Insert {}: enclose selected text with {txt}
|| cmd-{
||
||
||

## Insert /* */: enclose selected text with /*txt*/
|| cmd-*
||
||
||
::



