Start new file in language>python with shortcut while standardlanguage remains NONE, TXT
-
Hi everybody. I need help starting a new file in language>python with shortcut while standard language remains NONE, TXT.
Why
I use NPP as my standard Editor for Text *.TXT and my standard Editor for Phython *.PY, both on a daily basis. The standard is TXT. So when I start a new file Ctrl+N, a TXT-file is created. That is nice, but when I want to code in Python, I have to start a new file and change the language, that amounts to Ctrl+N, Alt+P, P, UP, Enter. I want a more efficient way.I don’t think I am the first person to have that wish, but I haven’t found a solution yet.
What have I tried
- I have tried to replicate the steps with a macro, but that does not record the change of language.
- I have tried finding the answer both with google and here in the community and came up short looking for opening new file, language, python, npp in variations.
Results:
- In the community I found a lot of things that deals with JSON Files. I didn’t understand.
- In Google the closest thing I have found was this link, but this remains a txt-file:
Can anybody please help.
Cheers, Robert
-
The absolute best way is to simply save your new tab as a file in the file system as something ending in
.py
. -
@Robert-Jablko said in Start new file in language>python with shortcut while standardlanguage remains NONE, TXT:
I have tried to replicate the steps with a macro, but that does not record the change of language.
The Language commands aren’t macro-recordable, but they do turn out to be macro-playable, so you cannot record a macro that will do it, but after you record a macro, you can edit the
%AppData%\Notepad++\shortcuts.xml
and restart Notepad++ and from then on, the macro will include that command.I use the following macro to create a new file and change its language to Perl:
<Macro name="NewPerl" Ctrl="no" Alt="no" Shift="no" Key="0"> <Action type="2" message="0" wParam="41001" lParam="0" sParam="" /> <Action type="2" message="0" wParam="46013" lParam="0" sParam="" /> </Macro>
For Python, the second line would use
46012
instead of46013
, based on the math insidemenuCmdID.h
. You can either manually set the keyboard shortcut when you edit the XML, or after your Notepad++ restart, you can just use Shortcut Mapper to change the shortcut for that macro.(More on the meaning of the XML in Macro commands can be found here in the User Manual)
Last year, I gave this answer, which includes a SaveAs after setting the type. I would highly recommend you add the SaveAs to the end of your Macro, as well.
-
Thank you for the quick answers. The macro works like a charm. I love it!!! And learned so much, yet again.
I will have two macros.
-
The first macro opens a new file with python language. I actually don’t always need to save it. A lot of times I just quickly want to doodle around, insert code I have found on the web, change a part in my project, where there is too much going on for me to focus and I need a clean environment. Last, but not least I want to be able to use my extensive QuickText library that is not available in TXT.
<Macro name="Open New Python" Ctrl="no" Alt="no" Shift="no" Key="0"> <!-- My first Macro by hand --> <Action type="2" message="0" wParam="41001" lParam="0" sParam="" /> <!-- Start New File --> <Action type="2" message="0" wParam="46012" lParam="0" sParam="" /> <!-- Change Language to Python --> </Macro>
-
The second macro opens a new file with python language and opens the window to save as.
<Macro name="Open new Python and save" Ctrl="no" Alt="no" Shift="no" Key="0"> <Action type="0" message="2172" wParam="0" lParam="0" sParam="COMMENT: 41001 = File|New" /> <Action type="2" message="0" wParam="41001" lParam="0" sParam="" /> <Action type="0" message="2172" wParam="0" lParam="0" sParam="COMMENT: 46012 = Language|Python" /> <Action type="2" message="0" wParam="46012" lParam="0" sParam="" /> <Action type="0" message="2172" wParam="0" lParam="0" sParam="COMMENT: 41008 = Save|As" /> <Action type="2" message="0" wParam="41008" lParam="0" sParam="" /> </Macro>
The following explanation is obviously NOT for you two, but for future me and maybe other newbies reading this post and trying to recreate it. The first question I had, was how to edit a macro by hand. There is no obvious way in npp that I have found. Why I did is to find the shortcuts.xml in my npp-folder, open it in npp and then insert the macro-snippts between <Macros> </Macros>. Then I had to restart npp. In my case it looks like this:
</InternalCommands> <Macros> <Macro name="Trim Trailing Space and Save" Ctrl="no" Alt="yes" Shift="yes" Key="83"> <Action type="2" message="0" wParam="42024" lParam="0" sParam="" /> <Action type="2" message="0" wParam="41006" lParam="0" sParam="" /> </Macro> <Macro name="Open new Python" Ctrl="no" Alt="no" Shift="no" Key="0"> <!-- My first Macro by hand --> <Action type="2" message="0" wParam="41001" lParam="0" sParam="" /> <!-- Start New File --> <Action type="2" message="0" wParam="46012" lParam="0" sParam="" /> <!-- Change Language to Python --> </Macro> <Macro name="Open new Python and save" Ctrl="no" Alt="no" Shift="no" Key="0"> <Action type="0" message="2172" wParam="0" lParam="0" sParam="COMMENT: 41001 = File|New" /> <Action type="2" message="0" wParam="41001" lParam="0" sParam="" /> <Action type="0" message="2172" wParam="0" lParam="0" sParam="COMMENT: 46012 = Language|Python" /> <Action type="2" message="0" wParam="46012" lParam="0" sParam="" /> <Action type="0" message="2172" wParam="0" lParam="0" sParam="COMMENT: 41008 = Save|As" /> <Action type="2" message="0" wParam="41008" lParam="0" sParam="" /> </Macro> </Macros> <UserDefinedCommands>
That is my first time using XML by the way, but that is why I love npp.
-
-
@Robert-Jablko said in Start new file in language>python with shortcut while standardlanguage remains NONE, TXT:
The first question I had, was how to edit a macro by hand. There is no obvious way in npp that I have found. Why I did is to find the shortcuts.xml in my npp-folder, open it in npp and then insert the macro-snippts between <Macros> </Macros>. Then I had to restart npp.
See HERE.
-
@Robert-Jablko said in Start new file in language>python with shortcut while standardlanguage remains NONE, TXT:
<!-- My first Macro by hand -->
Just so you know, the next time you record a macro or change a keyboard shortcut, all the
<!-- ... -->
comments will disappear (Notepad++ unfortuntely doesn’t preserve XML comments in the macros or othershortcuts.xml
) -
Thank you.
Actually, that happened today. I created a python-script that closes all open python idle windows, which I hate to do by hand, there are just too many and all of same at different places. Now I don’t have to do that again. I start the script via NppExec and use a shortcut. After that my comments were gone. I use your format now to store comments.
-
@Robert-Jablko, A while back @PeterJones posted this which shows a way to have comments in a macro.