From: David Lawrence Ramsey 4.1. How do I open a file with a name beginning with '+' from the command line?4. Running
+ 4.3. Ack! My numeric keypad's keys don't work properly when NumLock is off! What can I do?
4.2. Ack! My backspace/delete/enter/double bucky/meta key doesn't seem to work! What can I do?
- 4.3. How do I type the F13-F16 keys shown in the help browser? My keyboard only has F1-F12!
- 4.4. Nano crashes when I type <insert keystroke here>!
- 4.5. Nano crashes when I resize my window. How can I fix that?
- 4.6. [version 1.1.12 and earlier] Why does nano show ^\ in the shortcut list instead of ^J?
- 4.7a. [version 1.1.12 and earlier] When I type in a search string, the string I last searched for is already in front of my cursor! What happened?!
- 4.7b. [version 1.1.99pre1 and later] Hey, the search string behavior has reverted, it's now like Pico, what happened to the consistency?
- 4.8. How do I make nano my default editor (in Pine, mutt, etc.)?
- 4.9. I've compiled nano with color support, but I don't see any color when I run it!
- 4.10. How do I select text for the clipboard in an X terminal when I'm running nano in one and nano's mouse support is turned on?
+ 4.4. How do I type the F13-F16 keys shown in the help browser? My keyboard only has F1-F12!
+ 4.5. Nano crashes when I type <insert keystroke here>!
+ 4.6. Nano crashes when I resize my window. How can I fix that?
+ 4.7. [version 1.1.12 and earlier] Why does nano show ^\ in the shortcut list instead of ^J?
+ 4.8a. [version 1.1.12 and earlier] When I type in a search string, the string I last searched for is already in front of my cursor! What happened?!
+ 4.8b. [version 1.1.99pre1 and later] Hey, the search string behavior has reverted, it's now like Pico, what happened to the consistency?
+ 4.9. How do I make nano my default editor (in Pine, mutt, etc.)?
+ 4.10. I've compiled nano with color support, but I don't see any color when I run it!
+ 4.11. How do I select text for the clipboard in an X terminal when I'm running nano in one and nano's mouse support is turned on?
@@ -181,19 +182,21 @@5.1. There's no translation for my language!
5.2. I don't like the translation for <x> in my language. How can I fix it?
-Try setting your $TERM variable to 'vt100'. Nano doesn't yet support every term entry under the sun.
Bourne shell users (bash and sh): export TERM=vt100
C Shell users (tcsh and csh): setenv TERM vt100
+You can use the -K or --rebindkeypad options on the command line, or add the line set rebindkeypad to your .nanorc. However, nano's mouse support won't work properly if you do any of these things.
-It depends on the terminal type you're using. On some terminals, such as the FreeBSD console, xterm, konsole, and gnome-terminal, Shift-F1 to Shift-F4 will generate F13 to F16. On other terminals, such as the Linux console, rxvt, or Eterm, Shift-F3 to Shift-F6 will generate F13 to F16.
-If you aren't trying some bizarre keystroke combination with some bizarre $TERM entry, chances are you have found a bug. You are welcome to submit it to the nano-devel list or to nano@nano-editor.org.
-Older versions of nano had this problem, please upgrade to a newer version (at least 0.9.9 would be great, 0.9.12 is recommended).
-The help (^G) and justify (^J) function were among the last to be written. To show the improvements that nano had over Pico (go to line # and replace), ^_ and ^\ were put on the shortcut list. Later, ^G came back in place of ^_ as it proved to be very valuable for new Unix users. If you use the -p option to nano (or hit Meta-P) you will get the same shortcuts at the bottom as Pico.
-In nano version 0.9.20, the default is to have a completely consistent user interface across all user input functions. This means that regardless of whether you're being asked for a filename to insert or write, or a string to search for, the previous value is already inserted before the cursor. If you prefer the old behavior, use the Pico emulation mode (-p or --pico) or just hit Meta-P while in nano (see the ^G help text for more details).
-It was decided that consistency was nice, but people are used to Pico's inconsistent behavior. Also, in version 1.1.99pre1, search and replace history was introduced. If you wish to edit your previous search/replace entry (or any previous entry), you can do so by hitting the up arrow to cycle through your history. This method allows the best of both worlds: You don't need to erase the previous string if you want to enter a new one, but you can with one keystroke recall previous entries for editing. Therefore there is now no "Pico mode", nano is and has always been a Pico clone, and clones by default should be compatible.
-You need to make nano your $EDITOR. If you want this to be saved, you should put a line like this in your .bashrc if you use bash (or .zshrc if you believe in zsh):
export EDITOR=/usr/local/bin/nano
or if you use tcsh put this in your .cshrc file:
@@ -206,9 +209,9 @@Mutt users should see an effect immediately the next time you log in, no further configuration is needed. However, if you want to let people know you use nano to compose your email messages, you can put a line like this in your .muttrc:
my_hdr X-Composer: nano x.y.z
Again, replace x.y.z with the version of nano you use.
-If you want nano to actually use color, you have to specify the color configurations you want it to use in your .nanorc. Some example configurations are in the nanorc.sample that comes with the nano source or your nano package. See Section 3.9.
Try holding down the Shift key and selecting or pasting the text as you normally would.
Re-read Section 7.4 and you should know the answer.
-+
2005/08/10 - Add a new section 4.3, and move all section 4 entries after it down one number, to explain how to deal with numeric keypad problems. (DLR)
2005/08/08 - Update section 3.8 to mention that verbatim input mode now takes a six-digit hexadecimal number. (DLR)
-2005/07/04 - Update section 4.10 to mention that pasting from the X clipboard via the middle mouse button also works when the Shift key is used.
+2005/07/04 - Update section 4.10 to mention that pasting from the X clipboard via the middle mouse button also works when the Shift key is used. (DLR)
2005/06/15 - Update description of --enable-extra, and add missing line breaks. (DLR)
2005/06/13 - Minor capitalization and wording fixes. (DLR)
2005/06/08 - Updated section 1.1 to mention the current maintainer. (DLR)
diff --git a/doc/nanorc.sample b/doc/nanorc.sample index f015685f..bd772fa5 100644 --- a/doc/nanorc.sample +++ b/doc/nanorc.sample @@ -103,6 +103,9 @@ ## Fix Backspace/Delete confusion problem. # set rebinddelete +## Fix numeric keypad key confusion problem. +# set rebindkeypad + ## Do extended regular expression searches by default. # set regexp @@ -321,7 +324,7 @@ ## highlight possible errors and parameters # icolor brightwhite "^[[:space:]]*(set|unset|syntax|i?color).*$" ## set, unset and syntax -# icolor cyan "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|backupdir|backwards|brackets|casesensitive|const|cut|fill|historylog|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nowrap|operatingdir|preserve|punct|quickblank|quotestr|rebinddelete)\>" "^[[:space:]]*(set|unset)[[:space:]]+(regexp|smarthome|smooth|speller|suspend|tabsize|tabstospaces|tempfile|view|whitespace)\>" +# icolor cyan "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|backupdir|backwards|brackets|casesensitive|const|cut|fill|historylog|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nowrap|operatingdir|preserve|punct|quickblank|quotestr|rebinddelete)\>" "^[[:space:]]*(set|unset)[[:space:]]+(rebindkeypad|regexp|smarthome|smooth|speller|suspend|tabsize|tabstospaces|tempfile|view|whitespace)\>" # icolor green "^[[:space:]]*(set|unset|syntax)\>" ## colors # icolor yellow "^[[:space:]]*i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan)?(,(white|black|red|blue|green|yellow|magenta|cyan))?\>" diff --git a/src/nano.c b/src/nano.c index c31a8bd5..078817cd 100644 --- a/src/nano.c +++ b/src/nano.c @@ -648,9 +648,12 @@ void window_init(void) bottomwin = newwin(3 - no_help(), COLS, editwinrows + (2 - no_more_space()), 0); - /* Turn the keypad on for the windows that get input. */ - keypad(edit, TRUE); - keypad(bottomwin, TRUE); + /* Turn the keypad on for the windows that get input, if + * necessary. */ + if (!ISSET(REBIND_KEYPAD)) { + keypad(edit, TRUE); + keypad(bottomwin, TRUE); + } } #ifndef DISABLE_MOUSE @@ -1052,6 +1055,8 @@ void usage(void) print1opt("-I", "--ignorercfiles", N_("Don't look at nanorc files")); #endif + print1opt("-K", "--rebindkeypad", + N_("Fix numeric keypad key confusion problem")); #ifndef NANO_SMALL print1opt("-N", "--noconvert", N_("Don't convert files from DOS/Mac format")); @@ -1871,6 +1876,7 @@ int main(int argc, char **argv) #ifdef ENABLE_NANORC {"ignorercfiles", 0, NULL, 'I'}, #endif + {"rebindkeypad", 0, NULL, 'K'}, {"morespace", 0, NULL, 'O'}, #ifndef DISABLE_JUSTIFY {"quotestr", 1, NULL, 'Q'}, @@ -1953,11 +1959,11 @@ int main(int argc, char **argv) while ((optchr = #ifdef HAVE_GETOPT_LONG getopt_long(argc, argv, - "h?ABC:EFHINOQ:RST:UVY:abcdefgijklmo:pr:s:tvwxz", + "h?ABC:EFHIKNOQ:RST:UVY:abcdefgijklmo:pr:s:tvwxz", long_options, NULL) #else getopt(argc, argv, - "h?ABC:EFHINOQ:RST:UVY:abcdefgijklmo:pr:s:tvwxz") + "h?ABC:EFHIKNOQ:RST:UVY:abcdefgijklmo:pr:s:tvwxz") #endif ) != -1) { switch (optchr) { @@ -1998,6 +2004,9 @@ int main(int argc, char **argv) SET(NO_RCFILE); break; #endif + case 'K': + SET(REBIND_KEYPAD); + break; #ifndef NANO_SMALL case 'N': SET(NO_CONVERT); diff --git a/src/nano.h b/src/nano.h index 9124831a..945b4e3a 100644 --- a/src/nano.h +++ b/src/nano.h @@ -300,19 +300,20 @@ typedef struct rcoption { #define MULTIBUFFER (1<<13) #define SMOOTH_SCROLL (1<<14) #define REBIND_DELETE (1<<15) -#define NO_CONVERT (1<<16) -#define BACKUP_FILE (1<<17) -#define NO_RCFILE (1<<18) -#define NO_COLOR_SYNTAX (1<<19) -#define PRESERVE (1<<20) -#define HISTORYLOG (1<<21) -#define RESTRICTED (1<<22) -#define SMART_HOME (1<<23) -#define WHITESPACE_DISPLAY (1<<24) -#define MORE_SPACE (1<<25) -#define TABS_TO_SPACES (1<<26) -#define QUICK_BLANK (1<<27) -#define USE_UTF8 (1<<28) +#define REBIND_KEYPAD (1<<16) +#define NO_CONVERT (1<<17) +#define BACKUP_FILE (1<<18) +#define NO_RCFILE (1<<19) +#define NO_COLOR_SYNTAX (1<<20) +#define PRESERVE (1<<21) +#define HISTORYLOG (1<<22) +#define RESTRICTED (1<<23) +#define SMART_HOME (1<<24) +#define WHITESPACE_DISPLAY (1<<25) +#define MORE_SPACE (1<<26) +#define TABS_TO_SPACES (1<<27) +#define QUICK_BLANK (1<<28) +#define USE_UTF8 (1<<29) /* Control key sequences. Changing these would be very, very bad. */ #define NANO_CONTROL_SPACE 0 diff --git a/src/rcfile.c b/src/rcfile.c index 5707e83e..ec356349 100644 --- a/src/rcfile.c +++ b/src/rcfile.c @@ -63,6 +63,7 @@ const static rcoption rcopts[] = { {"quotestr", 0}, #endif {"rebinddelete", REBIND_DELETE}, + {"rebindkeypad", REBIND_KEYPAD}, #ifdef HAVE_REGEX_H {"regexp", USE_REGEXP}, #endif diff --git a/src/winio.c b/src/winio.c index ade2f6ee..9266d6f3 100644 --- a/src/winio.c +++ b/src/winio.c @@ -1419,20 +1419,22 @@ int *get_verbatim_kbinput(WINDOW *win, size_t *kbinput_len) int *retval; /* Turn off flow control characters if necessary so that we can type - * them in verbatim, and turn the keypad off so that we don't get - * extended keypad values. */ + * them in verbatim, and turn the keypad off if necessary so that we + * don't get extended keypad values. */ if (ISSET(PRESERVE)) disable_flow_control(); - keypad(win, FALSE); + if (!ISSET(REBIND_KEYPAD)) + keypad(win, FALSE); /* Read in a stream of characters and interpret it if possible. */ retval = parse_verbatim_kbinput(win, kbinput_len); /* Turn flow control characters back on if necessary and turn the - * keypad back on now that we're done. */ + * keypad back on if necessary now that we're done. */ if (ISSET(PRESERVE)) enable_flow_control(); - keypad(win, TRUE); + if (!ISSET(REBIND_KEYPAD)) + keypad(win, TRUE); return retval; }