Community
    • Login

    Suggestion: Find in Files from command line

    Scheduled Pinned Locked Moved General Discussion
    35 Posts 12 Posters 7.7k 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.
    • Vitaliy DovganV
      Vitaliy Dovgan
      last edited by

      Notepad++ already has a very powerful Find in Files functionality (Ctrl+Shift+F).
      What do you think about allowing Notepad++ to be started in the Find in Files mode? In this mode, Notepad++ would start with its Find in Files dialog shown with some values specified in the command line.
      Here are more details. Let’s assume Notepad++ supports these new command line switches:

      -ffwhat="Text to find in files"
      -ffwith="Text to replace with in files"
      -ffdir="Directory to start the search from"
      -ffmask="File masks/filters"
      

      If at least one of these arguments is specified, Notepad++ would start with its Find in Files dialog shown.
      For example, if just “-ffdir” is specified, the Find in Files dialog will contain the “Directory” value set, whereas the “Filters” value will not be changed (i.e. it will contain its last/previous value, whatever it was) and both “Find what” and “Replace with” values will be empty.
      If just “-ffwith” is specified, the Find in Files dialog will have the “Replace with” value set, whereas the “Directory” and “Filters” values will not be changed (i.e. it will contain its last/previous value, whatever it was) and the “Find what” value will be empty.
      if just “-ffwhat” is specified, the Find in Files dialog will have the “Find what” value set, whereas the “Directory” and “Filters” values will not be changed (i.e. it will contain its last/previous value, whatever it was) and the “Replace with” value will be empty.
      Usage example:

      notepad++.exe -multiInst -nosession -ffdir="C:\Temp\Documents" -ffmask=*.txt -ffwhat="Some text"
      

      If it looks like a good suggestion, let’s discuss the design here. E.g. what exact names to use for the command arguments, what exact behavior to expect from Notepad++, what other options we may want to set, etc.

      PeterJonesP mkupperM 2 Replies Last reply Reply Quote 4
      • PeterJonesP
        PeterJones @Vitaliy Dovgan
        last edited by

        @Vitaliy-Dovgan said in Suggestion: Find in Files from command line:

        If it looks like a good suggestion, let’s discuss the design here

        I don’t think it’s a bad suggestion. I just doubt I personally would ever use it. (My workflow has Notepad++ nearly always open, so command-line options don’t do much for me.)

        However, if it were to be implemented, I like the ff prefix for all of them. They don’t get horrendously long (-findInFilesDirectory, etc). But I might be tempted for -ffsearch or -fffind and -ffreplace, as I think those would be easier to remember than -ffwhat and -ffwith.

        Should there be -ffmode=xxx which accepts normal, extended, and regex ? And -ffcase and -ffnewline for case sensitivity and dot-matches-newline toggles (either with 1/0 values, or maybe on/off strings)?

        1 Reply Last reply Reply Quote 4
        • Vitaliy DovganV
          Vitaliy Dovgan
          last edited by

          This idea actually comes from how the “Search (in files) in separate process” is implemented in Total Commander. In fact, it runs another instance of totalcmd.exe with specific command line arguments that turn a new instance of Total Commander into a search window instead of a file manager window.
          So I was wondering whether Notepad++ community would be interested in something similar in Notepad++. Don’t forget that Total Commander only shows the file list in its search results while Notepad++ shows the file list plus the matches in each file.
          If, however, there is no high interest in this feature in Notepad++ from Notepad++ community (and especially from developers team), then I would not see much sense in creating of the corresponding feature request and investing time into investigations and development.

          Vitaliy DovganV 1 Reply Last reply Reply Quote 2
          • Vitaliy DovganV
            Vitaliy Dovgan @Vitaliy Dovgan
            last edited by

            The already existing solutions for searching in files are:

            • AstroGrep ( http://astrogrep.sourceforge.net/ ) - only searching, no replacing, wide command line arguments
            • Searcher ( https://sourceforge.net/projects/searcher/ ) - only searching, no replacing, no command line arguments
            • Text Crawler ( https://www.digitalvolcano.co.uk/textcrawler.html ) - searching & replacing, wide command line arguments
            Alan KilbornA Michael VincentM 2 Replies Last reply Reply Quote 2
            • Alan KilbornA
              Alan Kilborn @Vitaliy Dovgan
              last edited by

              @Vitaliy-Dovgan said in Suggestion: Find in Files from command line:

              The already existing solutions for searching in files

              Well, I think in reality that list is going to be a bit of a long one.

              Another one for the list is PowerGREP. It’s certainly not “free”, but I don’t know if a list of these types of alternatives should only list free programs?

              Actually, I don’t use PowerGREP any longer. What I’ve found is that RegexBuddy (also not free) has a little “grepper” built into it that is very capable and produces output much like Notepad++'s Search results window. No command line options, though, but in truth, I don’t think I’ve ever had a need for such a thing.

              EkopalypseE 1 Reply Last reply Reply Quote 1
              • EkopalypseE
                Ekopalypse @Alan Kilborn
                last edited by

                @Alan-Kilborn

                I’m using Filelocator Lite, which is now called AgentRansack. Nice, but something built into Npp might make me uninstall it.

                1 Reply Last reply Reply Quote 1
                • Michael VincentM
                  Michael Vincent @Vitaliy Dovgan
                  last edited by

                  @Vitaliy-Dovgan said in Suggestion: Find in Files from command line:

                  The already existing solutions for searching in files are:

                  AstroGrep ( http://astrogrep.sourceforge.net/ ) - only searching, no replacing, wide command line arguments
                  Searcher ( https://sourceforge.net/projects/searcher/ ) - only searching, no replacing, no command line arguments
                  Text Crawler ( https://www.digitalvolcano.co.uk/textcrawler.html ) - searching & replacing, wide command line arguments

                  @Alan-Kilborn

                  Another one for the list is PowerGREP.

                  @Ekopalypse

                  I’m using Filelocator Lite

                  Am I the only one using good old command line grep?

                  Cheers.

                  EkopalypseE 1 Reply Last reply Reply Quote 0
                  • EkopalypseE
                    Ekopalypse @Michael Vincent
                    last edited by

                    @Michael-Vincent

                    ‘grep’ is not recognized as an internal or external command,
                    operable program or batch file.

                    ?? hmmm … maybe that is the reason why I’m not using it :-D

                    PeterJonesP 1 Reply Last reply Reply Quote 1
                    • PeterJonesP
                      PeterJones @Ekopalypse
                      last edited by PeterJones

                      @Michael-Vincent ,

                      Am I the only one using good old command line grep?

                      No. I personally use the old gnuwin32 grep, though it wouldn’t surprise me if there were more modern (or 64bit) versions ported to windows executables.

                      @Ekopalypse (sorry for the snarky reply, but your phrasing required such)

                      ‘grep’ is not recognized as an internal or external command,
                      

                      The same errors happen for me when I try to run an application on my PC that I haven’t installed – like, for instance, the FileLocator/AgentRansack that you mentioned:

                      >where filelocator
                      INFO: Could not find files for the given pattern(s).
                      
                      >where agentransack
                      INFO: Could not find files for the given pattern(s).
                      
                      >filelocator
                      'filelocator' is not recognized as an internal or external command,
                      operable program or batch file.
                      
                      >agentransack
                      'agentransack' is not recognized as an internal or external command,
                      operable program or batch file.
                      
                      >where grep
                      C:\usr\local\bin\grep.exe
                      
                      >grep --version
                      GNU grep 2.5.4
                      
                      Copyright (C) 2009 Free Software Foundation, Inc.
                      License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
                      This is free software: you are free to change and redistribute it.
                      There is NO WARRANTY, to the extent permitted by law.
                      

                      maybe that is the reason why I’m not using it :-D

                      That’s not likely the reason, because it’s as easy (or easier) to install gnuwin32 grep as it is to install the FileLocator/AgentRansack.

                      Michael VincentM 1 Reply Last reply Reply Quote 1
                      • EkopalypseE
                        Ekopalypse
                        last edited by Ekopalypse

                        Ahh - I had understood that this was a system tool.

                        PeterJonesP 1 Reply Last reply Reply Quote 1
                        • Michael VincentM
                          Michael Vincent @PeterJones
                          last edited by

                          @PeterJones
                          @Ekopalypse

                          I have grep.exe installed in my C:\usr\bin\ directory along with Git for Windows (which supplies it’s own grep), but I prefer the GnuWin32 version.

                          Cheers.

                          1 Reply Last reply Reply Quote 1
                          • PeterJonesP
                            PeterJones @Ekopalypse
                            last edited by

                            Personally, I tend to keep my command line and GUI programs separate. I’ll let a GUI program like Notepad++ do what it’s good at, and a command-line tool like grep do what it’s good at. If I want command-line power, I use a command-line tool (and usually something written originally for linux and ported to windows); when I want a graphical environment, I use a native win32 application.

                            Thus, if I’ve already got one of the files I want to search open in Notepad++, I will pull up the Find In Files and have it recursively search the directory structure relative to the current file. But if I have something I’m trying to find elsewhere (more often the case), or if I want a lot of fine control on command-line-style arguments, I’m more likely to pull out grep. (which explains why I’m not likely to use the -ff... args that Vitaly suggested.

                            But I can see for someone who prefers to always use a GUI for their grepping results, whether started from the GUI or from the command line, I could see the benefit of having that grepping be part of Notepad++ rather than having a specialty GUI app like those mentioned by others.

                            1 Reply Last reply Reply Quote 1
                            • Alan KilbornA
                              Alan Kilborn
                              last edited by Alan Kilborn

                              …but something built into Npp might make me uninstall it.

                              I think we’re overlooking something.
                              Notepad++ isn’t a great searching tool.
                              There, I’ve said it. :-)
                              I await the flames.

                              EkopalypseE 1 Reply Last reply Reply Quote 1
                              • Alan KilbornA
                                Alan Kilborn
                                last edited by Alan Kilborn

                                …grep…

                                Maybe grep isn’t great for multiple directories that aren’t in the same tree? Too much to specify, or maybe there’s a nice way to do something like that via a config file?

                                Specifying such a thing is problematic even for the best tools.
                                It is a weakness for Notepad++ as well.

                                Plus grep uses yare (yet another regex engine).
                                The grepper in RegexBuddy allows me to pick the regex engine I want to use (typically I set it to the same one as N++, i.e., Boost).

                                <start_unpaid_commercial>
                                RegexBuddy really is a great value, for I think 35USD.
                                </end_upaid_commercial>

                                1 Reply Last reply Reply Quote 0
                                • EkopalypseE
                                  Ekopalypse @Alan Kilborn
                                  last edited by

                                  @Alan-Kilborn - to quote the famous “how dare are you??” :-D

                                  To be honest, I never had a problem with it. Yes, there are better solutions, like the one I posted, but for what I use it for, it’s good enough. Maybe because I only use utf8 encoded files.

                                  Alan KilbornA 1 Reply Last reply Reply Quote 0
                                  • Alan KilbornA
                                    Alan Kilborn @Ekopalypse
                                    last edited by Alan Kilborn

                                    @Ekopalypse said in Suggestion: Find in Files from command line:

                                    how dare are you?

                                    :-)

                                    N++'s searching is slow, and as previously mentioned, how does one search several different trees? Also, you can’t do anything else with it while it is conducting a search.

                                    It’s perfectly fine for most things (interactive find-next, find all in current file, …), but when you get into searching a lot of files, well there are other and better ways to skin that cat.

                                    And since that is what the beginning of this thread was about (automating an already not-great feature), I say “meh” to the original idea. Not something I’d use. But I respect those that would, and their opinions on the topic.

                                    EkopalypseE 1 Reply Last reply Reply Quote 1
                                    • EkopalypseE
                                      Ekopalypse @Alan Kilborn
                                      last edited by

                                      @Alan-Kilborn

                                      The idea is great, because then I can start a new instance easily and it is not blocking my current instance.

                                      Alan KilbornA 1 Reply Last reply Reply Quote 0
                                      • Alan KilbornA
                                        Alan Kilborn @Ekopalypse
                                        last edited by

                                        @Ekopalypse said in Suggestion: Find in Files from command line:

                                        The idea is great, because then I can start a new instance easily and it is not blocking my current instance.

                                        If I’m considering “calling out” like that, I’ll call out to a more capable searching program. :-)
                                        And when that more-capable program shows me the hits and I want to go to one of them, I’ll have that program call back into Notepad++ to take me to the file and hit line.

                                        EkopalypseE 1 Reply Last reply Reply Quote 0
                                        • EkopalypseE
                                          Ekopalypse @Alan Kilborn
                                          last edited by

                                          @Alan-Kilborn

                                          I’m not sure I understand, but in the end it depends on personal preference anyway.
                                          I mean, if I use Npp because of its search function, then I think I’m using the wrong tool for the job.
                                          On the other hand, if I mainly edit, then it’s good to have a powerful search function like Npp has, and if it can be easily launched from Npp and doesn’t block me - all the better.

                                          Alan KilbornA 1 Reply Last reply Reply Quote 2
                                          • Alan KilbornA
                                            Alan Kilborn @Ekopalypse
                                            last edited by

                                            @Ekopalypse

                                            Well, in theory we could put together all we know and create the desired functionality via scripting…if it isn’t picked up natively. There’d be a lot of individual pieces, but I can’t think of anything that would be a “stopper”.

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