Created
September 25, 2022 15:17
-
-
Save matejsarlija/afb353605277a481c773581f50d36f6e to your computer and use it in GitHub Desktop.
My latest init.vim backup
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
call plug#begin(stdpath('data') . '/plugged') | |
Plug 'ryanoasis/vim-devicons' | |
" fugitive - git support | |
Plug 'tpope/vim-fugitive' | |
Plug 'shougu/unite.vim' | |
"autocompletion related | |
"Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } | |
"Plug 'deoplete-plugins/deoplete-lsp' | |
" Java support mb? | |
Plug 'baobaoit/beande' | |
" | |
"scala-metals + required | |
Plug 'hrsh7th/vim-vsnip' | |
Plug 'hrsh7th/nvim-cmp' | |
Plug 'hrsh7th/cmp-nvim-lsp' | |
Plug 'hrsh7th/cmp-vsnip' | |
Plug 'nvim-lua/plenary.nvim' | |
Plug 'scalameta/nvim-metals' | |
" tree icons | |
Plug 'ryanoasis/vim-devicons' | |
"neo js | |
Plug 'vimlab/neojs' | |
" " Conjure | |
Plug 'Olical/conjure' | |
" vim-racket | |
Plug 'wlangstroth/vim-racket' | |
"statusline - airline | |
Plug 'vim-airline/vim-airline' | |
Plug 'vim-airline/vim-airline-themes' | |
"brackets | |
Plug 'jiangmiao/auto-pairs' | |
" nerd tree | |
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } | |
" surround vim | |
Plug 'tpope/vim-surround' | |
" nerd commenter | |
Plug 'scrooloose/nerdcommenter' | |
" Python syntax extra | |
Plug 'vim-python/python-syntax' | |
"scala-metals + required | |
Plug 'hrsh7th/vim-vsnip' | |
Plug 'hrsh7th/nvim-cmp' | |
Plug 'hrsh7th/cmp-nvim-lsp' | |
Plug 'hrsh7th/cmp-vsnip' | |
Plug 'nvim-lua/plenary.nvim' | |
" colorscheme | |
Plug 'nanotech/jellybeans.vim' | |
Plug 'chriskempson/base16-vim' | |
Plug 'morhetz/gruvbox' | |
Plug 'w0ng/vim-hybrid' | |
Plug 'tpope/vim-vividchalk' | |
Plug 'jacoborus/tender.vim' | |
Plug 'zacanger/angr.vim' | |
Plug 'endel/vim-github-colorscheme' | |
Plug 'wimstefan/Lightning' | |
Plug 'jonathanfilip/vim-lucius' | |
Plug 'dikiaap/minimalist' | |
Plug 'tomasr/molokai' | |
Plug 'fmoralesc/molokayo' | |
Plug 'kyoz/purify' | |
Plug 'lifepillar/vim-solarized8' | |
Plug 'jaredgorski/spacecamp' | |
Plug 'marcopaganini/termschool-vim-theme' | |
Plug 'vim-scripts/twilight256.vim' | |
Plug 'vim-scripts/wombat256.vim' | |
Plug 'vim-scripts/pyte' | |
Plug 'vim-scripts/mayansmoke' | |
" glsl color | |
Plug 'tikhomirov/vim-glsl' | |
"themes | |
Plug 'drewtempelmeyer/palenight.vim' | |
Plug 'romainl/Apprentice' | |
Plug 'rakr/vim-one' | |
Plug 'jdsimcoe/abstract.vim' | |
call plug#end() | |
let g:airline#extensions#tabline#enabled = 1 | |
" ================ Suggestions ====================== | |
" show wild menu (menu of suggestions) when typing commands in command mode | |
set path+=** | |
set wildmenu | |
set showcmd | |
" ================ File management ================== | |
" Turn off swap files | |
set noswapfile | |
set nobackup | |
set nowb | |
" ================ Visualization ==================== | |
"syntax on | |
"set background=dark | |
if (has("termguicolors")) | |
set termguicolors | |
endif | |
hi clear | |
if exists("syntax_on") | |
syntax reset | |
endif | |
let g:python_highlight_all = 1 | |
syntax on | |
syntax enable | |
set background=dark | |
colorscheme one | |
"for syntax | |
" | |
" | |
"" ================ Indentation ====================== | |
set autoindent | |
set smartindent | |
set shiftwidth=4 | |
set tabstop=4 | |
set smarttab | |
set expandtab | |
" ================ Number column ==================== | |
" numbers | |
set number " see the line number column | |
" Toggle relative numbering, and set to absolute on loss of focus or insert mode | |
autocmd InsertEnter * :set nornu | |
autocmd InsertLeave * :set rnu | |
" we don't want to see relative numbering while debugging | |
" debugger uses its own window, so we can disable rnu when source window loses | |
" focus | |
autocmd BufLeave * :set nornu | |
autocmd BufEnter * call SetRNU() | |
function! SetRNU() | |
if(mode()!='i') | |
set rnu | |
endif | |
endfunction | |
" global | |
" | |
let mapleader = "," | |
let g:mapleader = "," | |
"F# | |
" configure deoplete | |
"let g:deoplete#enable_at_startup = 1 | |
"call deoplete#custom#option({ | |
" \ 'auto_complete_delay': 100, | |
" \ }) | |
" | |
" LSP | |
"----------------------------------------------------------------------------- | |
" nvim-lsp Mappings | |
"----------------------------------------------------------------------------- | |
nnoremap <silent> gd <cmd>lua vim.lsp.buf.definition()<CR> | |
nnoremap <silent> K <cmd>lua vim.lsp.buf.hover()<CR> | |
nnoremap <silent> gi <cmd>lua vim.lsp.buf.implementation()<CR> | |
nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR> | |
nnoremap <silent> gds <cmd>lua vim.lsp.buf.document_symbol()<CR> | |
nnoremap <silent> gws <cmd>lua vim.lsp.buf.workspac_symbol()<CR> | |
nnoremap <silent> <leader>rn <cmd>lua vim.lsp.buf.rename()<CR> | |
nnoremap <silent> <leader>f <cmd>lua vim.lsp.buf.formatting()<CR> | |
nnoremap <silent> <leader>ca <cmd>lua vim.lsp.buf.code_action()<CR> | |
nnoremap <silent> <space>d <cmd>lua vim.lsp.diagnostic.set_loclist()<CR> | |
nnoremap <silent> [c <cmd>lua vim.lsp.diagnostic.goto_prev { wrap = false }<CR> | |
nnoremap <silent> ]c <cmd>lua vim.lsp.diagnostic.goto_next { wrap = false }<CR> | |
" completion related settings | |
" This is similiar to what I use | |
:lua << EOF | |
local cmd = vim.cmd | |
local g = vim.g | |
local function map(mode, lhs, rhs, opts) | |
local options = { noremap = true } | |
if opts then | |
options = vim.tbl_extend("force", options, opts) | |
end | |
vim.api.nvim_set_keymap(mode, lhs, rhs, options) | |
end | |
vim.opt_global.completeopt = { "menu", "noinsert", "noselect" } | |
vim.opt_global.shortmess:remove("F"):append("c") | |
local cmp = require("cmp") | |
cmp.setup({ | |
sources = { | |
{ name = "nvim_lsp" }, | |
{ name = "vsnip" }, | |
}, | |
snippet = { | |
expand = function(args) | |
-- Comes from vsnip | |
vim.fn["vsnip#anonymous"](args.body) | |
end, | |
}, | |
mapping = { | |
["<CR>"] = cmp.mapping.confirm({ select = true }), | |
["<Tab>"] = function(fallback) | |
if cmp.visible() then | |
cmp.select_next_item() | |
else | |
fallback() | |
end | |
end, | |
["<S-Tab>"] = function(fallback) | |
if cmp.visible() then | |
cmp.select_prev_item() | |
else | |
fallback() | |
end | |
end, | |
}, | |
}) | |
cmd([[augroup lsp]]) | |
cmd([[autocmd!]]) | |
cmd([[autocmd FileType scala setlocal omnifunc=v:lua.vim.lsp.omnifunc]]) | |
cmd([[autocmd FileType scala,sbt lua require("metals").initialize_or_attach(metals_config)]]) | |
cmd([[augroup end]]) | |
-- Need for symbol highlights to work correctly | |
vim.cmd([[hi! link LspReferenceText CursorColumn]]) | |
vim.cmd([[hi! link LspReferenceRead CursorColumn]]) | |
vim.cmd([[hi! link LspReferenceWrite CursorColumn]]) | |
-- LSP Setup --------------------- | |
metals_config = require("metals").bare_config() | |
-- matej edition | |
metals_config.init_options.statusBarProvider = "on" | |
--vim.g["metals_use_global_executable"] = true | |
metals_config.settings = { | |
showImplicitArguments = true, | |
excludedPackages = { "akka.actor.typed.javadsl", "com.github.swagger.akka.javadsl" }, | |
} | |
-- Example if you are including snippets | |
local capabilities = vim.lsp.protocol.make_client_capabilities() | |
capabilities.textDocument.completion.completionItem.snippetSupport = true | |
metals_config.capabilities = capabilities | |
EOF | |
" ================ Performance ====================== | |
" fix slow scrolling that occurs when using mouse and relative numbers | |
set lazyredraw | |
" vim timeout (forgot why I need this or if I do at all) | |
set ttyfast | |
set ttimeoutlen=10 | |
" ================ Misc ============================= | |
" highlight matching braces | |
set showmatch | |
" How many tenths of a second to blink when matching brackets | |
set mat=0 | |
" When the last window will have a status line (2 = always) | |
set laststatus=2 | |
" disable wrapping of long lines into multiple lines | |
set nowrap | |
" history | |
set history=1000 | |
" on some systems the backspace does not work as expected. | |
" this fixes the problem | |
set backspace=indent,eol,start | |
" to avoid hitting: | |
" 'press ENTER or type command to continue' | |
" add 'silent' keyword before the command | |
" | |
" ################ NERDTree ######################### | |
" shift+i (show hidden files) | |
" ctrl+n open/closes nerd tree | |
noremap <C-n> :NERDTreeToggle<CR> | |
" quit nerd tree on file open | |
let g:NERDTreeQuitOnOpen = 1 | |
" show nerd tree always on the right instead on the left | |
"let g:NERDTreeWinPos = "right"e |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment