Skip to content

Instantly share code, notes, and snippets.

@swlkr
Last active October 31, 2021 03:40
Show Gist options
  • Save swlkr/8de0dfadccb461e0334df21558b26641 to your computer and use it in GitHub Desktop.
Save swlkr/8de0dfadccb461e0334df21558b26641 to your computer and use it in GitHub Desktop.
my nvim.init
syntax on
set relativenumber
filetype plugin indent on
set autoindent
set expandtab
set tabstop=2
set softtabstop=2
set shiftwidth=2
set showcmd
set smarttab
set incsearch
set list
set listchars=space:.,nbsp:_,tab:>-,trail:~,extends:>,precedes:<
set clipboard=unnamed
function! <SID>StripTrailingWhitespaces()
let l = line(".")
let c = col(".")
%s/\s\+$//e
call cursor(l, c)
endfun
autocmd BufWritePre * :call <SID>StripTrailingWhitespaces()
call plug#begin(stdpath('data') . '/plugged')
Plug 'ludovicchabant/vim-gutentags'
Plug 'alvan/vim-closetag'
Plug 'rakr/vim-one'
Plug 'jiangmiao/auto-pairs'
Plug 'tpope/vim-endwise'
Plug 'tpope/vim-surround'
Plug 'vim-ruby/vim-ruby'
Plug 'tpope/vim-rails'
" tree sitter
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
Plug 'nvim-treesitter/playground'
" telescope
" dependencies
Plug 'nvim-lua/popup.nvim'
Plug 'nvim-lua/plenary.nvim'
" telescope itself
Plug 'nvim-telescope/telescope.nvim'
" github line number
Plug 'ruanyl/vim-gh-line'
Plug 'kyazdani42/nvim-tree.lua'
Plug 'neovim/nvim-lspconfig'
Plug 'ap/vim-css-color'
" autocomplete
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/nvim-cmp'
call plug#end()
" autocomplete
set completeopt=menu,menuone,noselect
lua <<EOF
-- Setup nvim-cmp.
local cmp = require'cmp'
cmp.setup({
snippet = {
expand = function(args)
-- For `vsnip` user.
-- vim.fn["vsnip#anonymous"](args.body)
-- For `luasnip` user.
-- require('luasnip').lsp_expand(args.body)
-- For `ultisnips` user.
-- vim.fn["UltiSnips#Anon"](args.body)
end,
},
mapping = {
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.close(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
},
sources = {
{ name = 'nvim_lsp' },
-- For vsnip user.
-- { name = 'vsnip' },
-- For luasnip user.
-- { name = 'luasnip' },
-- For ultisnips user.
-- { name = 'ultisnips' },
{ name = 'buffer' },
}
})
EOF
lua <<EOF
require'nvim-treesitter.configs'.setup {
ensure_installed = {"ruby", "javascript", "html"},
highlight = {
enable = true
},
incremental_selection = {
enable = true
},
textobjects = {
enable = true
},
indent = {
enable = true
}
}
-- autocomplete
require('lspconfig').solargraph.setup {
capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
}
EOF
" change the leader key from "\" to ";" ("," is also popular)
let mapleader = ";"
colorscheme one
set background=dark
set termguicolors
highlight Normal guibg=none
highlight NonText guibg=none
set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.idea/*,*/.DS_Store,*/vendor,*/.bundle_cache,*/bin/*
nnoremap <nowait><silent> <C-l> :noh<CR>
nnoremap Y y$
nnoremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>ft <cmd>Telescope tags<cr>
nnoremap <leader>fr <cmd>Telescope current_buffer_tags<cr>
nnoremap <leader>fa <cmd>Telescope current_buffer_fuzzy_find<cr>
nnoremap <leader>nt <cmd>NvimTreeToggle<cr>
" move selected lines up one line
xnoremap ˚ :m-2<CR>gv=gv
" move selected lines down one line
xnoremap ∆ :m'>+<CR>gv=gv
let g:nvim_tree_show_icons = {
\ 'git': 0,
\ 'folders': 0,
\ 'files': 0,
\ 'folder_arrows': 0,
\ }
let g:closetag_filenames = '*.html,*.xhtml,*.phtml,*.erb'
let g:closetag_xhtml_filenames = '*.xhtml,*.jsx,*.erb'
autocmd FileType eruby let b:AutoPairs = AutoPairsDefine({'<%' : '%>', '<%=' : '%>'})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment