\INCLUDE{site_header.txt}

These are the default key bindings in 4coder version \VERSION

\SECTION{Global Bindings}
The following bindings apply in all situations.
 \LIST
 \ITEM \STYLE{code} <ctrl p> \END Create a new panel with a vertical split
 \ITEM \STYLE{code} <ctrl _> \END Create a new panel with a horizontal split
 \ITEM \STYLE{code} <ctrl P> \END Close a panel
 \ITEM \STYLE{code} <ctrl ,> \END Change active panel
 \ITEM \STYLE{code} <ctrl <> \END change active panel backwards
 
 \ITEM \STYLE{code} <ctrl n> \END New file dialogue
 \ITEM \STYLE{code} <ctrl o> \END Open file dialogue
 \ITEM \STYLE{code} <alt  o> \END Open file dialogue in other panel
 \ITEM \STYLE{code} <ctrl k> \END Kill buffer dialogue
 \ITEM \STYLE{code} <ctrl i> \END Switch open buffer dialogue
 \ITEM \STYLE{code} <ctrl w> \END 'Save As' - save file into new name
 \ITEM \STYLE{code} <ctrl h> \END Set hot directory to projet root directory
 
 \ITEM \STYLE{code} <alt  c> \END Open color and font selection GUI
 \ITEM \STYLE{code} <alt  d> \END Open a debug information GUI
 
 \ITEM \STYLE{code} <alt  .> \END Change to footer build panel
 \ITEM \STYLE{code} <alt  ,> \END Close footer build panel
 \ITEM \STYLE{code} <alt  n> \END Goto next error/jump location
 \ITEM \STYLE{code} <alt  N> \END Goto previous error/jump location
 \ITEM \STYLE{code} <alt  M> \END Goto first error/jump location
 \ITEM \STYLE{code} <alt  m> \END Launch basic build (calls build.bat, build.sh, or Makefile)
 
 \ITEM \STYLE{code} <alt  z> \END Execute arbitrary shell/terminal command in arbitrary buffer
 \ITEM \STYLE{code} <alt  Z> \END Repeat previous shell/terminal command
 
 \ITEM \STYLE{code} <alt  x> \END Execute 4coder internal command
 
 \ITEM \STYLE{code} <alt  s> \END Show scrollbar
 \ITEM \STYLE{code} <alt  w> \END Hide scrollbar
 \ITEM \STYLE{code} <alt  b> \END Toggle filebar
 
 \ITEM \STYLE{code} <alt  @> \END Toggle mouse input
 \ITEM \STYLE{code} <ctrl page up> \END Toggle fullscreen mode
 \ITEM \STYLE{code} <alt  E> \END Exit 4coder
 
 \ITEM \STYLE{code} <f1> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f2> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f3> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f4> \END Launch shell command set in a loaded project
 
 \ITEM \STYLE{code} <f5> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f6> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f7> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f8> \END Launch shell command set in a loaded project
 
 \ITEM \STYLE{code} <f9> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f10> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f11> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f12> \END Launch shell command set in a loaded project
 
 \ITEM \STYLE{code} <f13> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f14> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f15> \END Launch shell command set in a loaded project
 \ITEM \STYLE{code} <f16> \END Launch shell command set in a loaded project
 
 \END
\END

\SECTION{4coder Internal Command}
Long name commands that can be typed in after \STYLE{code} <alt x> \END for infrequently triggered commands.
 \LIST
 \ITEM \STYLE{code} "load project" \END Load a project.4coder file, ditching any previously loaded project
 \ITEM \STYLE{code} "open all code" \END Open all code files in the current directory, extensions set in config.4coder, default to C/C++ extensions
 \ITEM \STYLE{code} "open all code recursive" \END Like \STYLE{code} "open all code" \END but recurses through folders
 \ITEM \STYLE{code} "dos lines" \END Switch the bufer to 'dos' line ending mode CRLF
 \ITEM \STYLE{code} "nix lines" \END Switch the bufer to 'nix' line ending mode LF
 \END
\END

\SECTION{Text File Bindings}
The following bindings apply in general text files and most apply in code files, but some are overriden by other commands.
 \LIST
 \ITEM \STYLE{code} <any character> \END Insert character
 
 \ITEM \STYLE{code} <left click> \END Set cursor position to mouse position
 \ITEM \STYLE{code} <left release> \END Set mark position to mouse position
 \ITEM \STYLE{code} <right click> \END Set mark position to mouse position
 
 \ITEM \STYLE{code} <left> \END Move left
 \ITEM \STYLE{code} <right> \END Move right
 \ITEM \STYLE{code} <del> \END Delete character
 \ITEM \STYLE{code} <shift del> \END Delete character
 \ITEM \STYLE{code} <back> \END Backspace character
 \ITEM \STYLE{code} <shift back> \END Backspace character
 \ITEM \STYLE{code} <up> \END Move up
 \ITEM \STYLE{code} <down> \END Move up
 \ITEM \STYLE{code} <end> \END Move to end of line
 \ITEM \STYLE{code} <home> \END Move to beginning of line
 \ITEM \STYLE{code} <page up> \END Move up one whole page
 \ITEM \STYLE{code} <page down> \END Move down one whole page
 
 \ITEM \STYLE{code} <ctrl right> \END Seek right, stop at whitespace
 \ITEM \STYLE{code} <ctrl left> \END Seek left, stop at whitespace
 \ITEM \STYLE{code} <ctrl up> \END Seek up, stop at blank line
 \ITEM \STYLE{code} <ctrl down> \END Seek down, stop at blank line
 
 \ITEM \STYLE{code} <alt up> \END Move up ten lines
 \ITEM \STYLE{code} <alt down> \END Move down ten lines
 
 \ITEM \STYLE{code} <ctrl back> \END Delete word backwards
 \ITEM \STYLE{code} <ctrl del> \END Delete word forwards
 \ITEM \STYLE{code} <alt  back> \END snipe_token_or_word
 
 \ITEM Note: 'the range' in the following commands refers to the text between the mark and cursor.
 \ITEM \STYLE{code} <ctrl space> \END Set mark to the cursor position
 \ITEM \STYLE{code} <ctrl a> \END Replace a substring in the range
 \ITEM \STYLE{code} <ctrl c> \END Copy text from the range
 \ITEM \STYLE{code} <ctrl d> \END Delete the text in the range
 \ITEM \STYLE{code} <ctrl e> \END Center the active view on the cursor
 \ITEM \STYLE{code} <ctrl E> \END Move the view so that it's left edge is near the cursor's current x position
 \ITEM \STYLE{code} <ctrl f> \END Begin an incremental search through the current buffer
 \ITEM \STYLE{code} <ctrl F> \END Create a jump location list of all loaded exact matches of a string
 \ITEM \STYLE{code} <alt  F> \END Create a jump location list of all loaded substring matches of a string without case sensitivity
 \ITEM \STYLE{code} <ctrl g> \END Goto a specific line number
 \ITEM \STYLE{code} <ctrl j> \END Convert text in the range to lowercase
 \ITEM \STYLE{code} <ctrl K> \END Kill the current buffer
 \ITEM \STYLE{code} <ctrl l> \END Toggle line wrapping on the current buffer
 \ITEM \STYLE{code} <ctrl m> \END Swap the cursor and mark positions
 \ITEM \STYLE{code} <ctrl O> \END Reload the current buffer from the file system
 \ITEM \STYLE{code} <ctrl q> \END Begin an iterative query replace
 \ITEM \STYLE{code} <ctrl Q> \END Begin an iterative query replace to replace the word under the cursor
 \ITEM \STYLE{code} <ctrl r> \END Begin a reversed incremental search through the current buffer
 \ITEM \STYLE{code} <ctrl s> \END Save the current buffer with it's given filename
 \ITEM \STYLE{code} <ctrl t> \END Begin an incremenal search through the current buffer for the word under the cursor
 \ITEM \STYLE{code} <ctrl T> \END Create a jump location list of all loaded exact matches of the word under the cursor
 \ITEM \STYLE{code} <ctrl u> \END Convert text in the range to uppercase
 \ITEM \STYLE{code} <ctrl v> \END Paste from the clipboard
 \ITEM \STYLE{code} <alt  v> \END Toggle the virtual whitespace system
 \ITEM \STYLE{code} <ctrl V> \END Paste the next item on the clipboard, 4coder keeps a finite history of past 64 copies
 \ITEM \STYLE{code} <ctrl x> \END Copy text from the range and delete the range (aka cut)
 \ITEM \STYLE{code} <ctrl y> \END Redo
 \ITEM \STYLE{code} <ctrl z> \END Undo
 
 \ITEM \STYLE{code} <ctrl 2> \END Decrease the line wrap width for the current buffer
 \ITEM \STYLE{code} <ctrl 3> \END Increase the line wrap width for the current buffer
 
 \ITEM \STYLE{code} <ctrl ?> \END Toggle the show whitespace option
 \ITEM \STYLE{code} <ctrl ~> \END Clean trailing whitespace from all lines
 \ITEM \STYLE{code} <return> \END Interpret jump location under cursor and jump to it, lock the next/prev jump commands to this jump location list (only in read only files)
 \ITEM \STYLE{code} <shift return> \END Like previous command but tries to open the jump location in the view that currently holds the jump location list
 
 \END
\END

\SECTION{Code File Bindings}
The following commands only apply in C/C++ files where the lexer (syntax highlighting) is turned on.
 \LIST
 
 \ITEM \STYLE{code} <ctrl right> \END Seek right stop at alphanumeric or camel case
 \ITEM \STYLE{code} <ctrl left> \END Seek left stop at alphanumeric or camel case
 
 \ITEM \STYLE{code} <}> \END Insert character and trigger auto indentation
 \ITEM \STYLE{code} <)> \END Insert character and trigger auto indentation
 \ITEM \STYLE{code} <]> \END Insert character and trigger auto indentation
 \ITEM \STYLE{code} <;> \END Insert character and trigger auto indentation
 \ITEM \STYLE{code} <#> \END Insert character and trigger auto indentation
 
 \ITEM \STYLE{code} <tab> \END Automatically complete partial word
 \ITEM \STYLE{code} <ctrl tab> \END Auto indent the range
 \ITEM \STYLE{code} <shift tab> \END Auto indent the line at the cursor
 
 \ITEM \STYLE{code} <alt  t> \END Insert a TODO comment
 \ITEM \STYLE{code} <alt  y> \END Insert a NOTE comment
 \ITEM \STYLE{code} <alt  r> \END Insert a block comment
 \ITEM \STYLE{code} <ctrl [> \END Open a pair of braces
 \ITEM \STYLE{code} <ctrl {> \END Open a pair of braces ended with a semicolon
 \ITEM \STYLE{code} <ctrl }> \END Open a pair of braces ended with a break
 \ITEM \STYLE{code} <alt  i> \END Surround the range with #if 0 and #endif
 \ITEM \STYLE{code} <alt  1> \END Try to open a file named by the string surrounded by quotes under the cursor
 \ITEM \STYLE{code} <alt  2> \END Switch from .cpp \STYLE{code} <-> \END .h
 \ITEM \STYLE{code} <ctrl 0> \END Insert the characters " = {0};"
 \ITEM \STYLE{code} <ctrl I> \END List all function signatures in the current buffer
 
 \END
\END