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 tl_actions = require("telescope.actions")
89 local tl_builtin = require("telescope.builtin")
90 require('telescope').setup {
93 i = { ["<esc>"] = tl_actions.close },
97 tl_builtins.buffers { sort_lastused = true, ignore_current_buffer = true }
98 require('formatter').setup {
100 log_level = vim.log.levels.WARN,
102 c = { require("formatter.filetypes.c").clangformat },
103 cpp = { require("formatter.filetypes.cpp").clangformat },
104 zig = { require("formatter.filetypes.zig").zigfmt },
105 markdown = { require("formatter.filetypes.markdown").denofmt },
106 java = { require("formatter.filetypes.java").google_java_format },
109 require('blink.cmp').setup {
113 ['<C-space>'] = { 'show', 'show_documentation', 'hide_documentation' },
114 ['<C-e>'] = { 'hide', 'fallback' },
115 ['<CR>'] = { 'accept', 'fallback' },
117 ['<Tab>'] = { 'select_next', 'fallback_to_mappings' },
118 ['<S-Tab>'] = { 'select_prev', 'fallback_to_mappings' },
120 ['<C-p>'] = { 'scroll_documentation_up', 'fallback' },
121 ['<C-n'] = { 'scroll_documentation_down', 'fallback' },
123 ['<C-k>'] = { 'show_signature', 'hide_signature', 'fallback' },
126 list = { selection = { preselect = false, } },
129 -- treesitter_highlighting = false,
132 signature = { enabled = true },
139 theme = "base16_terminal";
140 editor.cursor-shape = {
143 select = "underline";
148 editor.file-picker = {
151 keys.normal."space" = {
152 "space" = "goto_word";
159 formatter = { command = "clang-format"; args = ["--style=microsoft"]; };