-
-
Save codingleo/8d51c72fe1a6ca954caecae722cf8b98 to your computer and use it in GitHub Desktop.
vscode neovim init.vim
This file contains 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
" packadd quickscope | |
" execute 'luafile ' . stdpath('config') . '/lua/settings.lua' | |
function! s:manageEditorSize(...) | |
let count = a:1 | |
let to = a:2 | |
for i in range(1, count ? count : 1) | |
call VSCodeNotify(to == 'increase' ? 'workbench.action.increaseViewSize' : 'workbench.action.decreaseViewSize') | |
endfor | |
endfunction | |
function! s:vscodeCommentary(...) abort | |
if !a:0 | |
let &operatorfunc = matchstr(expand('<sfile>'), '[^. ]*$') | |
return 'g@' | |
elseif a:0 > 1 | |
let [line1, line2] = [a:1, a:2] | |
else | |
let [line1, line2] = [line("'["), line("']")] | |
endif | |
call VSCodeCallRange("editor.action.commentLine", line1, line2, 0) | |
endfunction | |
function! s:openVSCodeCommandsInVisualMode() | |
normal! gv | |
let visualmode = visualmode() | |
if visualmode == "V" | |
let startLine = line("v") | |
let endLine = line(".") | |
call VSCodeNotifyRange("workbench.action.showCommands", startLine, endLine, 1) | |
else | |
let startPos = getpos("v") | |
let endPos = getpos(".") | |
call VSCodeNotifyRangePos("workbench.action.showCommands", startPos[1], endPos[1], startPos[2], endPos[2], 1) | |
endif | |
endfunction | |
function! s:openWhichKeyInVisualMode() | |
normal! gv | |
let visualmode = visualmode() | |
if visualmode == "V" | |
let startLine = line("v") | |
let endLine = line(".") | |
call VSCodeNotifyRange("whichkey.show", startLine, endLine, 1) | |
else | |
let startPos = getpos("v") | |
let endPos = getpos(".") | |
call VSCodeNotifyRangePos("whichkey.show", startPos[1], endPos[1], startPos[2], endPos[2], 1) | |
endif | |
endfunction | |
" Better Navigation | |
nnoremap <silent> <C-j> :call VSCodeNotify('workbench.action.navigateDown')<CR> | |
xnoremap <silent> <C-j> :call VSCodeNotify('workbench.action.navigateDown')<CR> | |
nnoremap <silent> <C-k> :call VSCodeNotify('workbench.action.navigateUp')<CR> | |
xnoremap <silent> <C-k> :call VSCodeNotify('workbench.action.navigateUp')<CR> | |
nnoremap <silent> <C-h> :call VSCodeNotify('workbench.action.navigateLeft')<CR> | |
xnoremap <silent> <C-h> :call VSCodeNotify('workbench.action.navigateLeft')<CR> | |
nnoremap <silent> <C-l> :call VSCodeNotify('workbench.action.navigateRight')<CR> | |
xnoremap <silent> <C-l> :call VSCodeNotify('workbench.action.navigateRight')<CR> | |
nnoremap gr <Cmd>call VSCodeNotify('editor.action.goToReferences')<CR> | |
" Bind C-/ to vscode commentary since calling from vscode produces double comments due to multiple cursors | |
xnoremap <expr> <C-/> <SID>vscodeCommentary() | |
nnoremap <expr> <C-/> <SID>vscodeCommentary() . '_' | |
nnoremap <silent> <C-w>_ :<C-u>call VSCodeNotify('workbench.action.toggleEditorWidths')<CR> | |
nnoremap <silent> <Space> :call VSCodeNotify('whichkey.show')<CR> | |
xnoremap <silent> <Space> :<C-u>call <SID>openWhichKeyInVisualMode()<CR> | |
xnoremap <silent> <C-P> :<C-u>call <SID>openVSCodeCommandsInVisualMode()<CR> | |
xmap gc <Plug>VSCodeCommentary | |
nmap gc <Plug>VSCodeCommentary | |
omap gc <Plug>VSCodeCommentary | |
nmap gcc <Plug>VSCodeCommentaryLine | |
" Simulate same TAB behavior in VSCode | |
nmap <Tab> :Tabnext<CR> | |
nmap <S-Tab> :Tabprev<CR> | |
set clipboard=unnamedplus |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment