Created
December 31, 2023 12:59
-
-
Save Staubgeborener/02ecfdc38cb30954573595147a96eb1c to your computer and use it in GitHub Desktop.
Neovim setup
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
# neovim | |
sudo pacman -Sy neovim | |
# plugin manager | |
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ | |
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' | |
# support python plugins in neovim | |
pip3 install pynvim | |
# reread .bashrc | |
. ~/.bashrc | |
# create config file | |
mkdir -p ~/.config/nvim | |
# add config | |
echo "set nocompatible " disable compatibility to old-time vi | |
set showmatch " show matching | |
set ignorecase " case insensitive | |
set mouse=v " middle-click paste with | |
set hlsearch " highlight search | |
set incsearch " incremental search | |
set tabstop=4 " number of columns occupied by a tab | |
set softtabstop=4 " see multiple spaces as tabstops so <BS> does the right thing | |
set expandtab " converts tabs to white space | |
set shiftwidth=4 " width for autoindents | |
set autoindent " indent a new line the same amount as the line just typed | |
set number " add line numbers | |
set wildmode=longest,list " get bash-like tab completions | |
set cc=80 " set an 80 column border for good coding style | |
filetype plugin indent on "allow auto-indenting depending on file type | |
syntax on " syntax highlighting | |
set mouse=a " enable mouse click | |
set clipboard=unnamedplus " using system clipboard | |
filetype plugin on | |
set cursorline " highlight current cursorline | |
set ttyfast " Speed up scrolling in Vim | |
call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged') | |
Plug 'dracula/vim' | |
Plug 'ryanoasis/vim-devicons' | |
Plug 'SirVer/ultisnips' | |
Plug 'honza/vim-snippets' | |
Plug 'scrooloose/nerdtree' | |
Plug 'preservim/nerdcommenter' | |
Plug 'mhinz/vim-startify' | |
Plug 'neoclide/coc.nvim', {'branch': 'release'} | |
Plug 'nvim-tree/nvim-web-devicons' " optional, for file icons | |
Plug 'nvim-tree/nvim-tree.lua' | |
call plug#end() | |
" color schemes | |
if (has("termguicolors")) | |
set termguicolors | |
endif | |
syntax enable | |
" colorscheme evening | |
colorscheme dracula | |
" open new split panes to right and below | |
set splitright | |
set splitbelow | |
" move line or visually selected block - alt+j/k | |
inoremap <A-j> <Esc>:m .+1<CR>==gi | |
inoremap <A-k> <Esc>:m .-2<CR>==gi | |
vnoremap <A-j> :m '>+1<CR>gv=gv | |
vnoremap <A-k> :m '<-2<CR>gv=gv" move split panes to left/bottom/top/right | |
nnoremap <A-h> <C-W>H | |
nnoremap <A-j> <C-W>J | |
nnoremap <A-k> <C-W>K | |
nnoremap <A-l> <C-W>L" move between panes to left/bottom/top/right | |
nnoremap <C-h> <C-w>h | |
nnoremap <C-j> <C-w>j | |
nnoremap <C-k> <C-w>k | |
nnoremap <C-l> <C-w>l | |
" Press i to enter insert mode, and ii to exit insert mode. | |
:inoremap ii <Esc> | |
:inoremap jk <Esc> | |
:inoremap kj <Esc> | |
:vnoremap jk <Esc> | |
:vnoremap kj <Esc> | |
" open file in a text by placing text and gf | |
nnoremap gf :vert winc f<cr>" copies filepath to clipboard by pressing yf | |
:nnoremap <silent> yf :let @+=expand('%:p')<CR> | |
" copies pwd to clipboard: command yd | |
:nnoremap <silent> yd :let @+=expand('%:p:h')<CR>" Vim jump to the last position when reopening a file | |
if has("autocmd") | |
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | |
\| exe "normal! g'\"" | endif | |
endif | |
lua <<EOF | |
-- disable netrw at the very start of your init.lua (strongly advised) | |
vim.g.loaded_netrw = 1 | |
vim.g.loaded_netrwPlugin = 1 | |
-- set termguicolors to enable highlight groups | |
vim.opt.termguicolors = true | |
-- OR setup with some options | |
require("nvim-tree").setup({ | |
sort_by = "case_sensitive", | |
view = { | |
adaptive_size = true, | |
mappings = { | |
list = { | |
{ key = "u", action = "dir_up" }, | |
}, | |
}, | |
}, | |
renderer = { | |
group_empty = true, | |
}, | |
filters = { | |
dotfiles = true, | |
}, | |
}) | |
EOF" >> ~/.config/nvim/init.vim | |
# install plugins in neovim | |
:PlugInstall | |
# neovim tree plugin start | |
:NvimTreeOpen | |
# neovim tree plugin end | |
:NvimTreeClose |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment