Community
    • 登入

    Blank Trim operations, on a text selection, ONLY

    已排程 已置頂 已鎖定 已移動 General Discussion
    7 貼文 4 Posters 17.1k 瀏覽
    正在載入更多貼文
    • 從舊到新
    • 從新到舊
    • 最多點贊
    回覆
    • 在新貼文中回覆
    登入後回覆
    此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
    • guy038G
      guy038
      最後由 guy038 編輯

      Hello Noitidart and All,

      Noitidart, I reply to your last post, on Github N++ forums, at the address :

      https://github.com/notepad-plus-plus/notepad-plus-plus/issues/302#issuecomment-115071964

      As I said before, the N++ Blank Trim Operations, logically, work on the totality of the current file. Luckily, it’s easy enough to use a search/replacement, in regular expression mode, to get rid of these blank characters, in a normal selection, ONLY.

      And, of course, you can store this specific search-replacement in a macro, which can be, easily, executed, further, from the macro Menu OR by hitting its associated shortcut !

      Let’s suppose you would like a macro to delete all trailing blanks in a selection. To do so :

      • Open any text file

      • First, select some lines ( even without any trailing blank )

      • Select the menu option Macro - Start recording OR the red circle button, on the Toolbar

      • Open the Replace dialog ( CTRL + H )

      • In the Find what zone, type \h+$

      • Leave the Replace with zone empty

      • Check the In selection option

      • Select the Regular expression search mode

      • Click on the Replace All button

      • Select the menu option Macro - Stop Recording Or the black square button, on the Toolbar

      • Open the menu option Macro - Save Currend recorded Macro…

      • Type, for instance, Trim SELECTION trailing BLANK characters as the current name for this macro

      • Choose a shortcut for this macro ( Take care NOT to use an existing Notepad++ or plugin shortcut ! )

      • Click on the OK button, to valid your choices

      Now, each time you select a normal selection ( neither rectangular selection, nor multiple selections ), any trailing blank character will be removed of that selection, as soon as you choose the menu option Macro - Trim SELECTION trailing BLANK characters OR you use the its specific shorcut

      Without any previous normal selection, this macro doesn’t do anything. Nice isn’t it ?

      Best regards,

      guy038

      Scott SumnerS 1 條回覆 最後回覆 回覆 引用 2
      • NoitidartN
        Noitidart
        最後由 Noitidart 編輯

        Oh wow I didn’t know we could save things as a macro! Thanks very very much for this detailed instructions Im going to follow it right away!

        And this new community is absolutely beautiful! Is it public software or custom?

        edit: just tested it and it works so awesome! thank you!

        btw what language uses \h i can’t find that symbol in any regex tutorials, what is it btw?

        1 條回覆 最後回覆 回覆 引用 0
        • guy038G
          guy038
          最後由 編輯

          Hi Noitidart,

          I think that this N++ community is based on NodeBB forums. You’ll get further information, from the link below :

          https://nodebb.org/

          See also the Don Ho post :

          https://notepad-plus-plus.org/community/topic/2/welcome-to-notepad-community


          Secondly, you’ll find good documentation, about the new Boost C++ Regex library, v1.55.0 ( similar to the PERL Regular Common Expressions, v1.48.0 ), used by Notepad++, since its 6.0 version, at the TWO addresses below :

          http://www.boost.org/doc/libs/1_48_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html

          http://www.boost.org/doc/libs/1_48_0/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html

          • The FIRST link explains the syntax, of regular expressions, in the SEARCH part

          • The SECOND link explains the syntax, of regular expressions, in the REPLACEMENT part

          As for the \h regex syntax, just have a look to the paragraph “Single character” character classes, in the SEARCH document !

          Best regards,

          guy038

          1 條回覆 最後回覆 回覆 引用 2
          • NoitidartN
            Noitidart
            最後由 編輯

            Thanks @guy038 for all that info this is real cool!

            1 條回覆 最後回覆 回覆 引用 0
            • Scott SumnerS
              Scott Sumner @guy038
              最後由 編輯

              @guy038

              each time you select a normal selection ( neither rectangular selection, nor multiple selections )
              Without any previous normal selection, this macro doesn’t do anything

              I recently had a need to record a replace macro that operated only upon selected text. What I found was different from what @guy038 reported about multiple selections. I found that if multiple selections are active when the macro is invoked, it WILL perform the replacement, but only in the selection created most recently (this is consistent with how Notepad++ performs this replacement interactively).

              1 條回覆 最後回覆 回覆 引用 0
              • taa1T
                taa1
                最後由 編輯

                Hi @guy038,

                If \h+$ removes trailing spaces, what regex would remove leading and trailing spaces? I’m looking for the equivalent of Edit -> Blank Operations -> Trim Leading and Trailing Space, but on selected text only.

                Scott SumnerS 1 條回覆 最後回覆 回覆 引用 1
                • Scott SumnerS
                  Scott Sumner @taa1
                  最後由 編輯

                  @taa1

                  Try this:

                  Find what zone: (?-s)^\h*(.*?)\h*$
                  Replace with zone: \1
                  In selection checkbox: ticked
                  Search mode: Regular expression
                  Action: Press Replace All button

                  1 條回覆 最後回覆 回覆 引用 0
                  • 第一個貼文
                    最後的貼文
                  The Community of users of the Notepad++ text editor.
                  Powered by NodeBB | Contributors