local install_path = vim.fn.stdpath 'data' .. '/site/pack/packer/start/packer.nvim'
if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
vim.fn.execute('!git clone https://github.com/wbthomason/packer.nvim ' .. install_path)
end
local packer_group = vim.api.nvim_create_augroup('Packer', { clear = true })
require("packer").startup(function()
use "wbthomason/packer.nvim"
use "airblade/vim-gitgutter"
use "NLKNguyen/papercolor-theme"
use "hrsh7th/cmp-nvim-lsp"
use "hrsh7th/nvim-cmp"
use "neovim/nvim-lspconfig"
use "onsails/lspkind-nvim"
use "quangnguyen30192/cmp-nvim-ultisnipsips"
use "williamboman/nvim-lsp-installer"
end)
local lspconfig = require("lspconfig")
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
local servers = { "pylsp" }
for _, lsp in ipairs(servers) do
lspconfig[lsp].setup {
capabilities = capabilities
}
end
-- nvim-cmp setup
local cmp = require 'cmp'
cmp.setup {
mapping = cmp.mapping.preset.insert({
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = true,
},
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
else
fallback()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
else
fallback()
end
end, { 'i', 's' }),
}),
sources = {
{ name = 'nvim_lsp' },
},
}
--HOME = os.getenv("HOME")
vim.o.encoding = "utf-8"
vim.o.ffs = "unix,dos,mac"
vim.o.autoread = true
vim.o.background = "dark"
vim.o.list = true
vim.o.hidden = true
vim.o.mouse = "a"
vim.o.autoindent = true
vim.o.breakindent = true
vim.o.smartindent = true
vim.o.expandtab = true
vim.o.shiftround = true
vim.o.shiftwidth = 4
vim.o.wrap = false
vim.o.swapfile = false
vim.o.backup = false
vim.o.writebackup = false
vim.o.cmdheight = 2
vim.o.updatetime = 250
vim.wo.number = true
vim.o.relativenumber = false
vim.o.cursorline = true
vim.o.ruler = true
vim.o.scrolloff = 4
vim.o.sidescrolloff = 4
vim.o.hlsearch = true
vim.o.incsearch = true
vim.o.ignorecase = true
vim.o.smartcase = true
vim.o.completeopt = "menuone,noinsert,noselect"
vim.o.wildmode = "list,longest"
vim.o.termguicolors = true
vim.o.showcmd = true
vim.o.showmode = true
vim.o.showmatch = true
vim.o.errorbells = false
vim.o.visualbell = false
vim.g.mapleader = ","
vim.api.nvim_set_keymap(
"n",
"<leader>w",
":w!<CR>",
{ noremap = false }
)
vim.api.nvim_set_keymap(
"n",
"<leader>/",
":noh<CR>",
{ noremap = true, silent = true }
)
vim.api.nvim_set_keymap(
"n",
"<S-u>",
":redo<CR>",
{ noremap = false }
)