                         PyEdPro Key Assignments

   This is a list of default key assignments for PyEdPro. We tried to follow
existing keyboard standards. The keys are assigned in keyhand.py and the
actions are implemented in acthand.py. Regular keys are added to the text
buffer verbatim.

Updates:
            Fri 09.Sep.2022     More docs and ctr-alt entries
            Wed 07.Sep.2022     Cleaned spacing / added some key docs
            Fri 26.Feb.2021     Key allocation better documented
            Tue 20.Oct.2020     Key allocation Revisions
            Fri 17.Apr.2020     Cleanup
            Sat 26.Sep.2020     Added new navigation keys for line / file
                                beginning / end for the purpose of
                                navigating on machines with no home key
                                or no end key (Chromebook being one of them)

  To implement a new feature follow a particular key's execution path, and
replicate functionality. The key actions are easy to follow, as the code is
table driven. Relevant files: acthand.py and keyhand.py


 The system shortcut table is executed before the application (pyedpro)
sees the keystroke. So if the system hogs the key press, the pyedpro shortcut
will not get a chance to execute. This is particularly prevalent with
CTRL-ALT- shortcuts. The -k command line option will print every key arriving,
so this can be traced easily;

    Left Arrow                  -- Go left one char
    Right Arrow                 -- Go right one char
    Up Arrow                    -- Go up one line
    Down Arrow                  -- Go down one line
    PgUp                        -- Go up one page
    PgDn                        -- Go down one page
    Home                        -- Go to beginning of line
    End                         -- Go end of line

    [a-z]|[A-Z]|[0-9]           -- Insert character (key)
    !@#$%^&*()_ ...             -- Insert punctuation (key)

    Tab                         -- Insert 4 spaces up to % 4
    Shift-Tab                   -- Insert a real tab up to % 4
    Ctrl A                      -- Select All text in buffer
    Ctrl-Shift A                -- Goto beginning of line
    Ctrl B                      -- Select word (till spaces)
    Ctrl-Shift B                -- HTML bold
    Ctrl C                      -- Copy selection to Clipboard
    Ctrl-Shift C                -- Append selection to Clipboard
    Ctrl D                      -- Delete (trim) spaces from end of line
    Ctrl-Shift D                -- Insert date string at cursor location
    Ctrl E                      -- Capitalize (emphasize) word
    Ctrl-Shift E                -- Goto end of line
    Ctrl F                      -- Find in file or all buffers
    Ctrl-Shift F                -- Fill in HTML <tr> <td>
    Ctrl G                      -- Goto next match
    Shift-Ctrl G                -- Goto previous match
    Ctrl H                      -- Cursor left  (like in vi)
    Ctrl I                      -- Insert count-up / increment number
    Shift-Ctrl I                -- Reset count-up number to zero
    Ctrl J                      -- Down Arrow (like in vi)
    Ctrl K                      -- Up Arrow   (like in vi)
    Ctrl L                      -- Right Arrow (like in vi)
    Ctrl M                      -- Toggle auto correct
    Ctrl-Shift M                -- Call up right click menu
    Ctrl N                      -- New File
    Ctrl O                      -- Open file
    Ctrl-Shift O                -- Open session
    Ctrl P                      -- Print (not implemented on all platforms)
    Ctrl Q                      -- Quit program **
    Ctrl R                      -- Reverse (swap) three words. Cursor on W1 ***
    Ctrl-Shift R                -- Review M4 macro file
    Ctrl S                      -- Save current file
    Ctrl T                      -- Transpose (swap) two words (taush)
    Ctrl-Shift T                -- Add Time/Date in document
    Ctrl U                      -- Upper case word / selection
    Shift-Ctrl U                -- Lower case word / selection
    Ctrl V                      -- Paste from Clipboard
    Ctrl W                      -- Close current file
    Ctrl-Shift W                -- Close all files
    Ctrl X                      -- Cut to Clipboard
    Ctrl Y                      -- Redo last undo
    Ctrl Z                      -- Undo last change

    Ctrl Up                     -- Go up 10 lines
    Ctrl Down                   -- Go down 10 lines
    Ctrl Left                   -- Go left one word
    Ctrl Right                  -- Go right one word
    Ctrl PgUp                   -- Go up one large page (2x)
    Ctrl PgDn                   -- Go down one large page (2x)
    Ctrl Home                   -- Go to beginning of file
    Ctrl End                    -- Go end of file
    Ctrl Space                  -- Enable / disable keyboard
    Ctrl-Shift Space            -- Add HTML space

    Ctrl 0                      -- Switch to clipboard 0 (OS Clipboard)
    Ctrl 1                      -- Switch to clipboard 1
      .
      .
    Ctrl 8                      -- Switch to clipboard 8
    Ctrl 9                      -- Switch to sum of all clipboards

    Alt Left                    -- Go to begin of the current word*
    Alt Right                   -- Go to end of the current word
    Alt Up                      -- Go to next buffer
    Alt Down                    -- Go to previous buffer
    Alt PgUp                    -- Go to next buffer
    Alt PgDn                    -- Go to previous buffer
    Alt Home                    -- Go to first buffer
    Alt End                     -- Go to last buffer

    Right-Alt Up                -- Go to begin of file
    Right-Alt Down              -- Go to end of file
    Right-Alt left              -- Go to begin of line
    Right-Alt right             -- Go to end of line

    Home Home                   -- Go to beginning of page (PgUp)
    3x Home                     -- Go to begin of file (Ctrl Home)

    # Both upper and lower case

    Alt A                       -- Save All buffers
    Alt B                       -- Show Buffers
    Alt C                       -- Start column select
    Alt D                       -- Delete current line
    Alt E                       -- Show edit Menu
    Alt F                       -- Show File Menu
    Alt G                       -- Goto line dialog
    Alt H                       -- Help Menu
    Alt I                       -- Ignore (convert) tabs to spaces
    Alt J                       -- Jump to next long line (80+)
    Alt K                       -- Delete (kill) till end of line
    Alt L                       -- Select current line
    Alt M                       -- Macros menu
    Alt N                       -- Next search result
    Alt O                       -- Open file (Simplified Dialog)
    Alt P                       -- Previous search result
    Alt Q                       -- Hide top Pane
    Alt R                       -- Redo
    Alt S                       -- Search for text
    Alt T                       -- Find / Replace (taush)
    Alt U                       -- Undo
    Alt V                       -- Select Current Word (till delimiters)
    Alt W                       -- Write (Save) Current buffer
    Alt X                       -- Exit program
    Alt Y                       -- Check Python syntax (compile buffer)
    Alt Z                       -- Wrap long lines

    Alt 0                       -- Switch to Function pane (left)****

    Alt 1                       -- Switch to buffer 1
    Alt 2                       -- Switch to buffer 2
    Alt 3                       -- Switch to buffer 3
    Alt 4                       -- Switch to buffer 4
    Alt 5                       -- Switch to buffer 5
    Alt 6                       -- Switch to buffer 6
    Alt 7                       -- Switch to buffer 7
    Alt 8                       -- Switch to buffer 8
    Alt 9                       -- Switch to buffer 9

    Alt F1                      -- Gnome (system) - Menu
    Alt F2                      -- Gnome - Run App
    Alt F4                      -- Gnome - Exit program (Use Alt X)
    Alt F7                      -- Gnome - Move window
    Alt F8                      -- Gnome - Re-size window
    Alt F9                      -- Gnome - Minimize window
    Alt F10                     -- Gnome - Full Screen window

    # The OS may override some of these keys ... configure accordingly

    Ctrl Alt A                  -- Cleanse non ascii
    Ctrl Alt B                  -- ????
    Ctrl Alt C                  -- Comment out line, and jump down below
    Ctrl Alt D                  -- Display terminal here
    Ctrl Alt E                  -- Execute last command
    Ctrl Alt Shift E            -- Execute last command, force prompt
    Ctrl Alt F                  -- Fill to column
    Ctrl Alt Shift F            -- Prompt for fill column
    Ctrl Alt G                  -- Go execute cycle.sh (shortcut for header cycle)

    Ctrl Alt T                  -- Execute terminal here (most likely global)
        ...

    Ctrl Alt H                  -- Find (alias)
    Ctrl Alt J                  -- Coloring
    Ctrl Alt K                  -- Hex view
    Ctrl Alt R                  -- Read file (text to speech)

    # More coming ... under construction

    #Ctrl Alt H                  -- Left Arrow
    Ctrl Alt J                   -- Toggle coloring
    Ctrl Alt V                   -- Save all buffers

    Super - A                    -- Save all buffers


    #Alt <                       -- Lower case word/selection

    F1                           -- Help
    F2                           -- Call up local DevHelp (must be installed)
    F3                           -- Key assignments Help
    F4                           -- Animate macro
    F5                           -- Previous Match
    F6                           -- Next Match
    F7                           -- Start / Stop Record
    F8                           -- Play Macro
    F9                           -- Toggle code spell check****
    Shift-F9                     -- Toggle full file (text) spell check
    F10                          -- Application's main - Menu
    shift F10                    -- Notebook tab menu (if enabled)
    F11                          -- Toggle full Screen
    F12                          -- Cursor Locator
    Shift-F12                    -- Reveal tabs and spaces and 80 column marker
    Ctrl-F12                     -- Reveal Hex view

Context dependent key assignments:

    Alt-X                       -- Exit dialog
    ESC                         -- Exit dialog (cancel)
    ENTER                       -- Exit dialog (accept)

 Find / Replace context:

    Alt-S                       -- Case Insensitive search
    Alt-R                       -- Regular expression search
    Alt-A                       -- All buffer search

 Find / Replace results context:

    Alt-S                       -- Change currently Selected
    Alt-O                       -- Change One (rescans buffer)
    Alt-A                       -- Change All
    Alt-Tab                     -- Navigate between search / main windows
    Arrow Up/Down               -- Next / prev match
    ENTER                       -- Change selection

  Mouse actions:

    Left Click                  -- Positon caret (text cursor)
    Right Click                 -- Call up right click menu
    Right Click (on spell)      -- Call up spell correction list
    Click - Hold - Drag (L-R)   -- Select
    Click - Hold - Drag  (U-D)  -- Column Select
    Double Click                -- Select Word

Notes:

    *       Alt-Arrow   Goto begin / end of current word. Word delimited with
                        alpha_num + punctuation
    **      Ctrl-Q      Quit program, no save, but files are backed up in
                        (~/.pyedpro/data) '*.sav'
    ***     Ctrl-R      Reverse words around the middle. (a = b becomes b = a)
                        Cursor on word one. Useful for turning (reversing) assignments.
    ****    F9          Only Comments and strings are checked, otherwise all
                        text is checked
    *****   Alt-0       Alt - 1 .. 9 brings back the focus to current buffer


# EOF


