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