Як я можу запустити javascript безпосередньо та показати вихід?


11

Я просто тестую функцію мови JavaScript без маніпуляцій з DOM. Тож я редагую js-файл і мені цікаво, як просто запустити його та показати вихід консолі? Я встановив плагін moll / vim-node , але не маю ідеї, як запустити js-код.


3
Можна спробувати щось на кшталт :!node %. Це виявиться для зовнішньої nodeпрограми, передаючи поточне ім'я файлу як аргумент. Виведення відображатиметься на екрані, і ви можете натиснути Enter, щоб відхилити його.
tommcdo

Коментар, поданий вище @tommcdo, є хорошим стислим рішенням, яке задовольнило все, що я намагався досягти за допомогою більш складних засобів, таких як шлам та інше.
Джеронім

Відповіді:


5

Згідно з цим записом 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>


4

Я думаю, що Коді - це те, що ти шукаєш. Він підтримує JavaScript та деякі інші мови.

введіть тут опис зображення


4

Плагін не потрібен! Ви можете запустити вузол за допомогою команди оболонки:!

Запустіть весь файл за допомогою :!/usr/local/bin/node %

Запустіть поточний рядок за допомогою :exec '!/usr/local/bin/node' '-e' shellescape(getline('.'))


0

Я настійно рекомендую https://github.com/Shougo/vimshell.vim для цієї мети.

Це плагін vim, який дозволяє запустити термінал в межах vim. Ви можете відкрити термінал на новій вкладці за допомогою

:VimShellTab

або вікно швидкого виправлення з

:VimShellPop

тоді ви можете запускати команди як зазвичай, тобто

node
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.