Заставить Notepad ++ запомнить конкретный язык для конкретного файла?


10

У меня есть несколько файлов, которые я бы хотел раскрасить разными способами, даже если они имеют одинаковое расширение. Например, у меня есть файлы * .config, которые на самом деле являются файлами Python, а некоторые - файлами XML. Когда я открываю их, мне приходится вручную менять язык на Python или XML.

Было бы неплохо, если бы, например, Notepad ++ помнил, что c: \ foo \ bar \ whatevs.config должен использовать стиль Python, а c: \ hey \ ho \ boo.config должен использовать стиль XML.

Любой способ в Notepad ++ сказать "помните язык, который использовался в последний раз, когда файл был открыт"? Возможно, плагин?


Вы сталкиваетесь с проблемами где-то с использованием правильных расширений файлов?
iglvzx

1
У меня есть приложение Python, которое использует файлы .config, которые действительно являются файлами Python, а .NET использует файлы .config, которые действительно являются файлами XML. В качестве другого примера, у меня есть файлы уценки, которые используют расширение .txt, потому что они синхронизируются с приложением Android, которое не понимает, что такое файлы .md.
mhenry1384

Понимаю. Помнит ли он язык, который вы установили, когда закрываете Notepad ++ с открытым файлом, а затем снова открываете Notepad ++?
iglvzx

2
На самом деле это так, если вы отметили «Запомнить текущий сеанс для следующего запуска» (чего я не делаю). Но он забывает об этом, когда вы закрываете файл и снова открываете его.
mhenry1384

Ответы:


12

Существует опция графического интерфейса пользователя для установки статической связи между расширением файла и языком (вместо редактирования %APPDATA% langs.xmlфайла или %PROGRAMFILES% langs.model.xmlфайла вручную, как предложено @ jakub.g):

Если вы перейдете в «Настройки» -> «Конфигуратор стиля» -> выберите язык слева, то внизу экрана появятся два текстовых поля:

Конфигуратор стиля

В этом примере я добавил «config» в User ext.текстовое поле, поэтому каждый раз, когда я открываю файл с расширением .config, подсветка синтаксиса XML будет автоматически выбираться в меню «Язык».

Я знаю, что это не решает проблему запоминания того, какую подсветку синтаксиса применять к одному конкретному файлу, но это простой способ настроить подсветку для всех расширений файлов.

Если вы хотите запомнить выбор подсветки синтаксиса для отдельного файла, я думаю, что единственный вариант - установить флажок: Настройки -> Настройки -> MISC -> Запомнить текущий сеанс для следующего запуска.


это не спасает все же. как только вы закроете и снова откроете блокнот ++, изменения исчезнут.
r3wt

@ r3wt Полагаю, вам нужно, run as administratorиначе у него не будет разрешений для сохранения настроек в вашем профиле пользователя.
wweicker

Это не будет работать для встроенных расширений файлов. Вы должны вручную удалить расширение из ext части языка в файле langs.xml. Этот файл может находиться в папке% APPDATA% / Notepad ++ или в каталоге установки Notepad ++ или в вашем облачном хранилище, например DropBox, OneDrive или GoogleDrive, если у вас включен параметр «Настройки в облаке».
Ян Стенуэй

Это работает для пользовательских языков? Я не могу найти нигде в списке.
Фабиан

1

Это не совсем то, что вы просите, но относится к вашему комментарию относительно файлов .txt как файлов Markdown. Один из возможных вариантов - установить Markdown в качестве языка для всех файлов .txt.

Это предполагает, что markdown_npp установлен. Редактируйте следующие файлы на свой страх и риск (делайте резервные копии перед редактированием этих файлов):

  • Откройте файл langs.xml из% appdata% \ Notepad ++
    • Удалить расширение txt с обычного языка:
      • Перед: <Language name="normal" ext="txt" />
      • После: <Language name="normal" ext="" />
  • Откройте userDefineLang.xml из% appdata% \ Notepad ++
    • Добавьте расширение txt к языку разметки:
      • Перед: <UserLang name="Markdown" ext="md">
      • После: <UserLang name="Markdown" ext="md txt">
  • Перезапустите Блокнот ++

работал для меня, и это был единственный способ получить блокнот ++ для постоянного хранения отношений. спасибо
r3wt

0

Чтобы добавить фиксированную связь между расширением и языком, откройте папку NPP (например C:\Program hFiles\Notepad++), там есть несколько файлов XML. Отредактируйте их (я не помню какой именно langs.xmlили langs.model.xml).

Пример: <Language name="cpp" ext="h hpp hxx cpp cxx cc">

Найдите нужный язык и добавьте расширение.

Однако я не знаю, как сделать одно и то же расширение разным для каждой папки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.