Как я могу запустить 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>

jecxjo
источник
4

Я думаю, что Codi - это то, что вы ищете. Он поддерживает JavaScript и некоторые другие языки.

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

Tae
источник
3

Плагин не требуется! Вы можете запустить узел с помощью команды оболочки:!

Запустите весь файл с :!/usr/local/bin/node %

Запустить текущую строку с :exec '!/usr/local/bin/node' '-e' shellescape(getline('.'))

Nate
источник
0

Я очень рекомендую https://github.com/Shougo/vimshell.vim для этой цели.

Это плагин vim, который позволяет вам запустить терминал в vim. Вы можете открыть терминал в новой вкладке с

:VimShellTab

или окно быстрого исправления с

:VimShellPop

тогда вы можете запускать команды как обычно, т.е.

node
user3751385
источник