ฉันแค่ทำการทดสอบด้วยคุณสมบัติภาษา JavaScript โดยไม่ต้องจัดการ DOM ดังนั้นฉันจึงแก้ไขไฟล์ js และฉันสงสัยว่าจะรันและแสดงเอาต์พุตคอนโซลได้อย่างไร ฉันติดตั้งปลั๊กอินmoll / vim-nodeแต่ไม่ทราบวิธีการเรียกใช้รหัส js
ฉันแค่ทำการทดสอบด้วยคุณสมบัติภาษา JavaScript โดยไม่ต้องจัดการ DOM ดังนั้นฉันจึงแก้ไขไฟล์ js และฉันสงสัยว่าจะรันและแสดงเอาต์พุตคอนโซลได้อย่างไร ฉันติดตั้งปลั๊กอินmoll / vim-nodeแต่ไม่ทราบวิธีการเรียกใช้รหัส js
คำตอบ:
สำหรับรายการvim wikiaนี้คุณสามารถสร้างการประมวลผลเชลล์ไปยังสคริปต์บัฟเฟอร์ใหม่จากนั้นขยายเพื่อเรียกใช้โค้ดของคุณโดยใช้โหนด
command! -complete=shellcmd -nargs=+ Shell call s:RunShellCommand(<q-args>)
function! s:RunShellCommand(cmdline)
let isfirst = 1
let words = []
for word in split(a:cmdline)
if isfirst
let isfirst = 0 " don't change first word (shell command)
else
if word[0] =~ '\v[%#<]'
let word = expand(word)
endif
let word = shellescape(word, 1)
endif
call add(words, word)
endfor
let expanded_cmdline = join(words)
botright new
setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile nowrap
call setline(1, 'You entered: ' . a:cmdline)
call setline(2, 'Expanded to: ' . expanded_cmdline)
call append(line('$'), substitute(getline(2), '.', '=', 'g'))
silent execute '$read !'. expanded_cmdline
1
endfunction
command! -complete=file -nargs=* RunJS call s:RunShellCommand('node '.<q-args>)
จากนั้นหากคุณรัน:RunJS %
คุณควรได้รับบัฟเฟอร์ใหม่พร้อมกับเอาต์พุตของการเรียกใช้งาน node.js ของคุณ คุณสามารถเลือกใช้สิ่งต่าง ๆ ได้โดยตรง:Shell <cmd>
ฉันคิดว่าCodiเป็นสิ่งที่คุณกำลังมองหา รองรับ JavaScript และภาษาอื่น ๆ
ไม่จำเป็นต้องใช้ปลั๊กอิน! คุณสามารถเรียกใช้โหนดด้วยคำสั่งเชลล์:!
เรียกใช้ไฟล์ทั้งหมดด้วย :!/usr/local/bin/node %
รันบรรทัดปัจจุบันด้วย :exec '!/usr/local/bin/node' '-e' shellescape(getline('.'))
ฉันขอแนะนำhttps://github.com/Shougo/vimshell.vimสำหรับวัตถุประสงค์นี้
ปลั๊กอินเสียงเรียกเข้าที่ให้คุณเรียกใช้เทอร์มินัลภายในกลุ่ม คุณสามารถเปิดเครื่องในแท็บใหม่ด้วย
:VimShellTab
หรือหน้าต่างแก้ไขด่วนด้วย
:VimShellPop
จากนั้นคุณสามารถเรียกใช้คำสั่งได้ตามปกติเช่น
node
:!node %
คุณสามารถลองสิ่งที่ต้องการ สิ่งนี้จะเชลล์ออกไปยังnode
โปรแกรมภายนอกส่งผ่านชื่อไฟล์ปัจจุบันเป็นอาร์กิวเมนต์ เอาต์พุตจะปรากฏบนหน้าจอและคุณสามารถกด Enter เพื่อยกเลิก