New keybindings code and backend. New structs subnfunc for menu functions

and toggles and sc for shortcut keys, old 'shortcut' and 'toggles' structs are
gone.  The current implementation has a bunch of broken stuff (some of which is
documented in BUGS).  Updated nanorc.5 with some mostly complete documentation
on configuring.

Part 2 of commit since I accidentally did it in src/ the first time.  Yeah,
welcome back bonehead.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4216 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
This commit is contained in:
Chris Allegretta 2008-03-05 07:35:01 +00:00
parent 79a33bb38d
commit 90218063db
4 changed files with 279 additions and 0 deletions

12
BUGS
View File

@ -1,4 +1,16 @@
** Open BUGS **
- Cutting the line at the top of the screen recenters to center (71)
- F-keys do not work with new shortcut backend (72)
- Many menu items are probably missing from the new backend (73)
- Need a 'check-vitals-mapped' function to check that the end used didn't
unbind all the keys for exit or cancel before starting up the editor (74)
- Browser and prompt code still implement old switch on raw key input instead
of new if block for subnfunc values (75)
- New backend code probably does not compile under anything but default options,
if that (76)
- Meta-space and ^Space are not yet handled in new backend code (77)
- -enable-tiny does not work with new code (78)
** Fixed BUGS **
- Marked cutting sometimes leaves a newline in the file unintelligently,

View File

@ -1,3 +1,10 @@
2008-03-04 Chris Allegretta <chrisa@asty.org
* everything - New shortcut backend. New structs subnfunc
for menu functions and toggles and sc for shortcut keys, old
'shortcut' and 'toggles' structs are gone. The current implementation
has a bunch of broken stuff (some of which is documented in BUGS).
Updated nanorc.5 with some mostly complete documentation on configuring.
2007-12-20 David Lawrence Ramsey <pooka109@gmail.com>
* AUTHORS, doc/faq.html: Update maintenance information.

View File

@ -250,6 +250,257 @@ Same as above, except that the expression matching is case insensitive.
Read in self-contained color syntaxes from \fIsyntaxfile\fP. Note that
\fIsyntaxfile\fP can only contain \fBsyntax\fP, \fBcolor\fP, and
\fBicolor\fP commands.
.SH KEY BINDINGS
Key bindings may be reassigned via the following commands:
.TP
.B bind \fIkey\fP \fIfunction\fP \fImenu\fP
Rebinds the key \fIkey\fP to a new function named \fIfunction\fP in the
context of menu \fImenu\fP. The format of \fIkey\fP should be one of:
.TP
.B ^
followed by an alpha character or the word "Space"
.TP
.B M-
followed by a prinable character or the word "Space"
.TP
.B F#
followed by a numeric value from 1-16
.TP
Valid function names to be bound include:
.TP
.B help
Invoke the help menu
.TP
.B cancel
Cancel the current command
.TP
.B exit
Exit from the program
.TP
.B writeout
Write the current buffer to disk
.TP
.B justify
Justify text
.TP
.B insert
Insert a file into the current buffer (or a new buffer with multi-buffer enbled)
.TP
.B whereis
Search for text in the program
.TP
.B searchagain
Repat the last search command
.TP
.B up
Move up in the editor or browser
.TP
.B down
Move down in the editor or browser
.TP
.B left
Move left in the editor or browser
.TP
.B right
Move right in the editor or browser
.TP
.B cut
Cut the current line of text and store it
.TP
.B uncut
Copy the currently stored text into the current file location
.TP
.B curpos
Show the current line, column, word positions in the file
.TP
.B firstline
Move to the first line of the file
.TP
.B lastline
Move to the last line of the file
.TP
.B gotoline
Move to a specific line (and column if specified)
.TP
.B replace
Interactively replace text within the editor
.TP
.B mark
Begin selecting text for cutting or pasting at the current position
.TP
.B copytext
Copy the currently marked text without deleting it
.TP
.B indent
Indent the currently marked text (shift to the right)
.TP
.B unindent
Un-indent the currently marked text (shift to the left)
.TP
.B nextword
Move the cursor to the beginning of the next word
.TP
.B prevword
Move the cursor to the beginning of the previous word
.TP
.B home
Move the cursor to the beginning of the current line
.TP
.B end
Move the cursor to the end of the current line
.TP
.B beginpara
Move the cursor to the beginning of the current paragraph
.TP
.B endpara
Move the cursor to the beginning of the current paragraph
.TP
.B findbracket
Move the cursor to the matching bracket (brace, etc) of the one under the cursor
.TP
.B scrollup
Scroll up one line of text from the current position
.TP
.B scrolldown
Scroll down one line of text from the current position
.TP
.B prevbuf
Switch to editing/viewing the previous buffer when using multibuffer mode
.TP
.B nextbuf
Switch to editing/viewing the next buffer when using multibuffer mode
.TP
.B verbatim
Insert the next character verbatim into the file
.TP
.B tab
Insert a tab at the current cursor location
.TP
.B enter
Insert a new line below the current one
.TP
.B delete
Delete the character under the cursor
.TP
.B fulljustify
Justify the entire current file
.TP
.B wordcount
Count the number of words in the current buffer
.TP
.B refresh
Refresh the screen
.TP
.B casesens
Toggle case sensitivity in searching (search/replace menus only)
.TP
.B regexp
Toggle whether searches/replaces are based on literal strings or regular expressions
.TP
.B prevhistory
Show the previous history entry in the prompt menus (e.g. search)
.TP
.B nexthistory
Show the next history entry in the prompt menus (e.g. search)
.TP
.B dontreplace
Switch back to searching instead of replacing
.TP
.B gototext
Search for files matching a string in the file browser (reading or writing files)
.TP
.B dosformat
When writing a file, switch to writing a DOS format (CR/LF)
.TP
.B macformat
When writing a file, switch to writing a Mac format
.TP
.B append
When writing a file, append to the end instead of overwriting
.TP
.B prepend
When writing a file, 'prepend' (write at the beginning) instead of overwriting
.TP
.B backup
When writing a file, create a backup of the current file
.TP
.B firstfile
Move to the first file when using the file browser (reading or writing files)
.TP
.B lastfile
Move to the last file when using the file browser (reading or writing files)
.TP
.B nohelp
Toggle showing/hiding the two line list of key bindings at the bottom of the screen
.TP
.B constupdate
Constantly display the current line, column, etc position
.TP
.B morespace
Toggle showing/hiding the blank space which 'seperates' the 'title' from the file text
.TP
.B smoothscroll
Toggle smooth scrolling when moving via the arrow keys
.TP
.B whitesplacedisplay
.TP
.B smarthome
Toggle whether the smart home key function is enabled
.TP
.B autoindent
Toggle whether new lines will conain the same amount of whitespace as the line above
.TP
.B cuttoend
Toggle whether cutting text will cut the whole line or just from the current cursor
position to the end of the line
.TP
.B nowrap
Toggle whether long lines will be wrapped to the next line.
.TP
Valid menu sections are:
.TP
.B main
The main editor window where text is entered
.TP
.B search
The search menu (AKA whereis)
.TP
.B replace
The 'search to replace' menu
.TP
.B replacewith
The 'replace with' menu, which comes up after 'search to replace'
.TP
.B gotoline
The 'goto line (and column) menu
.TP
.B writeout
The 'write file' menu
.TP
.B insert
The 'insert file' menu
.TP
.B extcmd
The menu for inserting output from an external comman, reached from the insert menu
.TP
.B help
The help menu
.TP
.B spell
The interactive spell checker Yes/no menu
.TP
.B browser
The file browser for inserting or writing a file
.TP
.B whereisfile
The 'search for a file' menu in the file browser
.TP
.B gotodir
The 'go to directory' menu
.TP
.B all
Special symbol for all menus (except the help menu)
.SH FILES
.TP
.I SYSCONFDIR/nanorc

View File

@ -213,6 +213,15 @@
##
## All regexes should be extended regular expressions.
## Key bindings
## Please see nanorc(5) for more details on this
##
## Here are some samples to get you going
##
# bind M-W nowrap main
# bind M-A casesens search
# bind ^S research main
## Nanorc files
# include "@PKGDATADIR@/nanorc.nanorc"