Run code directly from vim (#594)
This commit is contained in:
parent
e1f237cb6c
commit
a8f0b6f678
3 changed files with 63 additions and 1 deletions
|
@ -364,6 +364,13 @@ Shortcuts using `<leader>` instead of special characters:
|
|||
map <leader>sa zg
|
||||
map <leader>s? z=
|
||||
|
||||
### Running Code
|
||||
To run code directly from vim, press `F5`. The currently open code will execute without you having to type anything.
|
||||
|
||||
Can be used to execute code written in C, C++, Java, Python, Go, Octave, Bash scripts and HTML. To edit how you want your code to be executed, make changes in the file
|
||||
```
|
||||
~/vim_runtime/vimrcs/extended.vim
|
||||
```
|
||||
|
||||
### Cope
|
||||
Query `:help cope` if you are unsure what cope is. It's super useful!
|
||||
|
|
|
@ -12,7 +12,6 @@ source ~/.vim_runtime/vimrcs/basic.vim
|
|||
source ~/.vim_runtime/vimrcs/filetypes.vim
|
||||
source ~/.vim_runtime/vimrcs/plugins_config.vim
|
||||
source ~/.vim_runtime/vimrcs/extended.vim
|
||||
|
||||
try
|
||||
source ~/.vim_runtime/my_configs.vim
|
||||
catch
|
||||
|
|
|
@ -172,3 +172,59 @@ endfunc
|
|||
func! CurrentFileDir(cmd)
|
||||
return a:cmd . " " . expand("%:p:h") . "/"
|
||||
endfunc
|
||||
|
||||
"=================================================================================
|
||||
"
|
||||
" Following file contains the commands on how to run the currently open code.
|
||||
" The default mapping is set to F5 like most code editors.
|
||||
" Change it as you feel comfortable with, keeping in mind that it does not
|
||||
" clash with any other keymapping.
|
||||
"
|
||||
" NOTE: Compilers for different systems may differ. For example, in the case
|
||||
" of C and C++, we have assumed it to be gcc and g++ respectively, but it may
|
||||
" not be the same. It is suggested to check first if the compilers are installed
|
||||
" before running the code, or maybe even switch to a different compiler.
|
||||
"
|
||||
" NOTE: Adding support for more programming languages
|
||||
"
|
||||
" Just add another elseif block before the 'endif' statement in the same
|
||||
" way it is done in each case. Take care to add tabbed spaces after each
|
||||
" elseif block (similar to python). For example:
|
||||
"
|
||||
" elseif &filetype == '<your_file_extension>'
|
||||
" exec '!<your_compiler> %'
|
||||
"
|
||||
" NOTE: The '%' sign indicates the name of the currently open file with extension.
|
||||
" The time command displays the time taken for execution. Remove the
|
||||
" time command if you dont want the system to display the time
|
||||
"
|
||||
"=================================================================================
|
||||
|
||||
map <F5> :call CompileRun()<CR>
|
||||
imap <F5> <Esc>:call CompileRun()<CR>
|
||||
vmap <F5> <Esc>:call CompileRun()<CR>
|
||||
|
||||
func! CompileRun()
|
||||
exec "w"
|
||||
if &filetype == 'c'
|
||||
exec "!gcc % -o %<"
|
||||
exec "!time ./%<"
|
||||
elseif &filetype == 'cpp'
|
||||
exec "!g++ % -o %<"
|
||||
exec "!time ./%<"
|
||||
elseif &filetype == 'java'
|
||||
exec "!javac %"
|
||||
exec "!time java %"
|
||||
elseif &filetype == 'sh'
|
||||
exec "!time bash %"
|
||||
elseif &filetype == 'python'
|
||||
exec "!time python3 %"
|
||||
elseif &filetype == 'html'
|
||||
exec "!google-chrome % &"
|
||||
elseif &filetype == 'go'
|
||||
exec "!go build %<"
|
||||
exec "!time go run %"
|
||||
elseif &filetype == 'matlab'
|
||||
exec "!time octave %"
|
||||
endif
|
||||
endfunc
|
||||
|
|
Loading…
Reference in a new issue