Last active
October 31, 2021 03:40
-
-
Save swlkr/8de0dfadccb461e0334df21558b26641 to your computer and use it in GitHub Desktop.
my nvim.init
This file contains hidden or 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
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