Created
October 7, 2023 13:44
-
-
Save zorchp/71ba10706d426838881e2bbe6e1e5cc2 to your computer and use it in GitHub Desktop.
one file compile on nvim by using one key, such as `F7` and `F8`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| local function CodeRunner() | |
| --[===[========================== Global ===========================]===] | |
| vim.api.nvim_create_autocmd({ "InsertLeave" }, { | |
| callback = function() | |
| vim.fn.execute("silent! write") | |
| -- vim.notify("Autosaved!", vim.log.levels.INFO, {}) | |
| end, | |
| }) | |
| --[===[========================== Static ===========================]===] | |
| vim.api.nvim_create_autocmd("FileType", { | |
| pattern = "c", | |
| callback = function() | |
| -- -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "n", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te gcc-13 -Wshadow -Wall -std=c11 -o %:p:r.out %:p && time %:p:r.out<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "n", | |
| "<F8>", | |
| "<ESC>:w<CR>:split<CR>:te clang -Wshadow -Wall -std=c11 -o %:p:r.out %:p -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG && time %:p:r.out<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "i", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te gcc-13 -Wshadow -Wall -std=c11 -o %:p:r.out %:p && time %:p:r.out<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "i", | |
| "<F8>", | |
| "<ESC>:w<CR>:split<CR>:te clang -Wshadow -Wall -std=c11 -o %:p:r.out %:p -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG && time %:p:r.out<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| end, | |
| }) | |
| vim.api.nvim_create_autocmd("FileType", { | |
| pattern = "cpp", | |
| callback = function() | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "n", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te g++-13 -std=c++2a -Wshadow -Wall -o %:p:r.out %:p && time %:p:r.out<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "n", | |
| "<F8>", | |
| "<ESC>:w<CR>:split<CR>:te clang++ -std=c++2a -Wshadow -Wall -o %:p:r.out %:p -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG && time %:p:r.out<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "i", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te g++-13 -std=c++2a -Wshadow -Wall -o %:p:r.out %:p && time %:p:r.out<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "i", | |
| "<F8>", | |
| "<ESC>:w<CR>:split<CR>:te clang++ -std=c++2a -Wshadow -Wall -o %:p:r.out %:p -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG && time %:p:r.out<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| end, | |
| }) | |
| --[===[=========================== Script ==========================]===] | |
| -- | |
| vim.api.nvim_create_autocmd("FileType", { | |
| pattern = "python", | |
| callback = function() | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "n", | |
| "<F8>", | |
| ":w<CR>:split<CR>:te time /opt/homebrew/Caskroom/miniforge/base/envs/py3x/bin/python3 %:p <CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "i", | |
| "<F8>", | |
| "<ESC>:w<CR>:split<CR>:te time /opt/homebrew/Caskroom/miniforge/base/envs/py3x/bin/python3 %:p <CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| end, | |
| }) | |
| vim.api.nvim_create_autocmd("FileType", { | |
| pattern = "lua", | |
| callback = function() | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "i", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te lua %<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "n", | |
| "<F7>", | |
| ":w<CR>:split<CR>:te lua %<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| end, | |
| }) | |
| vim.api.nvim_create_autocmd("FileType", { | |
| pattern = "make", | |
| callback = function() | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "i", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te make <CR>i", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "i", | |
| "<F8>", | |
| "<ESC>:w<CR>:split<CR>:te make clean<CR>i", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "n", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te make <CR>i", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "n", | |
| "<F8>", | |
| "<ESC>:w<CR>:split<CR>:te make clean<CR>i", | |
| { silent = true, noremap = true } | |
| ) | |
| end, | |
| }) | |
| vim.api.nvim_create_autocmd("FileType", { | |
| pattern = "cmake", | |
| callback = function() | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "n", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te cmake .<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| end, | |
| }) | |
| vim.api.nvim_create_autocmd("FileType", { | |
| pattern = "shell", | |
| callback = function() | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "i", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te bash %<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "n", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te bash %<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| end, | |
| }) | |
| --[===[==================== TypeWritting ===================]===] | |
| -- | |
| vim.api.nvim_create_autocmd("FileType", { | |
| pattern = "tex", | |
| callback = function() | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "i", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te latexmk %<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| vim.api.nvim_buf_set_keymap( | |
| 0, | |
| "n", | |
| "<F7>", | |
| "<ESC>:w<CR>:split<CR>:te latexmk %<CR>", | |
| { silent = true, noremap = true } | |
| ) | |
| end, | |
| }) | |
| end | |
| CodeRunner() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment