From f5d6d9985b52b81be2bebe0dc1b50c76cc549e6c Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Fri, 12 May 2006 12:37:53 +0000 Subject: [PATCH] drop the Meta-] and Meta-[ aliases for Meta-} and Meta-}, and change the shortcut to find the matching bracket from Ctrl-] back to Meta-], since Ctrl-] is used as the telnet escape key git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3503 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 12 +++++++++++- doc/faq.html | 42 ++++++++++++++++++++---------------------- src/global.c | 10 ++++------ src/nano.h | 7 ++----- src/prompt.c | 7 ++++--- 5 files changed, 41 insertions(+), 37 deletions(-) diff --git a/ChangeLog b/ChangeLog index c1674fb3..cd1be5ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -66,8 +66,13 @@ CVS code - do_indent_marked(), do_indent_marked_void(), and do_unindent_marked_void(); changes to shortcut_init(). (Chris and DLR) - - Change the shortcut to find the matching bracket to ^]. + - Change the shortcut to find the matching bracket to Ctrl-]. Changes to shortcut_init() and do_statusbar_input(). (DLR) + - Drop the Meta-] and Meta-[ aliases for Meta-} and Meta-}, and + change the shortcut to find the matching bracket from Ctrl-] + back to Meta-], since Ctrl-] is used as the telnet escape key. + Changes to shortcut_init() and do_statusbar_input(). (DLR, + found by Chris) - Add the ability to move to the first and last line of the help text and the first and last file in the file browser via Meta-\ (Meta-|) and Meta-/ (Meta-?). Changes to do_browser(), @@ -236,6 +241,11 @@ CVS code - holding down keys to generate Meta sequences. (Benno Schulenberg, minor tweaks by DLR) - Add a few capitalization and wording fixes. (DLR) + - Remove section 4.4, and move all section 4 entries after it up + one number, since it no longer applies. Meta-] and Meta-[ are + no longer used to indent and unindent marked text, since they + require that the bracket matching key change to Ctrl-], which + is used as the telnet escape key. (DLR, found by Chris) - doc/nano.1, doc/nanorc.5, doc/rnano.1, doc/nano.texi: - Update the copyright years to include 2006. (DLR) - Explicitly mention that all regexes should be extended regular diff --git a/doc/faq.html b/doc/faq.html index f4f24ed3..a28e29e2 100644 --- a/doc/faq.html +++ b/doc/faq.html @@ -34,17 +34,16 @@

4.1. How do I open a file with a name beginning with '+' from the command line?
4.2. Ack! My Backspace/Delete/Enter/Meta/double bucky key doesn't seem to work! What can I do?
4.3. Ack! My numeric keypad's keys don't work properly when NumLock is off! What can I do?
- 4.4. Ack! When I press Meta-[ to unindent marked text, it only works after a short delay, and if I press Meta-[ again during the delay, I get a typed [ instead of another unindent. What gives?
- 4.5. Ack! When I hold down a Meta key combination for a while, the character of the held key gets inserted now and then. What gives?
- 4.6. How do I type the F13-F16 keys shown in the help browser? My keyboard only has F1-F12!
- 4.7. Nano crashes when I type <insert keystroke here>!
- 4.8. Nano crashes when I resize my window. How can I fix that?
- 4.9. [version 1.1.12 and earlier] Why does nano show ^\ in the shortcut list instead of ^J?
- 4.10a. [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.10b. [version 1.1.99pre1 and later] Hey, the search string behavior has reverted, it's now like Pico, what happened to the consistency?
- 4.11. How do I make nano my default editor (in Pine, mutt, etc.)?
- 4.12. I've compiled nano with color support, but I don't see any color when I run it!
- 4.13. 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. Ack! When I hold down a Meta key combination for a while, the character of the held key gets inserted now and then. What gives?
+ 4.5. How do I type the F13-F16 keys shown in the help browser? My keyboard only has F1-F12!
+ 4.6. Nano crashes when I type <insert keystroke here>!
+ 4.7. Nano crashes when I resize my window. How can I fix that?
+ 4.8. [version 1.1.12 and earlier] Why does nano show ^\ in the shortcut list instead of ^J?
+ 4.9a. [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.9b. [version 1.1.99pre1 and later] Hey, the search string behavior has reverted, it's now like Pico, what happened to the consistency?
+ 4.10. How do I make nano my default editor (in Pine, mutt, etc.)?
+ 4.11. I've compiled nano with color support, but I don't see any color when I run it!
+ 4.12. 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?

5. Internationalization

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?
@@ -182,23 +181,21 @@ C Shell users (tcsh and csh): setenv TERM vt100

4.3. Ack! My numeric keypad's keys don't work properly when NumLock is off! What can I do?

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.

-

4.4. Ack! When I press Meta-[ to unindent marked text, it only works after a short delay, and if I press Meta-[ again during the delay, I get a typed [ instead of another unindent. What gives?

-

This is a special case. Meta-[ followed by (for example) A through D corresponds to the arrow keys on many terminals, and the delay is needed in order to handle them. If you don't want to wait at all between unindents, you can hold down the Shift key when pressing Meta-[ to get Meta-{, which will do the same thing as Meta-[ without the delay.

-

4.5. Ack! When I hold down a Meta key combination for a while, the character of the held key gets inserted now and then. What gives?

+

4.4. Ack! When I hold down a Meta key combination for a while, the character of the held key gets inserted now and then. What gives?

This is a bug in the terminal, not in nano. When a key is repeating faster than nano can process it, the keyboard buffer becomes full and starts dropping incoming keystrokes. Unfortunately, it doesn't just drop whole keystrokes; it can also drop parts of multibyte key combinations, resulting in nano's receiving a wrong key.

-

4.6. How do I type the F13-F16 keys shown in the help browser? My keyboard only has F1-F12!

+

4.5. How do I type the F13-F16 keys shown in the help browser? My keyboard only has F1-F12!

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, and Eterm, Shift-F3 to Shift-F6 will generate F13 to F16.

-

4.7. Nano crashes when I type <insert keystroke here>!

+

4.6. Nano crashes when I type <insert keystroke here>!

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.

-

4.8. Nano crashes when I resize my window. How can I fix that?

+

4.7. Nano crashes when I resize my window. How can I fix that?

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).

-

4.9. [version 1.1.12 and earlier] Why does nano show ^\ in the shortcut list instead of ^J?

+

4.8. [version 1.1.12 and earlier] Why does nano show ^\ in the shortcut list instead of ^J?

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.

-

4.10a. [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.9a. [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?!

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).

-

4.10b. [version 1.1.99pre1 and later] Hey, the search string behavior has reverted, it's now like Pico, what happened to the consistency?

+

4.9b. [version 1.1.99pre1 and later] Hey, the search string behavior has reverted, it's now like Pico, what happened to the consistency?

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.

-

4.11. How do I make nano my default editor (in Pine, mutt, etc.)?

+

4.10. How do I make nano my default editor (in Pine, mutt, etc.)?

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:

@@ -256,7 +253,8 @@

Re-read Section 7.4 and you should know the answer.

8. ChangeLog

-

2006/05/08 - Add a new section 4.5, and move all section 4 entries after it down one number, to explain a problem that can occur when holding down keys to generate Meta sequences. Also add a few more capitalization and wording fixes. (Benno Schulenberg, minor tweaks by DLR)
+

2006/05/12 - Remove section 4.4, and move all section 4 entries after it up one number, since it no longer applies. Meta-] and Meta-[ are no longer used to indent and unindent marked text, since they require that the bracket matching key change to Ctrl-], which is used as the telnet escape key. (DLR, found by Chris)
+2006/05/08 - Add a new section 4.5, and move all section 4 entries after it down one number, to explain a problem that can occur when holding down keys to generate Meta sequences. Also add a few more capitalization and wording fixes. (Benno Schulenberg, minor tweaks by DLR)
2006/05/01 - Add a new section 4.4, and move all section 4 entries after it down one number, to explain how to deal with problems typing Meta-[. Also add a few capitalization and wording fixes. (DLR)
2006/04/14 - Clarify section 1.4: help menu -> help text display. (DLR, suggested by Benno Schulenberg)
2006/03/16 - Update the Free Translation Project's address, change the character set to UTF-8, and remove broken links to contributed RedHat nano packages. (DLR)
diff --git a/src/global.c b/src/global.c index 6e140060..8af2b724 100644 --- a/src/global.c +++ b/src/global.c @@ -580,13 +580,11 @@ void shortcut_init(bool unjustify) sc_init_one(&main_list, NANO_NO_KEY, N_("Indent Text"), IFHELP(nano_indentmarked_msg, FALSE), NANO_INDENTMARKED_KEY, - NANO_NO_KEY, NANO_INDENTMARKED_ALTKEY, NOVIEW, - do_indent_marked_void); + NANO_NO_KEY, NANO_NO_KEY, NOVIEW, do_indent_marked_void); sc_init_one(&main_list, NANO_NO_KEY, N_("Unindent Text"), IFHELP(nano_unindentmarked_msg, TRUE), NANO_UNINDENTMARKED_KEY, - NANO_NO_KEY, NANO_UNINDENTMARKED_ALTKEY, NOVIEW, - do_unindent_marked_void); + NANO_NO_KEY, NANO_NO_KEY, NOVIEW, do_unindent_marked_void); #endif sc_init_one(&main_list, NANO_FORWARD_KEY, N_("Forward"), @@ -642,8 +640,8 @@ void shortcut_init(bool unjustify) NANO_NO_KEY, NANO_LASTLINE_ALTKEY2, VIEW, do_last_line); #ifndef NANO_TINY - sc_init_one(&main_list, NANO_BRACKET_KEY, N_("Find Other Bracket"), - IFHELP(nano_bracket_msg, FALSE), NANO_NO_KEY, NANO_NO_KEY, + sc_init_one(&main_list, NANO_NO_KEY, N_("Find Other Bracket"), + IFHELP(nano_bracket_msg, FALSE), NANO_BRACKET_KEY, NANO_NO_KEY, NANO_NO_KEY, VIEW, do_find_bracket); sc_init_one(&main_list, NANO_NO_KEY, N_("Scroll Up"), diff --git a/src/nano.h b/src/nano.h index 093717b1..d237a8a9 100644 --- a/src/nano.h +++ b/src/nano.h @@ -431,7 +431,6 @@ typedef struct rcoption { #define NANO_ALT_EQUALS '=' #define NANO_ALT_RCARET '>' #define NANO_ALT_QUESTION '?' -#define NANO_ALT_LBRACKET '[' #define NANO_ALT_BACKSLASH '\\' #define NANO_ALT_RBRACKET ']' #define NANO_ALT_CARET '^' @@ -550,19 +549,17 @@ typedef struct rcoption { #define NANO_BACKSPACE_KEY NANO_CONTROL_H #define NANO_TAB_KEY NANO_CONTROL_I #define NANO_INDENTMARKED_KEY NANO_ALT_RCURLYBRACKET -#define NANO_INDENTMARKED_ALTKEY NANO_ALT_RBRACKET #define NANO_UNINDENTMARKED_KEY NANO_ALT_LCURLYBRACKET -#define NANO_UNINDENTMARKED_ALTKEY NANO_ALT_LBRACKET #define NANO_SUSPEND_KEY NANO_CONTROL_Z #define NANO_ENTER_KEY NANO_CONTROL_M #define NANO_TOFILES_KEY NANO_CONTROL_T #define NANO_APPEND_KEY NANO_ALT_A #define NANO_PREPEND_KEY NANO_ALT_P #define NANO_PREVFILE_KEY NANO_ALT_LCARET -#define NANO_NEXTFILE_KEY NANO_ALT_RCARET #define NANO_PREVFILE_ALTKEY NANO_ALT_COMMA +#define NANO_NEXTFILE_KEY NANO_ALT_RCARET #define NANO_NEXTFILE_ALTKEY NANO_ALT_PERIOD -#define NANO_BRACKET_KEY NANO_CONTROL_5 +#define NANO_BRACKET_KEY NANO_ALT_RBRACKET #define NANO_NEXTWORD_KEY NANO_CONTROL_SPACE #define NANO_PREVWORD_KEY NANO_ALT_SPACE #define NANO_WORDCOUNT_KEY NANO_ALT_D diff --git a/src/prompt.c b/src/prompt.c index 973b42e0..01ec2957 100644 --- a/src/prompt.c +++ b/src/prompt.c @@ -89,11 +89,11 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t, input == NANO_BACKSPACE_KEY || input == NANO_DELETE_KEY || input == NANO_CUT_KEY || #ifndef NANO_TINY - input == NANO_NEXTWORD_KEY || input == NANO_BRACKET_KEY || + input == NANO_NEXTWORD_KEY || #endif (*meta_key == TRUE && ( #ifndef NANO_TINY - input == NANO_PREVWORD_KEY || + input == NANO_PREVWORD_KEY || input == NANO_BRACKET_KEY || #endif input == NANO_VERBATIM_KEY))); @@ -180,7 +180,8 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t, break; #ifndef NANO_TINY case NANO_BRACKET_KEY: - do_statusbar_find_bracket(); + if (*meta_key == TRUE) + do_statusbar_find_bracket(); break; #endif case NANO_VERBATIM_KEY: