diff --git a/docs/tech_docs/linux/vim.md b/docs/tech_docs/linux/vim.md new file mode 100644 index 0000000..007389b --- /dev/null +++ b/docs/tech_docs/linux/vim.md @@ -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 n :NERDTreeToggle + +" ============================================================================== +" 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. \ No newline at end of file