以下代码添加到options.lua中,应该用lua的语法来写,但是我不擅长,只能在lua中调用vimscript的代码了。
如果是vim的话就把那个vim.cmd([[]])去掉就好啦
vim.cmd([[
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java,*.go exec ":call SetTitle()"
"""定义函数SetTitle,自动插入文件头
func SetTitle()
"如果文件类型为.sh文件
if &filetype == 'sh'
call setline(1,"\#########################################################################")
call append(line("."), "\# File Name: ".expand("%"))
call append(line(".")+1, "\# Author: jili")
call append(line(".")+2, "\# mail: jiliqian805@gmail.com")
call append(line(".")+3, "\# Created Time: ".strftime("%c"))
call append(line(".")+4, "\#########################################################################")
call append(line(".")+5, "\#!/bin/bash")
call append(line(".")+6, "")
else
call setline(1, "/* ************************************************************************")
call append(line("."), "> File Name: ".expand("%"))
call append(line(".")+1, "> Author: JiLi")
call append(line(".")+2, "> mail: jiliqian805@gmail.com")
call append(line(".")+3, "> Created Time: ".strftime("%c"))
call append(line(".")+4, "> Description: ")
call append(line(".")+5, " ************************************************************************/")
call append(line(".")+6, "")
endif
"新建文件后,自动定位到文件末尾
autocmd BufNewFile * normal G
endfunc
]])
vim.cmd([[
autocmd BufNewFile *.h,*.hpp exec ":call AddHHeader()"
func AddHHeader()
let macro = "_".toupper(substitute(expand("%"), "[/.]", "_", "g"))."_"
"normal o
call setline(9, "#ifndef ".macro)
call setline(10, "#define ".macro)
call setline(11, "")
call setline(12, "#endif // ".macro)
endfunc
]])
-- 保存指针位置
vim.cmd([[
if has("autocmd")
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g'\"" |
\ endif
endif
]])
<leader> + r一键运行
vim.api.nvim_create_autocmd("FileType", {
pattern = "cpp",
callback = function()
vim.api.nvim_buf_set_keymap(
0,
"n",
"<leader>r",
"<ESC>:w<CR>:split<CR>:te g++ -std=c++17 -pthread -Wall -o ./bin/%:t:r % -g && ./bin/%:t:r<CR>i",
{ silent = true, noremap = true }
)
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "c",
callback = function()
vim.api.nvim_buf_set_keymap(
0,
"n",
"<leader>r",
"<ESC>:w<CR>:split<CR>:te gcc -std=c11 -pthread -Wall -o ./bin/%:t:r % -g && ./bin/%:t:r<CR>i",
{ silent = true, noremap = true }
)
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "java",
callback = function()
vim.api.nvim_buf_set_keymap(
0,
"n",
"<leader>r",
"<ESC>:w<CR>:split<CR>:te javac % -d ./bin && java -cp ./bin %:t:r <CR>i",
{ silent = true, noremap = true }
)
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "python",
callback = function()
vim.api.nvim_buf_set_keymap(
0,
"n",
"<leader>r",
"<ESC>:w<CR>:split<CR>:te python3 % <CR>i",
{ silent = true, noremap = true }
)
end,
})
保存自动格式化
vim.cmd [[autocmd BufWritePre <buffer> lua vim.lsp.buf.format()]]

被折叠的 条评论
为什么被折叠?



