Czy Notepad ++ pamięta konkretny język dla określonego pliku?

10

Mam wiele plików, które chciałbym pokolorować na różne sposoby, mimo że mają to samo rozszerzenie. Na przykład mam kilka plików * .config, które w rzeczywistości są plikami Python, a niektóre są plikami XML. Kiedy je otwieram, muszę ręcznie zmienić język na Python lub XML.

Byłoby miło, gdyby na przykład Notepad ++ pamiętał, że c: \ foo \ bar \ whatevs.config powinien używać stylu Python, ale c: \ hey \ ho \ boo.config powinien używać stylu XML.

W Notepad ++ można powiedzieć „pamiętasz język, który był używany przy ostatnim otwarciu pliku”? Może wtyczka?

mhenry1384
źródło
Czy napotykasz jakieś problemy przy użyciu prawidłowych rozszerzeń plików?
iglvzx,
1
Mam aplikację Python, która używa plików .config, które są tak naprawdę plikami Python, a .NET używa plików .config, które są tak naprawdę plikami XML. Jako inny przykład mam pliki przeceny, które używają rozszerzenia .txt, ponieważ synchronizują się z aplikacją na Androida, która nie rozumie, czym są pliki .md.
mhenry1384,
Widzę. Czy pamięta język ustawiony przez Ciebie przy zamykaniu Notepad ++ przy otwartym pliku, a następnie ponownym otwarciu Notepad ++?
iglvzx,
2
W rzeczywistości tak jest, jeśli masz zaznaczoną opcję „Zapamiętaj bieżącą sesję do następnego uruchomienia” (czego nie mam). Ale zapomina o tym po zamknięciu pliku i ponownym otwarciu.
mhenry1384,

Odpowiedzi:

12

Istnieje opcja GUI do ustawienia statycznego łącza między rozszerzeniem pliku a językiem (zamiast ręcznej edycji %APPDATA% langs.xmlpliku lub %PROGRAMFILES% langs.model.xmlpliku zgodnie z sugestią @ jakub.g):

Jeśli przejdziesz do Ustawienia -> Konfigurator stylów -> wybierz język po lewej stronie, a następnie u dołu ekranu pojawią się dwa pola tekstowe:

Konfigurator stylów

W tym przykładzie dodałem „config” do pola User ext.tekstowego, aby za każdym razem, gdy otworzę plik z rozszerzeniem .config, podświetlanie składni XML zostanie automatycznie wybrane w menu Język.

Wiem, że to nie rozwiązuje problemu zapamiętywania, które wyróżnianie składni należy zastosować do pojedynczego określonego pliku, ale jest to prosty sposób na skonfigurowanie wyróżnienia dla wszystkich rozszerzeń plików.

Jeśli chcesz zapamiętać zaznaczenie podświetlenia składni dla pojedynczego pliku, uważam, że jedyną opcją jest zaznaczenie pola wyboru: Ustawienia -> Preferencje -> MISC -> Zapamiętaj bieżącą sesję do następnego uruchomienia.

wweicker
źródło
to jednak nie oszczędza. po zamknięciu i ponownym otwarciu notatnika ++ zmiany zniknęły.
r3wt
@ r3wt Uważam, że musisz to zrobić, run as administratorinaczej nie będzie miał uprawnień do zapisywania preferencji w twoim profilu użytkownika.
wweicker
To nie zadziała dla wbudowanych rozszerzeń plików. Musisz ręcznie usunąć rozszerzenie z części ext języka w pliku langs.xml. Ten plik może znajdować się w katalogu% APPDATA% / Notepad ++ lub w katalogu instalacyjnym Notepad ++ lub w chmurze, tzn. W DropBox, OneDrive lub GoogleDrive, jeśli masz włączoną opcję Ustawienia w chmurze.
Ian Stanway
Czy to działa w przypadku niestandardowych języków? Nie mogę znaleźć mojego nigdzie na liście.
Fabian Röling
1

Nie do końca o to prosisz, ale dotyczy twojego komentarza dotyczącego plików .txt jako plików Markdown. Jedną z możliwych opcji jest ustawienie Markdown jako języka dla wszystkich plików .txt.

Zakłada się, że markdown_npp jest zainstalowany. Edytuj następujące pliki na własne ryzyko (wykonaj kopię zapasową przed edycją tych plików):

  • Otwórz langs.xml z% appdata% \ Notepad ++
    • Usuń rozszerzenie txt z normalnego języka:
      • Przed: <Language name="normal" ext="txt" />
      • Po: <Language name="normal" ext="" />
  • Otwórz userDefineLang.xml z% appdata% \ Notepad ++
    • Dodaj rozszerzenie txt do języka Markdown:
      • Przed: <UserLang name="Markdown" ext="md">
      • Po: <UserLang name="Markdown" ext="md txt">
  • Uruchom ponownie Notepad ++
Mike Henry
źródło
działało dla mnie i był to jedyny sposób, aby uzyskać notatnik ++, aby trwale zapisać relację. dzięki
r3wt
0

Aby dodać stałe połączenie między rozszerzeniem a językiem, otwórz folder NPP (np. C:\Program hFiles\Notepad++), Jest tam kilka plików XML. Edytuj je (nie pamiętam, które dokładnie langs.xmllub langs.model.xml).

Przykład: <Language name="cpp" ext="h hpp hxx cpp cxx cc">

Znajdź żądany język i dodaj rozszerzenie.

Nie wiem jednak, jak zmienić to samo rozszerzenie w zależności od folderu.

jakub.g
źródło