Categories
Bash Operating Systems

Neovim – Next Generation Vim

NeoVim is a great tool and my goto editor even on large projects, but it needs proper config.

filetype plugin indent on
syntax on
set number
"set relativenumber

set incsearch
set ignorecase
set smartcase

set t_Co=256
"colorscheme molokai
hi Comment ctermfg=DarkGray ctermbg=black cterm=italic

set tabstop=4
set softtabstop=0
set shiftwidth=4
set noexpandtab
"set copyindent
"set preserveindent
set listchars=tab:\·\ ,trail:·
set list

set nobackup
set noswapfile
set nowrap

" Offset from bottom/top
set scrolloff=3

set cursorline
"set cursorcolumn

" Make Y yank everything from the cursor to the end of the line. This makes Y
" act more like C or D because by default, Y yanks the current line (i.e. the
" same as yy).
noremap Y y$

set autochdir

map <A-s> :set scrollbind!<CR>

" use zr to reduce folds and zm for more folds
map <A-f> :set foldmethod=indent<cr>

" ALT plus left or right changes tabs
map <A-Right> gt
map <A-Left> gT
map <A-t> :tab split<cr>
map <A-c> :close<cr>
map <A-o> :Explore<cr>

map <A-.> :bNext<cr>
map <A-,> :bprevious<cr>

map <A-q> :qall<cr>
map <A-w> :write<cr>
map <A-v> :vsplit<cr>
map <A-h> :split<cr>

map <C-Right> <C-w><Right>
map <C-Left> <C-w><Left>
map <C-Up> <C-w><Up>
map <C-Down> <C-w><Down>

map <A-:> gt
map <A-;> gT

" Switch buffers and files
map <A-b> :buffers<CR>:b
map <Tab> :Lex<CR>
let g:netrw_winsize = 15

map <A-Space> :Lex<CR>

nmap S :%s///g<LEFT><LEFT><LEFT>

"Tree view in file browser
let g:netrw_liststyle = 3

" Open files in previous window
" 1 - open files in a new horizontal split
" 2 - open files in a new vertical split
" 3 - open files in a new tab
" 4 - open in previous window
let g:netrw_browse_split = 4

" Docblock
imap /** /** */<left><left><left>
imap @au @author Nimpen J. Nordström <j@asbra.nu>
imap @co @copyright 2018 ASBRA AB

" STATUSLINE (:help statusline) for more info
set laststatus=2
set statusline=
set statusline+=[%n]\ " Buffer
set statusline+=%.50F\ %m%r\ \ " Full filename, modified and read-only
set statusline+=%= " left/right separator
set statusline+=[ENC:%{strlen(&fenc)?&fenc:'none'}],\ " File encoding
set statusline+=[FORMAT:%{&ff}]\ \ \ " File format

set statusline+=X:%c,\ " Column
set statusline+=Y:%l/%L " Line/total lines

" Statusline Color, green in Input and red in Command Mode
if version >= 700
hi StatusLine ctermfg=1 ctermbg=7
au InsertEnter * hi StatusLine ctermfg=2 ctermbg=7
au InsertLeave * hi StatusLine ctermfg=1 ctermbg=7
endif

filetype plugin on
au FileType php setl ofu=phpcomplete#CompletePHP
au FileType html,xhtml setl ofu=htmlcomplete#CompleteTags
au FileType css setl ofu=csscomplete#CompleteCSS

colorscheme default

By Nimpen J. Nordström

System Developer and Network Security Enthusiast

Leave a Reply

Your email address will not be published. Required fields are marked *