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, ... }:
|
||||
{
|
||||
programs.vim = {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
defaultEditor = true;
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
vim-nix
|
||||
rust-vim
|
||||
fzf-vim
|
||||
sleuth
|
||||
whitespace-nvim # ,t to trim whitespace
|
||||
vimsence
|
||||
vim-wordy #:Wordy [kind], :NoWordy
|
||||
vim-pencil #:Pencil, :NoPencil
|
||||
ctrlp-vim
|
||||
];
|
||||
extraConfig = ''
|
||||
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 = ","
|
||||
'';
|
||||
extraLuaConfig = (builtins.readFile ./rcfiles/neovim.lua);
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue