Community
    • Login

    Using caret (circumflex) key for a shortcut

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    10 Posts 6 Posters 3.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Egon OlsenE
      Egon Olsen
      last edited by

      Hi,

      I want to use the caret key (^), also known as circumflex, for a shortcut.

      I’m using the shortcut Ctrl-^ in NetBeans to “go to matching brace” and want to have identical shortcuts. In NPP it is Ctrl-b by default.

      Interestingly, Ctrl-^ in NPP does “anything”, something like Ctrl-Right, but in a different way.

      When trying to assign a new shorcut to this function (Shortcut id=“43009”), I realized that this character is not included in the list of available keys…

      As this key seems to be “not user-assignable”, it looks it is “internally hard coded” ?

      Is there a reason for that ?
      Can it be added somehow ?

      I tried to find out how shurtcuts are stored and tried another combination: Ctrl - 1 (after removing this from another function).
      This combination works.

      Then I had a look into “shortcuts.xml” and I found the definition:
      <Shortcut id=“43009” Ctrl=“yes” Alt=“no” Shift=“no” Key=“49” />
      (Function is "Search for corresponding bracket, originally Ctrl-b)
      As 49 is the decimal ASCII code of “1”, I tried to tamper the file and changes 49 to 94, the ASCII code of ^.
      Unfortunately it does not work this way and when looking at the current shortcut config within NPP it shows “Ctrl+unlisted” / “confict found”.

      Is there any possibility to get this realized ?

      Thank you and best regards !

      1 Reply Last reply Reply Quote 0
      • Michael VincentM
        Michael Vincent
        last edited by

        ‘^’ on my keyboard is actually Shift+6. Couldn’t you use Ctrl+6 as the shortcut and physically on the keyboard, the keystroke would be the same as you currently do?

        1 Reply Last reply Reply Quote 3
        • PeterJonesP
          PeterJones
          last edited by PeterJones

          Welcome, @Egon-Olsen, to the Notepad++ Community. You said:

          As this key seems to be “not user-assignable”, it looks it is “internally hard coded” ?
          Is there a reason for that ?
          Unfortunately it does not work this way and when looking at the current shortcut config within NPP it shows “Ctrl+unlisted” / “confict found”.
          Is there any possibility to get this realized ?

          When I tried to set a shortcut using the Settings > Shortcut Mapper, the ^ caret key doesn’t even show up. I believe this is because ^ isn’t a separate key (on a standard US keyboard): it’s the Shift+6 key (US).

          So if you want the keystroke to be Ctrl+^, that’s the same as Ctrl+Shift+6. That, you can easily map in the Shortcut Mapper, or by the following line in your shortcuts.xml:

              <Shortcut id="43009" Ctrl="yes" Alt="no" Shift="yes" Key="54" />
          

          (Remember that if you edit shortcuts.xml in Notepad++, you must not have changed any settings in the current session; the best advice is close all Notepad++ instances, open Notepad++ and edit shortcuts.xml; save and exit Notepad++; reload, and the change should take effect. But I find it easier to change in the Shortcut Mapper)

          edit: or, as @Michael-Vincent posted while I was typing this, you could just use the Ctrl+6, if you don’t want to hit the extra shift key; I don’t know which you would prefer.

          1 Reply Last reply Reply Quote 3
          • Egon OlsenE
            Egon Olsen
            last edited by

            Thank you for your answers !

            When I set the shortcut to Ctrl-6 or Ctrl-Shift-6 (via Settings > Shortcut Mapper) NPP did “exactly what I expected” - it jumps between the matching braces as soon as I press Ctrl-6 or Ctrl-Shift-6…

            Unfortunately Ctrl-^ still does what it did before: something like Ctrl-Right, but in a different way.

            I did not expect that it could be important to know what keyboard I am using… :-)

            It’s a German keyboard.
            The caret key is the key between ESC and TAB. It is used for ^ and with Shift: °
            https://en.wikipedia.org/wiki/File:KB_Germany.svg

            Anyway, this key is “weird” too, as nothing happens when you press it once, as it “may” belong to the following character: a,e,i,o,u: â,ê,î,ô,û. “VERY” special characters… :-)
            The character only shows up when you press it twice, or an other “second” key with a character which is not “coompatible” with ^.

            But this behavior is “normal”.
            Also, as this is working like a charm in NetBeans, it cannot be a general issue.

            For comparison:
            US:
            https://en.wikipedia.org/wiki/File:KB_United_States-NoAltGr.svg

            and UK:
            https://en.wikipedia.org/wiki/File:KB_United_Kingdom.svg

            I just “discovered” that this key seems to be the “backtick” (or backquote) key on the US/UK keyboard !

            But… unfortunately this key also isn’t in the list of usagle keys in NPP… :-(

            Any ideas ?

            Thank you and best regard !

            EkopalypseE Alan KilbornA 2 Replies Last reply Reply Quote 1
            • PeterJonesP
              PeterJones
              last edited by

              @Egon-Olsen said:

              Anyway, this key is “weird” too, as nothing happens when you press it once, as it “may” belong to the following character: a,e,i,o,u: â,ê,î,ô,û. “VERY” special characters… :-)
              The character only shows up when you press it twice, or an other “second” key with a character which is not “coompatible” with ^.

              Interesting. Glad I included “on a standard US keyboard”. :-)

              Also, as this is working like a charm in NetBeans, it cannot be a general issue.

              Well NetBeans may have implemented it in a very different way (I don’t know, because I don’t know the guts-details in NPP, and know nothing about the NetBeans). However, based on the way that it shows up in NPP shortcuts.xml, and my smattering of knowledge about keycodes vs characters, etc… I am guessing that the German layout has some special keycode for the fancy-^ key, which doesn’t line up with the ASCII code for ^. Maybe if you found a utility that shows you the keycode of your keystroke (I know such exist; I don’t have one to recommend off the top of my head), you can see what keycode is sent… then maybe try to edit the shortcuts.xml to use that keycode instead of the “54” (6) or “94” (^). But it may be that the shortcut-implementation in NPP is incompatible with the special-^ key on a German keyboard.

              1 Reply Last reply Reply Quote 2
              • EkopalypseE
                Ekopalypse @Egon Olsen
                last edited by Ekopalypse

                @Egon-Olsen

                it seems that, on german keyboard, CTRL+^ can be mapped as CTRL+\
                Btw. thank you for the hint. I’m using npp quite some time now but I never discovered ctrl+ ^ can do something useful. :-)

                1 Reply Last reply Reply Quote 2
                • Egon OlsenE
                  Egon Olsen
                  last edited by

                  Yeah !
                  Ctrl-\ is mapped to “SCI_WORDPARTRIGHT” - that sounds VERY promising :-)

                  …and IT IS WORKING the way I want !!!
                  :-)

                  But: VERY self-explaining that you has to use \ if you want ^…

                  Thank you !

                  EkopalypseE 1 Reply Last reply Reply Quote 3
                  • EkopalypseE
                    Ekopalypse @Egon Olsen
                    last edited by

                    @Egon-Olsen

                    But: VERY self-explaining that you has to use \ if you want ^…

                    LOL - I thought so to. Without the info that it jumps to the right, I never would have tried it
                    and I never would have look what kind of scintilla message could probably be used :-D

                    1 Reply Last reply Reply Quote 3
                    • Alan KilbornA
                      Alan Kilborn @Egon Olsen
                      last edited by

                      @Egon-Olsen said:

                      I just “discovered” that this key seems to be the “backtick” (or backquote) key on the US/UK keyboard !

                      But… unfortunately this key also isn’t in the list of usagle keys in NPP… :-(

                      ??? It is there!

                      Backtick is also called the grave-accent key and looks like this:

                      `

                      1 Reply Last reply Reply Quote 0
                      • dinkumoilD
                        dinkumoil
                        last edited by dinkumoil

                        @Egon-Olsen , @Alan-Kilborn , @Ekopalypse

                        Yeah, it’s the old new thing about keyboard layouts.

                        On all PC keyboards world wide, no matter of which locale, keys have the same scan codes depending on their physical position on the keyboard. The keyboard driver for a certain locale translates them (under Windows) into virtual key codes. That’s what applications see when they read keyboard input. These virtual key codes are translated into the actual glyphs of the characters (at the end of the day a bitmap image) when they are displayed on the screen.

                        If the keyboard driver supports so called “dead keys” it waits for a second key press to compose them to a resulting character, e.g. all these â,ê,î,ô,û,… letters used in various european languages. This way there are not so much weird key combos to input these characters.

                        Unfortunately, in the shortcut mapper of Notepad++ all this isn’t taken into account. The person who programmed the key selector has used a hard coded table for the mapping of physical keys to their character representation, which is wrong for most locales. I wasn’t able to figure out yet, which keyboard locale this person used as a basis for the mapping.

                        This is the mapping table for german keyboards between the key list in Notepad++'s shortcut mapper and the physical keys:

                        | Npp shortcut mapper |   German Keyboard    |
                        |                     |---------+------------|
                        |                     |  solo   | with SHIFT |
                        |---------------------+---------+------------|
                        |        ~            |  ö      |     Ö      |
                        |        -            |  -      |     _      |
                        |        =            |  +      |     *      |
                        |        [            |  ß      |     ?      |
                        |        ]            |  ´ (DK) |     ` (DK) |
                        |        ;            |  ü      |     Ü      |
                        |        '            |  ä      |     Ä      |
                        |        \            |  ^ (DK) |     °      |
                        |        ,            |  ,      |     ;      |
                        |        .            |  .      |     :      |
                        |        /            |  #      |     '      |
                        |        <>           |  <      |     >      |
                        

                        (DK) marks dead keys.

                        I often thought about filing an issue about that but I think it will be nothing more than another forgotten minor bug in the issue tracker…

                        1 Reply Last reply Reply Quote 6
                        • First post
                          Last post
                        The Community of users of the Notepad++ text editor.
                        Powered by NodeBB | Contributors