6 plugins = with pkgs.vimPlugins; [
28 filetype plugin indent on
37 inoremap <Down> <C-o>gj
39 tnoremap <Esc> <C-\><C-n>
41 nnoremap <Esc> :noh<CR>
42 nnoremap gr :Telescope lsp_references<CR>
43 nnoremap gd :Telescope lsp_definitions<CR>
44 nnoremap <leader>u :UndotreeToggle<CR> :UndotreeFocus<CR>
45 nnoremap <leader>f :Telescope find_files<CR>
46 nnoremap <leader>b :Telescope buffers<CR>
47 nnoremap <leader>e :Telescope diagnostics<CR>
48 nnoremap <leader>g :Telescope live_grep<CR>
49 nnoremap <leader>s :Telescope lsp_document_symbols<CR>
50 nnoremap <leader>r :lua vim.lsp.buf.rename()<CR>
51 nnoremap <leader>n :bnext<CR>
52 nnoremap <leader>m :bprevious<CR>
53 nnoremap <leader><Space> za
54 noremap <leader>y "+y<CR>
55 noremap <leader>p "+p<CR>
56 noremap <leader><S-y> "+<S-y><CR>
57 noremap <leader><S-p> "+<S-p><CR>
60 " augroup FormatAutogroup
62 " autocmd BufWritePost * FormatWrite
65 " enter insert mode when opening terminal
66 autocmd TermOpen * startinsert
68 " Return to last opened position
70 \ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
71 \ | exe "normal! g`\""
74 " Use persistent history.
75 if !isdirectory("/tmp/.vim-undo-dir")
76 call mkdir("/tmp/.vim-undo-dir", "", 0700)
78 set undodir=/tmp/.vim-undo-dir
83 vim.lsp.enable('clangd')
84 vim.lsp.config('zuban', {})
85 vim.lsp.enable('zuban')
86 vim.lsp.enable('jdtls')
87 require('guess-indent').setup {}
88 local actions = require("telescope.actions")
89 require('telescope').setup {
92 i = { ["<esc>"] = actions.close },
96 require('formatter').setup {
98 log_level = vim.log.levels.WARN,
100 c = { require("formatter.filetypes.c").clangformat },
101 cpp = { require("formatter.filetypes.cpp").clangformat },
102 zig = { require("formatter.filetypes.zig").zigfmt },
103 markdown = { require("formatter.filetypes.markdown").denofmt },
106 require('blink.cmp').setup {
110 ['<C-space>'] = { 'show', 'show_documentation', 'hide_documentation' },
111 ['<C-e>'] = { 'hide', 'fallback' },
112 ['<CR>'] = { 'accept', 'fallback' },
114 ['<Tab>'] = { 'select_next', 'fallback_to_mappings' },
115 ['<S-Tab>'] = { 'select_prev', 'fallback_to_mappings' },
117 ['<C-p>'] = { 'scroll_documentation_up', 'fallback' },
118 ['<C-n'] = { 'scroll_documentation_down', 'fallback' },
120 ['<C-k>'] = { 'show_signature', 'hide_signature', 'fallback' },
123 list = { selection = { preselect = false, } },
126 -- treesitter_highlighting = false,
129 signature = { enabled = true },