Add docs/tech_docs/linux/vim.md
This commit is contained in:
144
docs/tech_docs/linux/vim.md
Normal file
144
docs/tech_docs/linux/vim.md
Normal file
@@ -0,0 +1,144 @@
|
||||
Here's a basic `.vimrc` file structured with documentation and functionality, including some commonly used settings and plugins. This example assumes you're using Vim 8+ or Neovim, which has built-in package management capabilities. You can further customize it according to your preferences.
|
||||
|
||||
```bash
|
||||
" .vimrc - Basic Configuration
|
||||
" Author: [Your Name]
|
||||
" Last Modified: [Date]
|
||||
|
||||
" Ensure compatibility with older Vim versions
|
||||
if version < 700
|
||||
echo "You need Vim 7.0 or greater"
|
||||
finish
|
||||
endif
|
||||
|
||||
" Prevent loading this file more than once
|
||||
if exists("g:loaded_vimrc")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_vimrc = 1
|
||||
|
||||
" ==============================================================================
|
||||
" General Settings
|
||||
" ==============================================================================
|
||||
|
||||
" Set UTF-8 encoding
|
||||
set encoding=utf-8
|
||||
set fileencoding=utf-8
|
||||
|
||||
" Use system clipboard
|
||||
set clipboard=unnamedplus
|
||||
|
||||
" Enable syntax highlighting
|
||||
syntax on
|
||||
|
||||
" Set tabs and spaces preferences for indentation
|
||||
set tabstop=4 " Number of visual spaces per TAB
|
||||
set softtabstop=4 " Number of spaces in tab when editing
|
||||
set shiftwidth=4 " Number of spaces to use for autoindent
|
||||
set expandtab " Convert tabs to spaces
|
||||
|
||||
" Enable line numbers
|
||||
set number
|
||||
|
||||
" Enable relative line numbers
|
||||
set relativenumber
|
||||
|
||||
" Highlight current line
|
||||
set cursorline
|
||||
|
||||
" Enable mouse support
|
||||
set mouse=a
|
||||
|
||||
" Disable swap files
|
||||
set noswapfile
|
||||
|
||||
" ==============================================================================
|
||||
" Search Settings
|
||||
" ==============================================================================
|
||||
|
||||
" Highlight search results
|
||||
set hlsearch
|
||||
|
||||
" Case-insensitive searching
|
||||
set ignorecase
|
||||
|
||||
" Case-sensitive if contains uppercase
|
||||
set smartcase
|
||||
|
||||
" Incremental search
|
||||
set incsearch
|
||||
|
||||
" ==============================================================================
|
||||
" Visual Settings
|
||||
" ==============================================================================
|
||||
|
||||
" Set color scheme
|
||||
colorscheme desert
|
||||
|
||||
" Enable 256 colors
|
||||
set t_Co=256
|
||||
|
||||
" Set status bar
|
||||
set laststatus=2
|
||||
|
||||
" ==============================================================================
|
||||
" Plugin Management (Using Vim 8+ package feature)
|
||||
" ==============================================================================
|
||||
|
||||
" Specify directory for plugins (change '~/.vim' to '~/.config/nvim' for Neovim)
|
||||
execute "set runtimepath^=~/.vim/pack/plugins/start"
|
||||
|
||||
" Plug: vim-plug installation and setup
|
||||
" Note: For automatic installation, refer to vim-plug documentation
|
||||
|
||||
" ==============================================================================
|
||||
" Plugins Configuration
|
||||
" ==============================================================================
|
||||
|
||||
" Plug 'tpope/vim-surround' " Surround text with characters
|
||||
" Plug 'preservim/nerdtree' " File system explorer
|
||||
" Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " Fuzzy finder
|
||||
|
||||
" ==============================================================================
|
||||
" Key Bindings
|
||||
" ==============================================================================
|
||||
|
||||
" Map leader key to space
|
||||
let mapleader=" "
|
||||
|
||||
" NERDTree toggle
|
||||
nnoremap <leader>n :NERDTreeToggle<CR>
|
||||
|
||||
" ==============================================================================
|
||||
" Custom Functions
|
||||
" ==============================================================================
|
||||
|
||||
" Add your custom Vim functions here
|
||||
|
||||
" ==============================================================================
|
||||
" Autocommands
|
||||
" ==============================================================================
|
||||
|
||||
" Auto-close NERDTree on closing Vim if it's the last window
|
||||
autocmd vimexit * if !argc() | NERDTreeClose | endif
|
||||
|
||||
" ==============================================================================
|
||||
" Final Touches
|
||||
" ==============================================================================
|
||||
|
||||
" Filetype plugin indent on
|
||||
filetype plugin indent on
|
||||
|
||||
" Enable spell checking for certain file types
|
||||
autocmd FileType gitcommit,markdown setlocal spell
|
||||
|
||||
" ==============================================================================
|
||||
" End of .vimrc
|
||||
" ==============================================================================
|
||||
```
|
||||
|
||||
This `.vimrc` example includes essential configurations for a smooth and efficient Vim experience, such as UTF-8 encoding, tab settings, line numbering, and search behaviors. It also outlines the use of Vim's package feature for plugin management, though the actual installation of plugins like `vim-plug` would require additional steps not covered directly in this file.
|
||||
|
||||
For each plugin listed (e.g., `vim-surround`, `nerdtree`, `fzf`), you would typically clone the plugin's repository into the specified directory or use a plugin manager like `vim-plug` to automate their installation and updates.
|
||||
|
||||
Remember, this is a starting point. As you grow more comfortable with Vim and your personal workflow evolves, you'll likely add, remove, or tweak these settings to better suit your needs.
|
||||
Reference in New Issue
Block a user