-- noswap vim.o.swapfile = false vim.o.guifont = 'JetBrainsMono Nerd Font Mono:h14:sb' vim.o.list = false -- disable spell for pandoc vim.api.nvim_set_var('pandoc#spell#enabled', 0) -- markdown multi table format vim.g.table_mode_corner_corner = '+' vim.g.table_mode_header_fillchar = '=' -- markdown bullet and numbering indent vim.o.breakindentopt = 'list:-1' -- lsp border vim.o.winborder = 'rounded' sysname = vim.loop.os_uname().sysname isWindows = sysname == 'Windows_NT' isMac = sysname == 'Darwin' isLinux = sysname == 'Linux' -- neovide auto focus if vim.g.neovide then vim.defer_fn(function() vim.cmd 'NeovideFocus' end, 200) if isWindows then -- new neovide window in Windows vim.keymap.set('n', '', ':silent !neovide', { desc = 'Python', noremap = true, silent = true, }) vim.keymap.set('i', '', ':silent !neovide', { desc = 'Python', noremap = true, silent = true, }) else -- new neovide window in MACOS vim.keymap.set('n', '', ':silent !neovide', { desc = 'Python', noremap = true, silent = true, }) vim.keymap.set('i', '', ':silent !neovide', { desc = 'Python', noremap = true, silent = true, }) end else -- new nvim-qt window in Android vim.keymap.set('n', '', ':silent !nvim-qt', { desc = 'Python', noremap = true, silent = true, }) end if isWindows then vim.g.python3_host_prog = 'C:\\Users\\yokow\\miniforge3\\envs\\labs\\python.exe' end -- independent clipboard vim.opt.clipboard = '' -- set autoindent expandtab tabstop=2 shiftwidth=2 vim.o.autoindent = true vim.o.expandtab = true vim.o.tabstop = 2 vim.o.shiftwidth = 2 vim.o.smartindent = true vim.o.foldlevel = 20 vim.opt.confirm = true vim.g.have_nerd_font = true -- Enable line numbers (both absolute and relative) vim.wo.relativenumber = true -- "Keep it Centered -- Create nnoremap mappings vim.api.nvim_set_keymap('n', 'n', 'nzzzv', { noremap = true, silent = true, }) vim.api.nvim_set_keymap('n', 'N', 'Nzzzv', { noremap = true, silent = true, }) vim.o.hlsearch = true vim.api.nvim_set_keymap('n', 'cpr', ':CphReceive', { noremap = true, silent = false, desc = '[C]ompetitive [P]rogramming [R]eceive', }) vim.api.nvim_set_keymap('n', 'cpt', ':CphTest', { noremap = true, silent = false, desc = '[C]ompetitive [P]rogramming [T]est', }) -- save Cursor vim.cmd [[ autocmd BufReadPost * \ if @% !~# '\.git[\/\\]COMMIT_EDITMSG$' && \ line("'\"") > 1 && \ line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif ]] vim.o.encoding = 'utf-8' vim.g.markdown_fenced_languages = { 'html', 'python', 'lua', 'vim', 'typescript', 'javascript' } -- session options vim.opt.sessionoptions = { 'buffers', -- save all loaded buffers 'curdir', -- save current directory 'tabpages', -- save tab pages 'winsize', -- save window sizes 'terminal', -- save terminal state } -- Folding vim.o.foldmethod = 'indent' -- Save folds between sessions local viewdir = vim.fn.stdpath 'state' .. '/view' vim.o.viewdir = viewdir vim.o.viewoptions = 'cursor,folds' vim.fn.mkdir(viewdir, 'p') -- Close certain windows with x vim.api.nvim_create_autocmd('FileType', { pattern = { 'checkhealth', 'fugitive*', 'git', 'help', 'lspinfo', 'netrw', 'notify', 'qf', 'query' }, callback = function() vim.keymap.set('n', 'x', vim.cmd.close, { desc = 'Close the current buffer', buffer = true, }) end, }) -- Remember folds between sessions vim.api.nvim_create_augroup('remember_folds', { clear = true }) vim.api.nvim_create_autocmd('BufWinLeave', { group = 'remember_folds', pattern = '*', callback = function() vim.cmd 'silent! mkview' end, }) vim.api.nvim_create_autocmd('BufWinEnter', { group = 'remember_folds', pattern = '*', callback = function() pcall(vim.cmd, 'silent! loadview') end, }) return {}