จะเรียกใช้ไฟล์ HTML จาก Notepad ++ ได้อย่างไร?


7

ฉันต้องการเรียกใช้หน้า HTML ดังนั้นฉันจึงกำหนดค่าExecute / F5คำสั่งดังนี้:

chrome.exe http://localhost:8080/$(FILE_NAME)

มันทำงานได้เมื่อไฟล์ HTML อยู่ในรูทของเวิร์กสเปซของฉัน (เนื่องจากเว็บเซิร์ฟเวอร์ HTTP ของฉันถูกตั้งค่าให้ทำ) แต่จะไม่ทำงานเมื่อไฟล์อยู่ในโฟลเดอร์ย่อย

มีตัวแปรที่กำหนดไว้ล่วงหน้า (เช่น$(RELATIVE_PATH)) ที่สามารถใช้เพื่อรับพา ธ ไฟล์ที่สัมพันธ์กับไดเรกทอรีเวิร์กสเปซหรือไม่

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือของคุณ


3
ไม่Run-> Launch in Chromeไม่ได้ช่วยคุณได้อย่างไร
Burgi

4
หากคุณกำลังใช้ PHP, คุณสามารถใช้http://localhost:8080/redirect.php?file=/$(FULL_CURRENT_PATH)ที่redirect.phpจะปิดส่วนที่มากเกินไป ดูบทความการกำหนดค่า Notepad ++ เพื่อเรียกใช้ PHP ใน localhost
harrymc

1
คำตอบที่คล้ายกันคือการใช้ไฟล์. bat เพื่อทำการจัดการสตริงและเรียก Chrome ง่าย ๆ ถ้าคุณสนใจ
harrymc

@Supersharp Ctrl + Shift + Alt + R
เลิกทำ

คำตอบ:


1

ในฐานะปัจจุบันของ Notepad ++ รุ่น 6.9.1 ปัญหาเกี่ยวกับไฟล์ในพา ธ ของโฟลเดอร์ย่อยในเว็บเซิร์ฟเวอร์ยังไม่ได้รับการแก้ไข $(FULL_CURRENT_PATH)ตัวแปรเฉพาะสำหรับเส้นทางไฟล์

ตรวจสอบ: การกำหนดค่า Notepad ++ ที่จะใช้ PHP ใน localhost

บางทีปัญหานี้จะได้รับการแก้ไขในรุ่นอนาคตของ Notepad ++


@Supersharp ไม่ได้อ่านส่วนความคิดเห็นสำหรับตัวแปรสภาพแวดล้อมตรวจสอบที่นี่: docs.notepad-plus-plus.org/index.php/Defining_User_Commands
iSR5

1
@Supersharp ยังมีประโยชน์เช่นนี้: docs.notepad-plus-plus.org/index.php/External_Programs
iSR5

5

แทนที่จะใช้ Chrome โดยตรงคุณสามารถใช้ไฟล์. bat

ด้านล่างนี้เป็นไฟล์. bat หนึ่งเวอร์ชันที่ควรเรียกใช้งานใน Notepadd ++ ดังนี้:

"path\to\file.bat" "$(FULL_CURRENT_PATH)"

สำหรับ Windows ที่มีรูทเอกสารอยู่C:\inetpub\wwwrootไฟล์. bat คือ:

@echo off
set "param=%~1"
set "url=http://localhost/%param:C:\inetpub\wwwroot\=%"
start "" chrome.exe "%url%"

ไวยากรณ์ DOS ทั่วไปที่ใช้ด้านบนเพื่อแทนที่สตริงในตัวแปรคือ:

"%variable-name:search-string=replacement-string%"

ในกรณีของเราreplacement-stringว่างเปล่า

ไฟล์. bat แบบง่ายนี้สามารถปรับปรุงให้ยอมรับสตริงC:\inetpub\wwwroot\เป็นพารามิเตอร์ตัวที่สองและอื่น ๆ ได้อย่างง่ายดาย

ไฟล์แบตช์อาจทำให้หน้าต่าง DOS สีดำปรากฏขึ้นชั่วขณะจะหายไปทันทีที่เปิดตัว Chrome หากยังน่ารำคาญเกินไปให้ดูคำตอบนี้


1

Python Solution

ด้วยปลั๊กอิน Np ++ แม้กระทั่งปาฏิหาริย์ก็สามารถทำได้ ฉันเขียนสคริปต์ Python Np ++ แบบธรรมดาที่ใช้ฟังก์ชันนี้ได้อย่างสมบูรณ์ โซลูชันนี้ต้องการ Notepad ++ และปลั๊กอิน PythonScript เท่านั้น

  1. ติดตั้ง Python Script จากโปรแกรมเสริม> โปรแกรมจัดการปลั๊กอิน
  2. ปลั๊กอิน> สคริปต์ Python> สคริปต์ใหม่
  3. ตั้งชื่อมันว่า "OpenInBrowser.py" (ตัวอย่าง) และวางสคริปต์: http://pastebin.com/wS4jThcp
  4. ในสคริปต์จำในการกำหนดค่าของคุณbrowserExeFullPath , browserUrlและหน้าเว็บของคุณrootDir (ตามที่ index.html ระดับบนสุดจะอยู่ที่ใด)
  5. ปลั๊กอิน> สคริปต์ Python> การกำหนดค่าและเพิ่มสคริปต์ผู้ใช้ของคุณไปที่เมนู (รายการด้านซ้าย)
  6. รีสตาร์ท Notepad ++, การตั้งค่า> ตัวเลือกทางลัด> คำสั่งปลั๊กอินและจับคู่สคริปต์ของคุณกับคีย์เช่น F9 ตอนนี้กดปุ่มนั้นเพื่อเปิดเอกสารที่ใช้งานของคุณในเบราว์เซอร์ ไม่ต้องใช้โซลูชันภายนอก

ฉันไม่สามารถติดตั้งปลั๊กอิน "Python Script" บน NPP 6.9.1
Supersharp

ปัญหาอะไรกันแน่ ฉันไม่มีปัญหาในการติดตั้งบน 6.9.1 ด้วยตัวจัดการปลั๊กอิน - เพิ่งตรวจสอบ หรือคุณสามารถลองติดตั้งด้วยตนเองได้จากnpppythonscript.sourceforge.net/download.shtml
pKami

1
ฉันดาวน์โหลดล้มเหลว 4 ครั้ง ฉันจะไม่ทำตามวิธีแก้ปัญหานี้เพราะฉันไม่ต้องการที่จะติดตั้งล่ามตัวอื่น (ถือ JVM, CLR, Node, เชลล์ Windows '... ) แต่ฉัน upvoted เพราะมันอาจเป็นวิธีการแก้ปัญหาล่วงหน้าสำหรับผู้ใช้ Pyhton
Supersharp

0

โซลูชัน Node.js

จากความคิดเห็นแรกของ @ harrymc ฉันได้ทำการแก้ปัญหา PHP กับเซิร์ฟเวอร์โหนดของฉัน

1 °ใน Notepad ++ :

เปลี่ยน<Command>เนื้อหาในไฟล์shortcuts.xml(คุณสามารถค้นหาได้ภายใต้โฟลเดอร์%appdata%/Notepad++) ตัวอย่างเช่น:

chrome http://localhost:8080/npp?path=$(FULL_CURRENT_PATH) 

2 °ใน Node.js :

เพิ่มเส้นทางในสคริปต์เซิร์ฟเวอร์ ( server.js) เพื่อจัดการคำขอ HTTP GET:

//redirection for Notepad++
app.get( '/npp', function ( req, res ) 
{
    res.redirect( req.query.path.substr( __dirname.length + 8 ) )
} )

ที่อยู่:

  • appคือองค์ประกอบExpressของฉัน( app = express())
  • +8/public/เป็นสิ่งจำเป็นเพราะหน้าเว็บของฉันจะอยู่ในโฟลเดอร์ย่อย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.