• Login
Community
  • Login

Changing default directory

Scheduled Pinned Locked Moved General Discussion
4 Posts 2 Posters 4.5k 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.
  • P
    padre
    last edited by Apr 8, 2019, 5:56 PM

    When I start up notepad, it starts with a default CURRENT_DIRECTORY variable that is pointed to the location where the Notepad++ executable is found. I keep my c files in a different directory. Notepad++ is unable to compile the c-files I have defined because the CURRENT_DIRECTORY variable is set to the wrong place. Is there a way to change the value of the CURRENT_DIRECTORY variable? Thanks.

    David

    1 Reply Last reply Reply Quote 0
    • P
      PeterJones
      last edited by PeterJones Apr 8, 2019, 6:28 PM Apr 8, 2019, 6:28 PM

      Welcome, @padre, to the Notepad++ Community forums

      In Settings > Preferences > Default Directory, do you have it set to ☑ Follow current document?

      Also, what are you using to run the compiler? Run > Run? Or Plugins > NppExec > Run? What command are you passing to that?

      If you’re doing something that just relies on one source file and calling in the right directory, Run>Run of cmd /c gcc "$(FULL_CURRENT_PATH)" -o "$(CURRENT_DIRECTORY)\$(NAME_PART).exe" could do it…

      For anything more complicated than a one-line command, or anything where directory is critical, I will tend to use NppExec rather than the default Run menu. I usually start with a cd $(CURRENT_DIRECTORY) to make sure that NppExec’s shell moves to be the same as the directory for the current file. For example, to compile then run a c program using a gcc which is in my path,

      npp_save
      cd "$(CURRENT_DIRECTORY)"
      gcc "$(FILE_NAME)" -o "$(NAME_PART)"
      npp_run cmd.exe /k "$(NAME_PART)"
      

      I did a quick experiment: When I have 7.6.4 x64 set to that setting, using Run > Run to cmd /c echo $(CURRENT_DIRECTORY) && pause, it shows the correct value for the $(CURRENT_DIRECTORY) variable. However, if I switch to cmd /k echo $(CURRENT_DIRECTORY) && pause, when it drops to the command line, the working directory is the notepad++.exe executable directory instead. SO it definitely needs the CD. I don’t have time at this moment to debug more and get a command that will work in the Run>Run and do the CD before issuing some other command. (Still, like I said, for multi-command sequences, NppExec is better; I also prefer it, because the results window is embedded in Notepad++, rather than spawning an external cmd.exe, which you have to be careful with /k vs /c and && pause to try to keep the results in a window before it disappears.)

      1 Reply Last reply Reply Quote 2
      • P
        PeterJones
        last edited by Apr 8, 2019, 7:13 PM

        Okay, able to revisit for a couple more minutes: if you need it to be in Run > Run rather than NppExec, starting from cmd /c cd /d "$(CURRENT_DIRECTORY)" && dir "$(FILE_NAME)" && echo change the dir and this last echo into just the compiler.exe -o "$(NAME_PART).exe" "$(FILE_NAME)" or whatever && pause as the command should get what you want.

        Really, it would simplify down to cmd /c cd /d "$(CURRENT_DIRECTORY)" && compiler.exe -o "$(NAME_PART).exe" "$(FILE_NAME)" && pause – I just had the others to show some more placeholders.

        But still, if possible, I’d recommend NppExec for anything beyond a one-liner (if it needs && to make it work in Run>Run, NppExec will be able to maintain it better)
        `

        1 Reply Last reply Reply Quote 2
        • P
          padre
          last edited by Apr 9, 2019, 5:24 PM

          Thanks. I seem to have it working now.

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