Я просто тестую функцію мови 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>
Я настійно рекомендую https://github.com/Shougo/vimshell.vim для цієї мети.
Це плагін vim, який дозволяє запустити термінал в межах vim. Ви можете відкрити термінал на новій вкладці за допомогою
:VimShellTab
або вікно швидкого виправлення з
:VimShellPop
тоді ви можете запускати команди як зазвичай, тобто
node
:!node %
. Це виявиться для зовнішньоїnode
програми, передаючи поточне ім'я файлу як аргумент. Виведення відображатиметься на екрані, і ви можете натиснути Enter, щоб відхилити його.