Как заставить Notepad ++ запускать скрипт на основе его имени? - PullRequest
16 голосов
/ 09 июля 2009

Я хочу, чтобы notepad ++ запускал команду "ruby {filename_here}", если текущее имя файла заканчивается на .rb, и "perl {filename_here}", если оно заканчивается на .pl. Я пытался использовать плагин NppExec, но он не может делать условные вещи, поэтому я написал bat

@echo off

if /i %~sx1 == .pl perl "%~f1"
if /i %~sx1 == .rb ruby "%~f1"
if /i %~sx1 == .php php "%~f1"

Теперь я могу использовать его из командной строки, например C: \ Program Files \ Notepad ++> runScript "D \ pl.pl", и он отлично работает. Теперь, как мне связать какой-нибудь ключ в Notepad ++ с "runcript $ (FULL_CURRENT_PATH)"? Я пытался использовать меню «Выполнить» -> «Выполнить» (F5), но, похоже, оно не работает ..

Ответы [ 5 ]

21 голосов
/ 04 августа 2009

Вам нужно поставить имя файла в конце команды. В диалоговом окне «Выполнить (F5)» попробуйте следующее:

runscript $(FULL_CURRENT_PATH)

Если вы хотите проверить это, вы можете поставить & pause в конце, просто чтобы посмотреть, сработало ли оно.

Вы также можете немного настроить свой сценарий, чтобы каждый файл не тестировался для каждого расширения, используя команду dreaded GOTO с метками расширения файла:

@echo off
GOTO %~sx1
:.pl
  perl "%~f1"
  GOTO end
:.rb
  ruby "%~f1"
  GOTO end
:.php
  php "%~f1"
  GOTO end
:end
6 голосов
/ 27 ноября 2012

В notepad ++ версии 6.2, работающем в Windows, просто используйте "$ (FULL_CURRENT_PATH)" * с кавычками, поэтому файл будет открыт с помощью программы по умолчанию, связанной с файлом. Поэтому убедитесь, что «edit with notepad ++» - это NOT действие двойного щелчка по умолчанию.

5 голосов
/ 04 ноября 2011

У меня были проблемы с тем, чтобы он работал так, чтобы окно оболочки оставалось открытым, пока я смотрю на то, что он сделал. Помещение «& pause» в конце не помогло, пока я не добавил cmd /c в начале:

cmd /c c:\php\php.exe -l "$(FULL_CURRENT_PATH)" & pause

Для сохранения результатов команды на экране вы можете использовать ключ / k, как предложил Джордж: cmd /k c:\php\php.exe -l "$(FULL_CURRENT_PATH)"

Это прекрасно работает, я использую его для быстрой проверки синтаксиса в Notepad ++.

1 голос
/ 11 марта 2013

Существует плагин RunMe , который может открывать текущий файл в программе по умолчанию. Это лучшее решение, чем команда «$ (FULL_CURRENT_PATH)», поскольку она заменяет текущий каталог на путь к файлу, и эта команда запускает файл по пути N ++.

1 голос
/ 25 ноября 2010

Вы можете попробовать npp_exec, используя следующий скрипт:

NPP_SAVE
SET Executer = execute$(EXT_PART)
NPP_EXEC "$(Executer)"

А затем используйте скрипт с именем execute.rb:

perl $(FULL_CURRENT_PATH) //or something like that

этот метод описан здесь

...