diff --git a/README.md b/README.md index e028ccd0..0f4b0354 100644 --- a/README.md +++ b/README.md @@ -364,6 +364,13 @@ Shortcuts using `` instead of special characters: map sa zg map 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! diff --git a/install_awesome_vimrc.sh b/install_awesome_vimrc.sh index 7f722d4f..29466977 100755 --- a/install_awesome_vimrc.sh +++ b/install_awesome_vimrc.sh @@ -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 diff --git a/vimrcs/extended.vim b/vimrcs/extended.vim index 459b085a..e07045aa 100644 --- a/vimrcs/extended.vim +++ b/vimrcs/extended.vim @@ -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 == '' +" exec '! %' +" +" 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 :call CompileRun() +imap :call CompileRun() +vmap :call CompileRun() + +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