182 lines
4.5 KiB
VimL
182 lines
4.5 KiB
VimL
|
call plug#begin()
|
||
|
|
||
|
Plug 'tpope/vim-fugitive'
|
||
|
Plug 'tpope/vim-commentary'
|
||
|
Plug 'preservim/nerdtree', { 'on': 'NERDTreeToggle' }
|
||
|
|
||
|
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||
|
|
||
|
Plug 'jpalardy/vim-slime'
|
||
|
|
||
|
Plug 'ojroques/vim-oscyank', {'branch': 'main'}
|
||
|
|
||
|
call plug#end()
|
||
|
|
||
|
nnoremap <leader>n :NERDTreeFocus<CR>
|
||
|
nnoremap <C-n> :NERDTree<CR>
|
||
|
nnoremap <C-t> :NERDTreeToggle<CR>
|
||
|
nnoremap <C-f> :NERDTreeFind<CR>
|
||
|
|
||
|
|
||
|
set backspace=indent,eol,start
|
||
|
set mouse=r
|
||
|
|
||
|
packadd termdebug
|
||
|
let g:termdebug_wide=1
|
||
|
let g:termdebugger='riscv32-unknown-elf-gdb'
|
||
|
|
||
|
|
||
|
" Disable compatibility with vi which can cause unexpected issues.
|
||
|
set nocompatible
|
||
|
|
||
|
" Enable type file detection. Vim will be able to try to detect the type of file in use.
|
||
|
filetype on
|
||
|
|
||
|
" Enable plugins and load plugin for the detected file type.
|
||
|
filetype plugin on
|
||
|
|
||
|
" Load an indent file for the detected file type.
|
||
|
filetype indent on
|
||
|
|
||
|
" Turn syntax highlighting on.
|
||
|
syntax on
|
||
|
|
||
|
" Add numbers to each line on the left-hand side.
|
||
|
set number
|
||
|
|
||
|
" Highlight cursor line underneath the cursor horizontally.
|
||
|
set cursorline
|
||
|
|
||
|
" Highlight cursor line underneath the cursor vertically.
|
||
|
"set cursorcolumn
|
||
|
|
||
|
|
||
|
" Set shift width to 4 spaces.
|
||
|
set shiftwidth=4
|
||
|
|
||
|
" Set tab width to 4 columns.
|
||
|
set tabstop=4
|
||
|
|
||
|
" Use space characters instead of tabs.
|
||
|
set expandtab
|
||
|
|
||
|
" Do not save backup files.
|
||
|
set nobackup
|
||
|
|
||
|
" Do not let cursor scroll below or above N number of lines when scrolling.
|
||
|
set scrolloff=10
|
||
|
|
||
|
" Do not wrap lines. Allow long lines to extend as far as the line goes.
|
||
|
set nowrap
|
||
|
|
||
|
" While searching though a file incrementally highlight matching characters as you type.
|
||
|
set incsearch
|
||
|
|
||
|
" Ignore capital letters during search.
|
||
|
set ignorecase
|
||
|
|
||
|
" Override the ignorecase option if searching for capital letters.
|
||
|
" This will allow you to search specifically for capital letters.
|
||
|
set smartcase
|
||
|
|
||
|
" Show partial command you type in the last line of the screen.
|
||
|
set showcmd
|
||
|
|
||
|
" Show the mode you are on the last line.
|
||
|
set showmode
|
||
|
|
||
|
" Show matching words during a search.
|
||
|
set showmatch
|
||
|
|
||
|
" Use highlighting when doing a search.
|
||
|
set hlsearch
|
||
|
|
||
|
" Set the commands to save in history default number is 20.
|
||
|
set history=1000
|
||
|
|
||
|
" Enable auto completion menu after pressing TAB.
|
||
|
set wildmenu
|
||
|
|
||
|
" Make wildmenu behave like similar to Bash completion.
|
||
|
set wildmode=list:longest
|
||
|
|
||
|
" There are certain files that we would never want to edit with Vim.
|
||
|
" Wildmenu will ignore files with these extensions.
|
||
|
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx
|
||
|
|
||
|
|
||
|
" set colorscheme OceanicNext
|
||
|
|
||
|
|
||
|
if !exists("g:slime_python_ipython")
|
||
|
let g:slime_python_ipython = 1
|
||
|
endif
|
||
|
|
||
|
let g:slime_target = "tmux"
|
||
|
|
||
|
" Run cell for vim-slime
|
||
|
function! SendCell(pattern)
|
||
|
let start_line = search(a:pattern, 'bnW')
|
||
|
|
||
|
if start_line
|
||
|
let start_line = start_line + 1
|
||
|
else
|
||
|
let start_line = 1
|
||
|
endif
|
||
|
|
||
|
let stop_line = search(a:pattern, 'nW')
|
||
|
if stop_line
|
||
|
let stop_line = stop_line - 1
|
||
|
else
|
||
|
let stop_line = line('$')
|
||
|
endif
|
||
|
|
||
|
call slime#send_range(start_line, stop_line)
|
||
|
endfunction
|
||
|
|
||
|
" Custom vim-slime mappings
|
||
|
let g:slime_no_mappings = 1
|
||
|
xmap <c-c><c-c> <Plug>SlimeRegionSend
|
||
|
nmap <c-c><c-c> :<c-u>call SendCell('^#%%')<cr>
|
||
|
nmap <c-c>v <Plug>SlimeConfig
|
||
|
|
||
|
|
||
|
nmap <leader>c <Plug>OSCYankOperator
|
||
|
nmap <leader>cc <leader>c_
|
||
|
vmap <leader>c <Plug>OSCYankVisual
|
||
|
|
||
|
if (!has('nvim') && !has('clipboard_working'))
|
||
|
" In the event that the clipboard isn't working, it's quite likely that
|
||
|
" the + and * registers will not be distinct from the unnamed register. In
|
||
|
" this case, a:event.regname will always be '' (empty string). However, it
|
||
|
" can be the case that `has('clipboard_working')` is false, yet `+` is
|
||
|
" still distinct, so we want to check them all.
|
||
|
let s:VimOSCYankPostRegisters = ['', '+', '*']
|
||
|
function! s:VimOSCYankPostCallback(event)
|
||
|
if a:event.operator == 'y' && index(s:VimOSCYankPostRegisters, a:event.regname) != -1
|
||
|
call OSCYankRegister(a:event.regname)
|
||
|
endif
|
||
|
endfunction
|
||
|
augroup VimOSCYankPost
|
||
|
autocmd!
|
||
|
autocmd TextYankPost * call s:VimOSCYankPostCallback(v:event)
|
||
|
augroup END
|
||
|
endif
|
||
|
|
||
|
set tags=./tags;,tags;
|
||
|
" Map Ctrl-[ to go back in the tag stack
|
||
|
|
||
|
" Function to display filename aligned to the right
|
||
|
function! ShowFileNameRight()
|
||
|
let l:filename = expand('%:p')
|
||
|
let l:columns = &columns
|
||
|
let l:space = l:columns - len(l:filename) - 2
|
||
|
let l:spaces = repeat(' ', l:space > 0 ? l:space : 0)
|
||
|
echo l:spaces . l:filename
|
||
|
endfunction
|
||
|
|
||
|
" Autocommand to display filename in command area when entering command mode
|
||
|
" autocmd CmdlineEnter * call ShowFileNameRight()
|
||
|
|
||
|
|