Fully port vim config to neovim
Including adding several plugins: - whitespace-nvim to trim whitespace - vimsence for Discord - vim-wordy for writing issues detection - vim-pencil for autowrapping in text and md files yayyy - ctrl-p with ripgrep
This commit is contained in:
parent
e8adbb6e76
commit
5929d6cfe7
|
@ -0,0 +1,41 @@
|
||||||
|
vim.opt.ignorecase = true -- search case insensitive
|
||||||
|
vim.opt.smartcase = true -- search matters if capital letter
|
||||||
|
vim.opt.inccommand = "split" -- "for incsearch while sub
|
||||||
|
vim.g.mapleader = ","
|
||||||
|
|
||||||
|
vim.opt.ruler = true -- cursor position all the time
|
||||||
|
vim.opt.autowrite = true -- save before commands
|
||||||
|
|
||||||
|
-- softtabs, 2 spaces
|
||||||
|
vim.opt.tabstop = 2
|
||||||
|
vim.opt.shiftwidth = 2
|
||||||
|
vim.opt.shiftround = true
|
||||||
|
vim.optexpandtab = true
|
||||||
|
|
||||||
|
-- listchars (show tabs and trailing whitespace)
|
||||||
|
vim.opt.list = true
|
||||||
|
vim.opt.listchars.tab = "»·"
|
||||||
|
vim.opt.listchars.trail= "·"
|
||||||
|
vim.opt.listchars.nbsp = "·"
|
||||||
|
|
||||||
|
-- width and height indications
|
||||||
|
vim.opt.textwidth = 80
|
||||||
|
vim.opt.colorcolumn = "+1"
|
||||||
|
vim.opt.number = true
|
||||||
|
vim.opt.numberwidth = 5
|
||||||
|
|
||||||
|
-- textwidth but don't wrap
|
||||||
|
vim.opt.formatoptions:remove { "t" }
|
||||||
|
|
||||||
|
-- ctrl-p with ripgrep
|
||||||
|
vim.opt.grepprg="rg --color=never"
|
||||||
|
vim.g.ctrlp_user_command='rg %s --files --color=never --glob ""'
|
||||||
|
vim.g.ctrlp_use_caching=0
|
||||||
|
|
||||||
|
-- vimsense (rich presence) options
|
||||||
|
vim.g.vimsense_small_text = "NeoVim"
|
||||||
|
vim.g.vimsense_small_image = "neovim"
|
||||||
|
vim.g.vimsense_editing_details = "Editing: {}"
|
||||||
|
vim.g.vimsense_editing_state = "Working on: {}"
|
||||||
|
vim.g.vimsense_file_explorer_text = "In file manager"
|
||||||
|
vim.g.vimsense_file_explorer_details = "Looking for files"
|
107
rcfiles/vimrc
107
rcfiles/vimrc
|
@ -1,107 +0,0 @@
|
||||||
set encoding=utf-8
|
|
||||||
|
|
||||||
" Leader
|
|
||||||
let mapleader = " "
|
|
||||||
|
|
||||||
set backspace=2 " Backspace deletes like most programs in insert mode
|
|
||||||
set nobackup
|
|
||||||
set nowritebackup
|
|
||||||
set noswapfile " http://robots.thoughtbot.com/post/18739402579/global-gitignore#comment-458413287
|
|
||||||
set history=50
|
|
||||||
set ruler " show the cursor position all the time
|
|
||||||
set showcmd " display incomplete commands
|
|
||||||
set incsearch " do incremental searching
|
|
||||||
set laststatus=2 " Always display the status line
|
|
||||||
set autowrite " Automatically :write before running commands
|
|
||||||
set modelines=0 " Disable modelines as a security precaution
|
|
||||||
set nomodeline
|
|
||||||
|
|
||||||
" Switch syntax highlighting on, when the terminal has colors
|
|
||||||
" Also switch on highlighting the last used search pattern.
|
|
||||||
if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on")
|
|
||||||
syntax on
|
|
||||||
endif
|
|
||||||
|
|
||||||
filetype plugin indent on
|
|
||||||
|
|
||||||
augroup vimrcEx
|
|
||||||
autocmd!
|
|
||||||
|
|
||||||
" When editing a file, always jump to the last known cursor position.
|
|
||||||
" Don't do it for commit messages, when the position is invalid, or when
|
|
||||||
" inside an event handler (happens when dropping a file on gvim).
|
|
||||||
autocmd BufReadPost *
|
|
||||||
\ if &ft != 'gitcommit' && line("'\"") > 0 && line("'\"") <= line("$") |
|
|
||||||
\ exe "normal g`\"" |
|
|
||||||
\ endif
|
|
||||||
|
|
||||||
" Set syntax highlighting for specific file types
|
|
||||||
autocmd BufRead,BufNewFile *.md set filetype=markdown
|
|
||||||
autocmd BufRead,BufNewFile .{jscs,jshint,eslint}rc set filetype=json
|
|
||||||
autocmd BufRead,BufNewFile
|
|
||||||
\ aliases.local,
|
|
||||||
\zshenv.local,zlogin.local,zlogout.local,zshrc.local,zprofile.local,
|
|
||||||
\*/zsh/configs/*
|
|
||||||
\ set filetype=sh
|
|
||||||
autocmd BufRead,BufNewFile gitconfig.local set filetype=gitconfig
|
|
||||||
autocmd BufRead,BufNewFile tmux.conf.local set filetype=tmux
|
|
||||||
autocmd BufRead,BufNewFile vimrc.local set filetype=vim
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
" When the type of shell script is /bin/sh, assume a POSIX-compatible
|
|
||||||
" shell for syntax highlighting purposes.
|
|
||||||
let g:is_posix = 1
|
|
||||||
|
|
||||||
" Softtabs, 2 spaces
|
|
||||||
set tabstop=2
|
|
||||||
set shiftwidth=2
|
|
||||||
set shiftround
|
|
||||||
set expandtab
|
|
||||||
|
|
||||||
" Display extra whitespace
|
|
||||||
set list listchars=tab:»·,trail:·,nbsp:·
|
|
||||||
|
|
||||||
" Use one space, not two, after punctuation.
|
|
||||||
set nojoinspaces
|
|
||||||
|
|
||||||
" Use Ripgrep vs grep
|
|
||||||
if executable('rg')
|
|
||||||
" Use rg over Grep
|
|
||||||
set grepprg=rg\ --color=never
|
|
||||||
|
|
||||||
" Use rg in fzf for listing files. Lightning fast and respects .gitignore
|
|
||||||
let $FZF_DEFAULT_COMMAND = 'rg --files-with-matches --color=never --hidden ""'
|
|
||||||
|
|
||||||
nnoremap \ :Ag<SPACE>
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Make it obvious where 80 characters is
|
|
||||||
set textwidth=80
|
|
||||||
set colorcolumn=+1
|
|
||||||
|
|
||||||
" Numbers
|
|
||||||
set number
|
|
||||||
set numberwidth=5
|
|
||||||
|
|
||||||
" Switch between the last two files
|
|
||||||
nnoremap <Leader><Leader> <C-^>
|
|
||||||
|
|
||||||
" Run commands that require an interactive shell
|
|
||||||
nnoremap <Leader>r :RunInInteractiveShell<Space>
|
|
||||||
|
|
||||||
" Treat <li> and <p> tags like the block tags they are
|
|
||||||
let g:html_indent_tags = 'li\|p'
|
|
||||||
|
|
||||||
" Open new split panes to right and bottom, which feels more natural
|
|
||||||
set splitbelow
|
|
||||||
set splitright
|
|
||||||
|
|
||||||
" Quicker window movement
|
|
||||||
nnoremap <C-j> <C-w>j
|
|
||||||
nnoremap <C-k> <C-w>k
|
|
||||||
nnoremap <C-h> <C-w>h
|
|
||||||
nnoremap <C-l> <C-w>l
|
|
||||||
|
|
||||||
" Map Ctrl + p to open fuzzy find (FZF)
|
|
||||||
nnoremap <c-p> :Files<cr>
|
|
||||||
|
|
25
vim.nix
25
vim.nix
|
@ -1,26 +1,21 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.vim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
defaultEditor = true;
|
||||||
plugins = with pkgs.vimPlugins; [
|
plugins = with pkgs.vimPlugins; [
|
||||||
vim-nix
|
vim-nix
|
||||||
rust-vim
|
rust-vim
|
||||||
fzf-vim
|
fzf-vim
|
||||||
sleuth
|
sleuth
|
||||||
|
whitespace-nvim # ,t to trim whitespace
|
||||||
|
vimsence
|
||||||
|
vim-wordy #:Wordy [kind], :NoWordy
|
||||||
|
vim-pencil #:Pencil, :NoPencil
|
||||||
|
ctrlp-vim
|
||||||
];
|
];
|
||||||
extraConfig = ''
|
extraLuaConfig = (builtins.readFile ./rcfiles/neovim.lua);
|
||||||
source ${./rcfiles/vimrc}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
extraLuaConfig = ''
|
|
||||||
vim.opt.ignorecase = true -- search case insensitive
|
|
||||||
vim.opt.smartcase = true -- search matters if capital letter
|
|
||||||
vim.opt.inccommand = "split" -- "for incsearch while sub
|
|
||||||
vim.g.mapleader = ","
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue