require('config.prelude') require('config.cmd') require('config.lazy') require('config.filetype') require('config.keymap') require('config.extension') -- -- local cmd = vim.cmd -- local o_s = vim.o -- local map_key = vim.api.nvim_set_keymap -- local g = vim.g -- local api = vim.api -- local fn = vim.fn -- local ncmd = vim.api.nvim_command -- local o, wo, bo = vim.o, vim.wo, vim.bo -- -- local buffer = { o, bo } -- local window = { o, wo } -- -- -- local utils = require('utils') -- local map = utils.map -- local set = utils.set -- -- --vim.lsp.set_log_level('debug') -- -- Preset -- -- Prerequisites Must have neovim installed -- -- -- -- -- Ensure packer installed -- -- local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim' -- -- if fn.empty(fn.glob(install_path)) > 0 then -- -- fn.system({ 'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path }) -- -- cmd('packadd packer.nvim') -- -- end -- -- -- -- reopen last position -- -- cmd([[ autocmd BufReadPost * normal! g`" ]]) -- -- -- Shcemas and colors -- -- cmd([[ colorscheme tokyonight ]]) -- --set('background', 'dark') -- 主题背景 dark-深色; light-浅色 -- -- -- CMDs -- -- cmd [[syntax enable]] -- -- cmd [[syntax on]] -- 开启文件类型侦测 -- -- in makefiles, don't expand tabs to spaces, since actual tab characters are -- -- needed, and have indentation at 8 chars to be sure that all indents are tabs -- -- (despite the mappings later): -- -- -- auto compile packer -- -- cmd([[ -- -- augroup packer_user_config -- -- autocmd! -- -- autocmd BufWritePost plugins.lua source | PackerCompile -- -- augroup end -- -- ]]) -- -- autocmd BufRead,BufNewFile *.bean,*.beancount set filetype=beancount -- -- -- cmd [[command ShowBlank set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣]] -- -- -- Settings -- -- max timeout for common command -- set('timeoutlen', 1000) -- -- set number, cusor or line/column -- set('nu', true, window) -- set('rnu', true, window) -- set('cul', true, window) -- set('cuc', true, window) -- -- -- tab 缩进 -- -- set("tabstop", 4) -- 设置Tab长度为4空格 -- -- set("shiftwidth", 4) -- 设置自动缩进长度为4空格 -- -- set("autoindent", true) -- 继承前一行的缩进方式,适用于多行注释 -- -- set("colorcolumn", "80") -- 设置长度提示79 -- -- set('noswapfile', true) -- 不设置swap文件 -- -- set('showmatch', true) -- 显示括号匹配 -- set('mouse', 'a') -- set scroll mode -- set('langmenu', 'zh_CN.UTF-8') -- set('helplang', 'cn') -- set('encoding', 'utf-8') -- set('fencs', 'utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936') -- set('hidden', true) -- set('wildmenu', true) -- set('hlsearch', true) -- set('matchtime', 1) -- set('updatetime', 100) -- set('smarttab', true) -- set('expandtab', true) -- set('laststatus', 2) -- set('showcmd', true) -- set('ruler', true) -- set('history', 300) -- set('backup', false) -- set('swapfile', false) -- set('foldenable', false) -- set('autoread', true) -- set('autowrite', true) -- set('mouse', 'a') -- set('incsearch', true) -- 开启实时搜索 -- set('ignorecase', true) -- 搜索时大小写不敏感 -- -- set('number', true, window) -- -- set('relativenumber', true, window) -- set('cursorline', true, window) -- set('cursorcolumn', true, window) -- set('signcolumn', 'auto:2') -- -- -- set("textwidth", 120, buffer) -- set('smartindent', true, buffer) -- set('autoindent', true, buffer) -- set('cindent', true, buffer) -- set('shiftwidth', 4, buffer) -- set('softtabstop', 4, buffer) -- set('tabstop', 4, buffer) -- set('synmaxcol', 120) -- -- -- set autowrite -- -- set("backspace", "indent,eol,start") -- -- -- Key mappings -- -- map Leader key to -- -- g.mapleader = [[ ]] -- -- -- v 模式下复制内容到系统剪切板 -- map('v', 'cp', '"+yy') -- -- n 模式下复制一行到系统剪切板 -- map('n', 'cp', '"+yy') -- -- n 模式下粘贴系统剪切板的内容 -- map('n', 'v', '"+p') -- -- reload vimrc -- -- map('n', 'rv', ':source $MYVIMRC') -- -- -- insert mode mapping -- --map('i', '', 'b') -- --map('i', '', 'l') -- --map('i', '', 'j') -- --map('i', '', 'k') -- -- -- map('n', '', '') -- -- map('i', '', '') -- -- --map('i', '', '') -- --map('i', '', '') -- --map('i', '', '') -- --map('i', '', '') -- -- -- map('n', 'e', '1w') -- -- map('n', 'p', ':wincmd p') -- -- map('i', '', 'copilot#Accept()', { expr = true }) -- vim.g.copilot_no_tab_map = 1 -- vim.g.copilot_no_maps = 1 -- vim.g.copilot_assume_mapped = 1 -- -- -- -- require('plugins') -- -- -- Neoformat -- if not fn.executable('luafmt') then -- cmd([[ :!npm install -g lua-fmt]]) -- end -- -- -- barbar -- local opts = { noremap = true, silent = true } -- map('n', '=', ':BufferPick', opts) -- -- -- choosewin -- map('n', '-', '(choosewin)', { noremap = false }) -- -- -- sort go imports -- -- vim.api.nvim_create_autocmd('BufWritePre', { -- -- pattern = '*.go', -- -- callback = function() -- -- vim.lsp.buf.code_action({ context = { only = { 'source.organizeImports' } }, apply = true }) -- -- end -- -- }) -- -- -- Some configurations not able to migrate -- -- api.nvim_exec( -- -- [[ -- -- " set nocompatible -- -- "function! NearestMethodOrFunction() abort -- -- " return get(b:, 'vista_nearest_method_or_function', '') -- -- "endfunction -- -- " -- -- "set statusline+=%{NearestMethodOrFunction()} -- -- ]], -- -- false -- -- )