From 90218063db638e4ff11d08ec540b398d3bf1fe0f Mon Sep 17 00:00:00 2001 From: Chris Allegretta Date: Wed, 5 Mar 2008 07:35:01 +0000 Subject: [PATCH] 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 --- BUGS | 12 +++ ChangeLog | 7 ++ doc/man/nanorc.5 | 251 +++++++++++++++++++++++++++++++++++++++++++ doc/nanorc.sample.in | 9 ++ 4 files changed, 279 insertions(+) diff --git a/BUGS b/BUGS index 73ad4f4f..61d61e8c 100644 --- a/BUGS +++ b/BUGS @@ -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, diff --git a/ChangeLog b/ChangeLog index d95de6c8..ee5a5a3f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-03-04 Chris Allegretta * AUTHORS, doc/faq.html: Update maintenance information. diff --git a/doc/man/nanorc.5 b/doc/man/nanorc.5 index 7494df2c..ff8de18b 100644 --- a/doc/man/nanorc.5 +++ b/doc/man/nanorc.5 @@ -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 diff --git a/doc/nanorc.sample.in b/doc/nanorc.sample.in index 95c1941f..d1369776 100644 --- a/doc/nanorc.sample.in +++ b/doc/nanorc.sample.in @@ -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"