summary refs log tree commit diff stats
path: root/user/nvim/init.vim
diff options
context:
space:
mode:
authorAlan Pearce2020-10-29 20:15:18 +0100
committerAlan Pearce2020-10-29 20:15:18 +0100
commitdd829bbad56e53a35d86e8e43165a92268339929 (patch)
treedb2a6cc99844a92da065692f3f237dc691a5f7c3 /user/nvim/init.vim
parentbe7dd55d729eaf4c001790430bafe2b6115328c2 (diff)
downloadnixfiles-dd829bbad56e53a35d86e8e43165a92268339929.tar.lz
nixfiles-dd829bbad56e53a35d86e8e43165a92268339929.tar.zst
nixfiles-dd829bbad56e53a35d86e8e43165a92268339929.zip
neovim: configure smart completion
Diffstat (limited to 'user/nvim/init.vim')
-rw-r--r--user/nvim/init.vim25
1 files changed, 25 insertions, 0 deletions
diff --git a/user/nvim/init.vim b/user/nvim/init.vim
new file mode 100644
index 00000000..0b2438d5
--- /dev/null
+++ b/user/nvim/init.vim
@@ -0,0 +1,25 @@
+set autoindent
+
+set background=light
+set shiftwidth=2
+set tabstop=2
+set noexpandtab
+set relativenumber
+set smartcase
+
+" use <tab> for trigger completion and navigate to the next complete item
+function! s:check_back_space() abort
+  let col = col('.') - 1
+  return !col || getline('.')[col - 1]  =~ '\s'
+endfunction
+
+inoremap <silent><expr> <Tab>
+      \ pumvisible() ? "\<C-n>" :
+      \ <SID>check_back_space() ? "\<Tab>" :
+      \ coc#refresh()
+
+inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
+inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
+
+" use <c-space> to trigger completion
+inoremap <silent><expr> <c-space> coc#refresh()