Last active
May 12, 2023 02:12
-
-
Save ahmadkarlam/44a5c091168b2a70fd0a to your computer and use it in GitHub Desktop.
My vimrc
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
call plug#begin() | |
" Put your plugin here. | |
Plug 'scwood/vim-hybrid' | |
Plug 'scrooloose/nerdtree' | |
Plug 'kien/ctrlp.vim' | |
Plug 'jwalton512/vim-blade' | |
Plug 'StanAngeloff/php.vim' | |
Plug 'Valloric/MatchTagAlways' | |
Plug 'Yggdroot/indentLine' | |
Plug 'powerline/powerline', { 'rtp' : 'powerline/bindings/vim/' } | |
Plug 'vim-scripts/bash-support.vim' | |
Plug 'editorconfig/editorconfig-vim' | |
Plug 'roosta/srcery' | |
Plug 'editorconfig/editorconfig-vim' | |
Plug 'dracula/vim' | |
Plug 'rking/ag.vim' | |
Plug 'skwp/greplace.vim' | |
Plug 'tpope/vim-surround' | |
Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries' } | |
Plug 'sebdah/vim-delve' | |
Plug 'neoclide/coc.nvim', {'branch': 'release'} | |
Plug 'airblade/vim-gitgutter' | |
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } | |
Plug 'junegunn/fzf.vim' | |
Plug 'zivyangll/git-blame.vim' | |
Plug 'easymotion/vim-easymotion' | |
call plug#end() | |
" Style UI | |
set t_Co=256 | |
set background=dark | |
" colorscheme srcery | |
" My Setting | |
set linespace=20 | |
set nowrap | |
set tabstop=4 | |
set softtabstop=4 | |
set expandtab | |
set noswapfile | |
set autoindent | |
set shiftwidth=4 | |
set autowrite | |
set showcmd | |
set mouse=a | |
set noshowmode | |
set complete=.,w,b,u | |
set backspace=indent,eol,start " backspace over everything in insert mode | |
set relativenumber | |
set wildmenu | |
set cc=120 | |
set splitbelow | |
set splitright | |
" Setting powerline | |
set rtp+=/home/ahmad/.local/lib/python2.7/site-packages/powerline/bindings/vim | |
set laststatus=2 " always show statusbar | |
set statusline= | |
set statusline+=%-10.3n\ " buffer number | |
set statusline+=%f\ " filename | |
set statusline+=%h%m%r%w " status flags | |
set statusline+=\[%{strlen(&ft)?&ft:'none'}] " file type | |
set statusline+=%= " right align remainder | |
set statusline+=%-14(%l,%c%V%) " line, character | |
set statusline+=%<%P " file position | |
" With a map leader it's possible to do extra key combinations | |
" " like <leader>w saves the current file | |
let mapleader = "," | |
let g:mapleader = "," | |
" New mapping key | |
nmap <leader>w :w!<cr> | |
nmap <leader>q :q<cr> | |
imap jj <esc> | |
" remap key | |
nnoremap <Leader>z :bp<CR> | |
nnoremap <Leader>c :bn<CR> | |
nnoremap <Leader>x :bd<CR> | |
nnoremap <C-J> <C-W><C-J> | |
nnoremap <C-K> <C-W><C-K> | |
nnoremap <C-L> <C-W><C-L> | |
nnoremap <C-H> <C-W><C-H> | |
" Setting NerdTree | |
map <C-e> :NERDTreeToggle<CR> | |
autocmd vimenter * NERDTree | |
" Setting Ctrl+P | |
let g:ctrlp_map = '<c-p>' | |
let g:ctrlp_cmd = 'CtrlP' | |
map <Leader>p :CtrlPBuffer<CR> | |
map <C-r> :CtrlPBufTag<CR> | |
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,node_modules | |
" Setting Greplace | |
set grepprg=ag | |
let g:grep_cmd_opts = '--line-numbers --noheading' | |
"Sort PHP use statements | |
""http://stackoverflow.com/questions/11531073/how-do-you-sort-a-range-of-lines-by-length | |
vmap <Leader>su ! awk '{ print length(), $0 \| "sort -n \| cut -d\\ -f2-" }'<cr> | |
" COC | |
set hidden | |
" Some servers have issues with backup files, see #649. | |
set nobackup | |
set nowritebackup | |
" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable | |
" delays and poor user experience. | |
set updatetime=50 | |
" Give more space for displaying messages. | |
set cmdheight=2 | |
" Always show the signcolumn, otherwise it would shift the text each time | |
" " diagnostics appear/become resolved. | |
if has("patch-8.1.1564") | |
" Recently vim can merge signcolumn and number column into one | |
set signcolumn=number | |
else | |
set signcolumn=yes | |
endif | |
" Use <c-space> to trigger completion. | |
inoremap <silent><expr> <c-space> coc#refresh() | |
" GoTo code navigation. | |
nmap <silent> gd <Plug>(coc-definition) | |
nmap <silent> gy <Plug>(coc-type-definition) | |
nmap <silent> gi <Plug>(coc-implementation) | |
nmap <silent> gr <Plug>(coc-references) | |
" Use tab for trigger completion with characters ahead and navigate. | |
" NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by | |
" other plugin before putting this into your config. | |
inoremap <silent><expr> <TAB> | |
\ pumvisible() ? "\<C-n>" : | |
\ <SID>check_back_space() ? "\<TAB>" : | |
\ coc#refresh() | |
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" | |
" Make <CR> to accept selected completion item or notify coc.nvim to format | |
" " <C-g>u breaks current undo, please make your own choice. | |
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() | |
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" | |
function! s:check_back_space() abort | |
let col = col('.') - 1 | |
return !col || getline('.')[col - 1] =~# '\s' | |
endfunction | |
" Golang | |
let g:go_fmt_command = "goimports" | |
let g:syntastic_go_checkers = ['govet', 'errcheck', 'go'] | |
" Go Debug | |
nnoremap <Leader>s :DlvDebug<CR> | |
" nnoremap <Leader>a :GoDebugStop<CR> | |
nnoremap <Leader>d :DlvToggleBreakpoint<CR> | |
nnoremap <Leader>f :DlvToggleTracepoint<CR> | |
" Easymotion | |
let g:EasyMotion_do_mapping = 0 " Disable default mappings | |
" `s{char}{char}{label}` | |
" Need one more keystroke, but on average, it may be more comfortable. | |
nmap s <Plug>(easymotion-overwin-f2) | |
" Turn on case-insensitive feature | |
let g:EasyMotion_smartcase = 1 | |
" JK motions: Line motions | |
map <Leader>j <Plug>(easymotion-j) | |
map <Leader>k <Plug>(easymotion-k) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment