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 noremap <leader>y "+y<CR>
54 noremap <leader>p "+p<CR>
55 noremap <leader><S-y> "+<S-y><CR>
56 noremap <leader><S-p> "+<S-p><CR>
59 " augroup FormatAutogroup
61 " autocmd BufWritePost * FormatWrite
64 " enter insert mode when opening terminal
65 autocmd TermOpen * startinsert
67 " Return to last opened position
69 \ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
70 \ | exe "normal! g`\""
73 " Use persistent history.
74 if !isdirectory("/tmp/.vim-undo-dir")
75 call mkdir("/tmp/.vim-undo-dir", "", 0700)
77 set undodir=/tmp/.vim-undo-dir
82 vim.lsp.enable('clangd')
83 vim.lsp.config('zuban', {})
84 vim.lsp.enable('zuban')
85 require('guess-indent').setup {}
86 local actions = require("telescope.actions")
87 require('telescope').setup {
90 i = { ["<esc>"] = actions.close },
94 require('formatter').setup {
96 log_level = vim.log.levels.WARN,
98 c = { require("formatter.filetypes.c").clangformat },
99 cpp = { require("formatter.filetypes.cpp").clangformat },
100 zig = { require("formatter.filetypes.zig").zigfmt },
101 markdown = { require("formatter.filetypes.markdown").denofmt },
104 require('blink.cmp').setup {
108 ['<C-space>'] = { 'show', 'show_documentation', 'hide_documentation' },
109 ['<C-e>'] = { 'hide', 'fallback' },
110 ['<CR>'] = { 'accept', 'fallback' },
112 ['<Tab>'] = { 'select_next', 'fallback_to_mappings' },
113 ['<S-Tab>'] = { 'select_prev', 'fallback_to_mappings' },
115 ['<C-p>'] = { 'scroll_documentation_up', 'fallback' },
116 ['<C-n'] = { 'scroll_documentation_down', 'fallback' },
118 ['<C-k>'] = { 'show_signature', 'hide_signature', 'fallback' },
121 list = { selection = { preselect = false, } },
124 -- treesitter_highlighting = false,
127 signature = { enabled = true },