Last active
August 26, 2023 03:08
-
-
Save ZacharyThompson/28df5340c87c565e6d6f3c923a69777b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim' | |
if empty(glob(data_dir . '/autoload/plug.vim')) | |
silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' | |
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC | |
endif | |
call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged') | |
Plug 'tpope/vim-fugitive' | |
Plug 'tpope/vim-surround' | |
Plug 'numToStr/Comment.nvim' | |
Plug 'mbbill/undotree' | |
Plug 'nvim-treesitter/nvim-treesitter' | |
Plug 'neovim/nvim-lspconfig' | |
Plug 'jiangmiao/auto-pairs' | |
Plug 'shaunsingh/solarized.nvim' | |
Plug 'L3MON4D3/LuaSnip' | |
Plug 'hrsh7th/cmp-nvim-lsp' | |
Plug 'hrsh7th/cmp-buffer' | |
Plug 'hrsh7th/cmp-path' | |
Plug 'hrsh7th/nvim-cmp' | |
Plug 'saadparwaiz1/cmp_luasnip' | |
Plug 'rafamadriz/friendly-snippets' | |
call plug#end() | |
set title | |
set laststatus=2 | |
set mouse=a | |
set number | |
set relativenumber | |
set signcolumn=number | |
set smartindent | |
set undofile | |
set linebreak | |
set updatetime=50 | |
set laststatus=1 | |
set scrolloff=8 | |
" set tgc | |
set bg=dark | |
let mapleader = ' ' | |
nnoremap [q <cmd>cp<CR> | |
nnoremap ]q <cmd>cn<CR> | |
nnoremap [b <cmd>bp<CR> | |
nnoremap ]b <cmd>bn<CR> | |
nnoremap <leader>f <cmd>lua vim.lsp.buf.format()<CR> | |
nnoremap <leader>d <cmd>lua vim.lsp.buf.definition()<CR> | |
nnoremap <leader>h <cmd>lua vim.lsp.buf.hover()<CR> | |
nnoremap <leader>r <cmd>lua vim.lsp.buf.rename()<CR> | |
nnoremap <leader>ej <cmd>lua vim.diagnostic.goto_next()<CR> | |
nnoremap <leader>ek <cmd>lua vim.diagnostic.goto_prev()<CR> | |
nnoremap <leader>u <cmd>UndotreeToggle<CR> | |
hi Pmenu ctermbg=darkgray ctermfg=white | |
hi ColorColumn ctermbg=darkgray | |
au FileType c,cpp,go,python,rust setl cc=80 | |
au VimResized * wincmd = | |
" press <Tab> to expand or jump in a snippet. These can also be mapped separately | |
" via <Plug>luasnip-expand-snippet and <Plug>luasnip-jump-next. | |
imap <silent><expr> <Tab> luasnip#expand_or_jumpable() ? '<Plug>luasnip-expand-or-jump' : '<Tab>' | |
inoremap <silent> <S-Tab> <cmd>lua require'luasnip'.jump(-1)<Cr> | |
snoremap <silent> <Tab> <cmd>lua require('luasnip').jump(1)<Cr> | |
snoremap <silent> <S-Tab> <cmd>lua require('luasnip').jump(-1)<Cr> | |
lua << EOF | |
require('Comment').setup() | |
-- Treesitter | |
require("nvim-treesitter.configs").setup({ | |
highlight = { enable = true }, | |
ensure_installed = { "c", "cpp", "lua", "vim", "vimdoc", "query", "rust", "go", "python" }, | |
}) | |
-- LSP | |
local capabilities = require('cmp_nvim_lsp').default_capabilities() | |
local lspconfig = require('lspconfig') | |
lspconfig.rust_analyzer.setup{ | |
capabilities = capabilities, | |
} | |
lspconfig.clangd.setup{ | |
capabilities = capabilities, | |
} | |
lspconfig.gopls.setup{ | |
capabilities = capabilities, | |
} | |
lspconfig.pylsp.setup{ | |
capabilities = capabilities, | |
settings = { | |
pylsp = { | |
plugins = { | |
pycodestyle = { | |
ignore = {'W391'}, | |
maxLineLength = 100 | |
} | |
} | |
} | |
} | |
} | |
local luasnip = require('luasnip') | |
require("luasnip.loaders.from_vscode").lazy_load() | |
local cmp = require('cmp') | |
cmp.setup({ | |
snippet = { | |
expand = function(args) | |
luasnip.lsp_expand(args.body) | |
end, | |
}, | |
mapping = { | |
["<C-p>"] = cmp.mapping.select_prev_item(), | |
["<C-n>"] = cmp.mapping.select_next_item(), | |
["<C-d>"] = cmp.mapping.scroll_docs(-4), | |
["<C-f>"] = cmp.mapping.scroll_docs(4), | |
["<C-e>"] = cmp.mapping.close(), | |
["<C-y>"] = cmp.mapping.confirm { | |
behaviour = cmp.ConfirmBehavior.Insert, | |
select = true, | |
}, | |
}, | |
sources = cmp.config.sources({ | |
{name = "nvim_lsp", max_item_count = 15}, | |
{name = "path", max_item_count = 10}, | |
{name = "luasnip"}, | |
{name = "buffer", keyword_length = 1}, | |
}) | |
}) | |
EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment