From a0085913addf01a58ec1abce5be6e8d40679c787 Mon Sep 17 00:00:00 2001 From: Young Xu Date: Tue, 31 Jan 2023 00:33:04 +0800 Subject: [PATCH] first commit --- .gitignore | 1 + init.lua | 3 ++ lua/basic.lua | 70 ++++++++++++++++++++++++++++++++++++++++++ lua/plugins-config.lua | 8 +++++ lua/plugins.lua | 44 ++++++++++++++++++++++++++ 5 files changed, 126 insertions(+) create mode 100644 .gitignore create mode 100644 init.lua create mode 100644 lua/basic.lua create mode 100644 lua/plugins-config.lua create mode 100644 lua/plugins.lua diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8cb205e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +plugin diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..1333c22 --- /dev/null +++ b/init.lua @@ -0,0 +1,3 @@ +require('basic') +require('plugins') +require('plugins-config') diff --git a/lua/basic.lua b/lua/basic.lua new file mode 100644 index 0000000..8873b49 --- /dev/null +++ b/lua/basic.lua @@ -0,0 +1,70 @@ +-- 文件编码 +vim.g.encoding = "UTF-8" +vim.o.fileencoding = "utf-8" +-- 显示行号 +vim.wo.number = true +vim.wo.relativenumber = true +-- 高亮所在行 +vim.wo.cursorline = true +-- 显示左侧图标指示列 +vim.wo.signcolumn = "yes" +-- 右侧参考线,超过表示代码太长了,考虑换行 +vim.wo.colorcolumn = "120" +-- 缩进2个空格等于一个Tab +vim.opt.tabstop = 2 +vim.opt.shiftwidth = 2 +vim.opt.expandtab = true +vim.opt.autoindent = true +-- 新行对齐当前行 +vim.o.autoindent = true +vim.bo.autoindent = true +vim.o.smartindent = true +-- 搜索大小写不敏感,除非包含大写 +vim.o.ignorecase = true +vim.o.smartcase = true +-- 搜索不要高亮 +vim.o.hlsearch = false +-- 边输入边搜索 +vim.o.incsearch = true +-- 命令行高为2,提供足够的显示空间 +vim.o.cmdheight = 1 +-- 当文件被外部程序修改时,自动加载 +vim.o.autoread = true +vim.bo.autoread = true +-- 禁止折行 +vim.wo.wrap = false +-- 光标在行首尾时可以跳到下一行 +vim.o.whichwrap = "<,>,[,]" +-- 允许隐藏被修改过的buffer +vim.o.hidden = true +-- 鼠标支持 +vim.o.mouse = "a" +-- smaller updatetime +vim.o.updatetime = 300 +-- 设置 timeoutlen 为等待键盘快捷键连击时间500毫秒,可根据需要设置 +-- 遇到问题详见:https://github.com/nshen/learn-neovim-lua/issues/1 +vim.o.timeoutlen = 500 +-- split window 从下边和右边出现 +vim.o.splitbelow = true +vim.o.splitright = true +-- 自动补全不自动选中 +vim.g.completeopt = "menu,menuone,noselect,noinsert" +-- 样式 +vim.o.termguicolors = true +vim.opt.termguicolors = true +-- 是否显示不可见字符 +vim.o.list = false +-- 不可见字符的显示,这里只把空格显示为一个点 +vim.o.listchars = "space:·,tab:··" +-- 补全增强 +vim.o.wildmenu = true +-- Dont' pass messages to |ins-completin menu| +vim.o.shortmess = vim.o.shortmess .. "c" +-- 补全最多显示10行 +vim.o.pumheight = 10 +-- 永远显示 tabline +vim.o.showtabline = 2 +-- 使用增强状态栏插件后不再需要 vim 的模式提示 +vim.o.showmode = false +-- 配置剪切板 +vim.opt.clipboard = "unnamedplus" diff --git a/lua/plugins-config.lua b/lua/plugins-config.lua new file mode 100644 index 0000000..d047e70 --- /dev/null +++ b/lua/plugins-config.lua @@ -0,0 +1,8 @@ +require('nvim-tree').setup() +require('symbols-outline').setup() +require('feline').setup() +require('bufferline').setup() +require('go').setup() + +vim.o.background = "dark" -- or "light" for light mode +vim.cmd([[colorscheme gruvbox]]) diff --git a/lua/plugins.lua b/lua/plugins.lua new file mode 100644 index 0000000..a4ef619 --- /dev/null +++ b/lua/plugins.lua @@ -0,0 +1,44 @@ +return require('packer').startup(function() + -- Packer can manage itself + use 'wbthomason/packer.nvim' + -- nvim-tree + use { + 'nvim-tree/nvim-tree.lua', + requires = { + 'nvim-tree/nvim-web-devicons', -- optional, for file icons + }, + tag = 'nightly' -- optional, updated every week. (see issue #1193) + } + -- greeter + use { + 'goolord/alpha-nvim', + requires = { 'nvim-tree/nvim-web-devicons' }, + config = function () + require'alpha'.setup(require'alpha.themes.startify'.config) + end + } + -- theme + use { "ellisonleao/gruvbox.nvim" } + -- symbols outline + use 'simrat39/symbols-outline.nvim' + -- status tabbar + use 'feline-nvim/feline.nvim' + -- bufferline + use {'akinsho/bufferline.nvim', tag = "v3.*", requires = 'nvim-tree/nvim-web-devicons'} + -- golang ide + use 'ray-x/go.nvim' + use 'ray-x/guihua.lua' -- recommended if need floating window support + use 'neovim/nvim-lspconfig' + use 'nvim-treesitter/nvim-treesitter' + -- project manager + use { + "ahmedkhalf/project.nvim", + config = function() + require("project_nvim").setup { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + } + end +} +end)