Adding a user-defined language in Notepad++

2020-05-16 14:33发布

I'm trying to add the syntax plugin for the Go programming language in Notepad++.

There is a repository for such user-defined languages. I downloaded and unzipped the Go files, which contained a README, a userDefinedLang_Go.xml, and go.xml.

I attempted to follow the instructions at the bottom of the page as follows. Since I am using Windows 7 (x64), my Notepad++ directory is "C:\Program Files (x86)\Notepad++".

Having not installed a user defined language before, I didn't have a userDefinedLang.xml file already, so I copied userDefinedLang_Go.xml into the root directory, and renamed it to remove the "_Go", making it userDefinedLang.xml.

I then copied go.xml into C:\Program Files (x86)\Notepad++\plugins\APIs\

This seems to be all of the steps necessary. However, when I open Notepad++, there is no "Go" near "Lang => User Defined", and there is no syntactic coloring on a .go file. Attempting to import via "View => User-Defined Dialogue => import" gives a "fail to import" error.

What am I doing wrong? I'm using a clean installation of Notepad++, which is version 6.1.8.

8条回答
做个烂人
2楼-- · 2020-05-16 14:36

userDefineLang resides in C:\Users\username\AppData\Roaming\Notepad++\userDefineLang.xml.

Make sure your Notepad++ is installed under "C:\Program Files(86)", and not under "C:\npp.#.#.#.bin" folder.

And download from https://notepad-plus-plus.org/download. Or simply google "Download Notepad++".

Check out a sample Scala language userDefineLang.xml file here: https://github.com/nfang/scala-syntax-highlighter

查看更多
劳资没心,怎么记你
3楼-- · 2020-05-16 14:36

If you don't have any user languages defined before, then after renaming userDefinedLang_Go.xml to userDefinedLang.xml, also edit the text of file by adding the tags <NotepadPlus></NotepadPlus> around the original content.

查看更多
神经病院院长
4楼-- · 2020-05-16 14:39

New install of Notepad++ 6.4.5 on Windows 7 64 bit

Download from Notepad++ site:

http://docs.notepad-plus-plus.org/index.php?title=User_Defined_Language_Files#G

Copy "go.xml" to C:\Program Files (x86)\Notepad++\plugins\APIs.

The default install doesn't have any user-defined languages, so you can do this:

  • Copy "userDefineLang_Go.xml" to C:\Users\\AppData\Roaming\Notepad++
  • Remove the "_Go" from the file name, so it's "userDefineLang.xml"
  • Uncomment the opening and closing "NotepadPlus" tags.

(If you already have a userDefineLang.xml then add the content from the _Go file.)

Restart Notepad++.

查看更多
姐就是有狂的资本
5楼-- · 2020-05-16 14:44

I just got it working on my system after some tinkering. Put this at the top of the userDefinedLang.xml file and the go.xml file:

<?xml version="1.0" encoding="Windows-1252" ?>

That should do the trick (after reopening Notepad++).

go.xml should be in the plugins/APIs folder, and userDefinedLang.xml goes in the root of Notepad++ as you said.

查看更多
Melony?
6楼-- · 2020-05-16 14:44

Something other answers do not discuss: Some older versions of Notepad++ do not appear to work with any of these answers.

I tried pretty much all the solutions before upgrading Notepad++ to version 6.4.2.

xkcd 979

Tested Notepad++ versions:

  • 5.9 - not working - tested by namey
  • 6.4.2 - working - tested by Elysian Fields
  • 6.6.9 - working - tested by namey

For other versions your mileage may vary.

查看更多
▲ chillily
7楼-- · 2020-05-16 14:51

I added pl/sql language syntax to Notepad++. The syntax /language was on the web. Here's how I got it to work ...

  1. Open the XML file using Notepad and added <?xml version="1.0" encoding="Windows-1252" ?> to the very beginning, as David had suggested. Then save it to userDefinedLang_plsql.xml
  2. Paste the file in the Notepad++ root directory.
  3. I also copied it into C:\Program Files (x86)\Notepad++\plugins\APIs\, and navigated to menu LanguagesUserdefined, but it did nothing.
  4. So, I then went to menu LanguagesDefine your language and selected pl/sql from the drop down, renamed it, and saved it in that dialog window.

The new language then it appeared in the language dialog at the end.

查看更多
登录 后发表回答