First commit

This commit is contained in:
Candifloss 2024-12-17 11:55:35 +05:30
parent dcffef2748
commit af8bafcf5c
4 changed files with 3435 additions and 2 deletions

164
README.md
View File

@ -1,3 +1,163 @@
# vim_config
# System-wide `vimrc` Configuration with Vim-Plug
System-wide vimrc config
This guide outlines the steps to set up a system-wide configuration for `vim` and install plugins using the plugin manager [Vim-Plug](https://github.com/junegunn/vim-plug). For more details on using `vim-plug`, other plugin managers, or individual plugins, consult their respective documentation or browse [VimAwesome](https://vimawesome.com/).
If you want to skip the instructions and use my config as-is, just go to [this section](#shortcut).
---
### 1. Setting Up the Configuration Directories
First, ensure that the necessary directories for system-wide vim configuration exist. Create the main vim configuration directory if it doesn't exist:
```bash
mkdir -p /etc/vim
cd /etc/vim
```
Next, create the required subdirectories with appropriate permissions. Create directories for autoload, colors, plugins, session data, etc:
```bash
mkdir -p -m 755 autoload colors plugged session sessions
```
---
### 2. Installing Vim-Plug and Color Schemes
#### 2.1. Download Vim-Plug
Vim-Plug is the plugin manager that will be used to install and manage plugins. Download it to the `autoload` directory:
```bash
curl -fLo /etc/vim/autoload/plug.vim https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
```
Set the appropriate permissions for the downloaded file:
```bash
chmod o+r /etc/vim/autoload/*
```
#### 2.2. Install a Color Scheme (Optional)
You can pick a color scheme of your choice. Place it in the `colors/` directory. For this example, we'll use the **Molokai** color scheme.
```bash
curl -fLo /etc/vim/colors/molokai.vim https://raw.githubusercontent.com/tomasr/molokai/refs/heads/master/colors/molokai.vim
```
Ensure that the color scheme file has the correct permissions:
```bash
chmod o+r /etc/vim/colors/*
```
---
### 3. Configuring the `vimrc`
The system-wide `vimrc` file location might vary depending on your Linux distribution. On Ubuntu, it is typically found at `/etc/vim/vimrc`. If the file doesn't exist, create it with the required permissions.
```bash
touch /etc/vim/vimrc
chmod 755 /etc/vim/vimrc
vim /etc/vim/vimrc
```
#### 3.1. Set Runtime Paths
To ensure `vim` recognizes the autoload, plugin, and color scheme directories, add the following lines to your `vimrc`:
```vim
set runtimepath+=/etc/vim/autoload
set runtimepath+=/etc/vim/plugged
set runtimepath+=/etc/vim/colors
```
#### 3.2. Enable Vim-Plug and Install Plugins
To initialize `vim-plug` and install plugins, add the following configuration to your `vimrc`. This specifies the plugin directory and lists the plugins you'd like to use.
```vim
" Initialize Vim-Plug
call plug#begin('/etc/vim/plugged')
" List plugins here
Plug 'rust-lang/rust.vim' " Example plugin for Rust syntax highlighting
" Add more plugins as needed...
" End plugin section
call plug#end()
```
#### 3.3. Enable Filetype Plugins and Indentation
To enable filetype-specific plugins and proper indentation, add this line to your `vimrc`:
```vim
filetype plugin indent on " Enable filetype-based plugins and indentation
```
You can also add any other custom configurations such as tab size, line numbering, or key mappings. For a comprehensive example, refer to [my vimrc](https://git.candifloss.cc/candifloss/vim_config/src/branch/main/vimrc).
---
### 4. Installing the Plugins
Once you've updated your `vimrc`, its time to install the plugins.
#### 4.1. Source the `vimrc`
After saving the changes to the `vimrc`, source it to apply the changes:
```vim
:source %
```
#### 4.2. Install Plugins
Run the following command to install the plugins specified in your `vimrc`:
```vim
:PlugInstall " This command is specific to vim-plug
```
This will download and install all the listed plugins.
---
### 5. Done!
Once the installation is complete, your system-wide `vim` should be fully configured with the desired plugins and color schemes. You're now ready to enjoy a fully customized `vim` experience!
---
### Shortcut
To install my config as-is, just run this as root:
```bash
mkdir -p /etc/vim/
cd /etc/vim/
git clone https://git.candifloss.cc/candifloss/vim_config.git .
mkdir -p plugged session sessions
chmod 755 /etc/vim/*
chmod o+r /etc/vim/autoload/*
chmod o+r /etc/vim/colors/*
chmod o+r -R /etc/vim/plugged/*
chmod o+x /etc/vim/plugged/*
```
That should work.
### Troubleshooting
- **Permissions**: Ensure that the directories and files in `/etc/vim` have the correct read and execute permissions for all users who need access.
- **Plugin Conflicts**: If you encounter issues with specific plugins, check their documentation for configuration options or known issues.
### References
- Stack-Overflow: [File permissions for vimrc](https://stackoverflow.com/a/45018554)
- Vim docs: [Location of system-wide vimrc](https://vimdoc.sourceforge.net/htmldoc/starting.html#system-vimrc)
- [Vim-Plug](https://github.com/junegunn/vim-plug): Installation, syntax for specifying plugins, etc.
- [Vim-Awesome](https://vimawesome.com): Collection of plugins and installation guides.
- vimhelp.org: [Vim9-script syntax reference](https://vimhelp.org/vim9.txt.html) for vimrc config and vim scripting.

2863
autoload/plug.vim Normal file

File diff suppressed because it is too large Load Diff

276
colors/molokai.vim Normal file
View File

@ -0,0 +1,276 @@
" Vim color file
"
" Author: Tomas Restrepo <tomas@winterdom.com>
" https://github.com/tomasr/molokai
"
" Note: Based on the Monokai theme for TextMate
" by Wimer Hazenberg and its darker variant
" by Hamish Stuart Macpherson
"
hi clear
if version > 580
" no guarantees for version 5.8 and below, but this makes it stop
" complaining
hi clear
if exists("syntax_on")
syntax reset
endif
endif
let g:colors_name="molokai"
if exists("g:molokai_original")
let s:molokai_original = g:molokai_original
else
let s:molokai_original = 0
endif
hi Boolean guifg=#AE81FF
hi Character guifg=#E6DB74
hi Number guifg=#AE81FF
hi String guifg=#E6DB74
hi Conditional guifg=#F92672 gui=bold
hi Constant guifg=#AE81FF gui=bold
hi Cursor guifg=#000000 guibg=#F8F8F0
hi iCursor guifg=#000000 guibg=#F8F8F0
hi Debug guifg=#BCA3A3 gui=bold
hi Define guifg=#66D9EF
hi Delimiter guifg=#8F8F8F
hi DiffAdd guibg=#13354A
hi DiffChange guifg=#89807D guibg=#4C4745
hi DiffDelete guifg=#960050 guibg=#1E0010
hi DiffText guibg=#4C4745 gui=italic,bold
hi Directory guifg=#A6E22E gui=bold
hi Error guifg=#E6DB74 guibg=#1E0010
hi ErrorMsg guifg=#F92672 guibg=#232526 gui=bold
hi Exception guifg=#A6E22E gui=bold
hi Float guifg=#AE81FF
hi FoldColumn guifg=#465457 guibg=#000000
hi Folded guifg=#465457 guibg=#000000
hi Function guifg=#A6E22E
hi Identifier guifg=#FD971F
hi Ignore guifg=#808080 guibg=bg
hi IncSearch guifg=#C4BE89 guibg=#000000
hi Keyword guifg=#F92672 gui=bold
hi Label guifg=#E6DB74 gui=none
hi Macro guifg=#C4BE89 gui=italic
hi SpecialKey guifg=#66D9EF gui=italic
hi MatchParen guifg=#000000 guibg=#FD971F gui=bold
hi ModeMsg guifg=#E6DB74
hi MoreMsg guifg=#E6DB74
hi Operator guifg=#F92672
" complete menu
hi Pmenu guifg=#66D9EF guibg=#000000
hi PmenuSel guibg=#808080
hi PmenuSbar guibg=#080808
hi PmenuThumb guifg=#66D9EF
hi PreCondit guifg=#A6E22E gui=bold
hi PreProc guifg=#A6E22E
hi Question guifg=#66D9EF
hi Repeat guifg=#F92672 gui=bold
hi Search guifg=#000000 guibg=#FFE792
" marks
hi SignColumn guifg=#A6E22E guibg=#232526
hi SpecialChar guifg=#F92672 gui=bold
hi SpecialComment guifg=#7E8E91 gui=bold
hi Special guifg=#66D9EF guibg=bg gui=italic
if has("spell")
hi SpellBad guisp=#FF0000 gui=undercurl
hi SpellCap guisp=#7070F0 gui=undercurl
hi SpellLocal guisp=#70F0F0 gui=undercurl
hi SpellRare guisp=#FFFFFF gui=undercurl
endif
hi Statement guifg=#F92672 gui=bold
hi StatusLine guifg=#455354 guibg=fg
hi StatusLineNC guifg=#808080 guibg=#080808
hi StorageClass guifg=#FD971F gui=italic
hi Structure guifg=#66D9EF
hi Tag guifg=#F92672 gui=italic
hi Title guifg=#ef5939
hi Todo guifg=#FFFFFF guibg=bg gui=bold
hi Typedef guifg=#66D9EF
hi Type guifg=#66D9EF gui=none
hi Underlined guifg=#808080 gui=underline
hi VertSplit guifg=#808080 guibg=#080808 gui=bold
hi VisualNOS guibg=#403D3D
hi Visual guibg=#403D3D
hi WarningMsg guifg=#FFFFFF guibg=#333333 gui=bold
hi WildMenu guifg=#66D9EF guibg=#000000
hi TabLineFill guifg=#1B1D1E guibg=#1B1D1E
hi TabLine guibg=#1B1D1E guifg=#808080 gui=none
if s:molokai_original == 1
hi Normal guifg=#F8F8F2 guibg=#272822
hi Comment guifg=#75715E
hi CursorLine guibg=#3E3D32
hi CursorLineNr guifg=#FD971F gui=none
hi CursorColumn guibg=#3E3D32
hi ColorColumn guibg=#3B3A32
hi LineNr guifg=#BCBCBC guibg=#3B3A32
hi NonText guifg=#75715E
hi SpecialKey guifg=#75715E
else
hi Normal guifg=#F8F8F2 guibg=#1B1D1E
hi Comment guifg=#7E8E91
hi CursorLine guibg=#293739
hi CursorLineNr guifg=#FD971F gui=none
hi CursorColumn guibg=#293739
hi ColorColumn guibg=#232526
hi LineNr guifg=#465457 guibg=#232526
hi NonText guifg=#465457
hi SpecialKey guifg=#465457
end
"
" Support for 256-color terminal
"
if &t_Co > 255
if s:molokai_original == 1
hi Normal ctermbg=234
hi CursorLine ctermbg=235 cterm=none
hi CursorLineNr ctermfg=208 cterm=none
else
hi Normal ctermfg=252 ctermbg=233
hi CursorLine ctermbg=234 cterm=none
hi CursorLineNr ctermfg=208 cterm=none
endif
hi Boolean ctermfg=135
hi Character ctermfg=144
hi Number ctermfg=135
hi String ctermfg=144
hi Conditional ctermfg=161 cterm=bold
hi Constant ctermfg=135 cterm=bold
hi Cursor ctermfg=16 ctermbg=253
hi Debug ctermfg=225 cterm=bold
hi Define ctermfg=81
hi Delimiter ctermfg=241
hi DiffAdd ctermbg=24
hi DiffChange ctermfg=181 ctermbg=239
hi DiffDelete ctermfg=162 ctermbg=53
hi DiffText ctermbg=102 cterm=bold
hi Directory ctermfg=118 cterm=bold
hi Error ctermfg=219 ctermbg=89
hi ErrorMsg ctermfg=199 ctermbg=16 cterm=bold
hi Exception ctermfg=118 cterm=bold
hi Float ctermfg=135
hi FoldColumn ctermfg=67 ctermbg=16
hi Folded ctermfg=67 ctermbg=16
hi Function ctermfg=118
hi Identifier ctermfg=208 cterm=none
hi Ignore ctermfg=244 ctermbg=232
hi IncSearch ctermfg=193 ctermbg=16
hi keyword ctermfg=161 cterm=bold
hi Label ctermfg=229 cterm=none
hi Macro ctermfg=193
hi SpecialKey ctermfg=81
hi MatchParen ctermfg=233 ctermbg=208 cterm=bold
hi ModeMsg ctermfg=229
hi MoreMsg ctermfg=229
hi Operator ctermfg=161
" complete menu
hi Pmenu ctermfg=81 ctermbg=16
hi PmenuSel ctermfg=255 ctermbg=242
hi PmenuSbar ctermbg=232
hi PmenuThumb ctermfg=81
hi PreCondit ctermfg=118 cterm=bold
hi PreProc ctermfg=118
hi Question ctermfg=81
hi Repeat ctermfg=161 cterm=bold
hi Search ctermfg=0 ctermbg=222 cterm=NONE
" marks column
hi SignColumn ctermfg=118 ctermbg=235
hi SpecialChar ctermfg=161 cterm=bold
hi SpecialComment ctermfg=245 cterm=bold
hi Special ctermfg=81
if has("spell")
hi SpellBad ctermbg=52
hi SpellCap ctermbg=17
hi SpellLocal ctermbg=17
hi SpellRare ctermfg=none ctermbg=none cterm=reverse
endif
hi Statement ctermfg=161 cterm=bold
hi StatusLine ctermfg=238 ctermbg=253
hi StatusLineNC ctermfg=244 ctermbg=232
hi StorageClass ctermfg=208
hi Structure ctermfg=81
hi Tag ctermfg=161
hi Title ctermfg=166
hi Todo ctermfg=231 ctermbg=232 cterm=bold
hi Typedef ctermfg=81
hi Type ctermfg=81 cterm=none
hi Underlined ctermfg=244 cterm=underline
hi VertSplit ctermfg=244 ctermbg=232 cterm=bold
hi VisualNOS ctermbg=238
hi Visual ctermbg=235
hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold
hi WildMenu ctermfg=81 ctermbg=16
hi Comment ctermfg=59
hi CursorColumn ctermbg=236
hi ColorColumn ctermbg=236
hi LineNr ctermfg=250 ctermbg=236
hi NonText ctermfg=59
hi SpecialKey ctermfg=59
if exists("g:rehash256") && g:rehash256 == 1
hi Normal ctermfg=252 ctermbg=234
hi CursorLine ctermbg=236 cterm=none
hi CursorLineNr ctermfg=208 cterm=none
hi Boolean ctermfg=141
hi Character ctermfg=222
hi Number ctermfg=141
hi String ctermfg=222
hi Conditional ctermfg=197 cterm=bold
hi Constant ctermfg=141 cterm=bold
hi DiffDelete ctermfg=125 ctermbg=233
hi Directory ctermfg=154 cterm=bold
hi Error ctermfg=222 ctermbg=233
hi Exception ctermfg=154 cterm=bold
hi Float ctermfg=141
hi Function ctermfg=154
hi Identifier ctermfg=208
hi Keyword ctermfg=197 cterm=bold
hi Operator ctermfg=197
hi PreCondit ctermfg=154 cterm=bold
hi PreProc ctermfg=154
hi Repeat ctermfg=197 cterm=bold
hi Statement ctermfg=197 cterm=bold
hi Tag ctermfg=197
hi Title ctermfg=203
hi Visual ctermbg=238
hi Comment ctermfg=244
hi LineNr ctermfg=239 ctermbg=235
hi NonText ctermfg=239
hi SpecialKey ctermfg=239
endif
end
" Must be at the end, because of ctermbg=234 bug.
" https://groups.google.com/forum/#!msg/vim_dev/afPqwAFNdrU/nqh6tOM87QUJ
set background=dark

134
vimrc Executable file
View File

@ -0,0 +1,134 @@
vim9script
# General
set runtimepath+=/etc/vim/autoload
set runtimepath+=/etc/vim/plugged
set runtimepath+=/etc/vim/colors
set nowrap # Wrap lines
set textwidth=100 # Line wrap (number of cols)
set showmatch # Highlight matching brace
set hlsearch # Highlight all search results
set smartcase # Enable smart-case search
set ignorecase # Always case-insensitive
set incsearch # Searches for strings incrementally
set autoindent # Auto-indent new lines
set shiftwidth=4 # Number of auto-indent spaces
set smartindent # Enable smart-indent
set smarttab # Enable smart-tabs
set softtabstop=4 # Number of spaces per Tab
# Advanced
set ruler # Show row and column ruler information
# Begin Vim-plug Plugins
call plug#begin('/etc/vim/plugged')
# C bundle
# Plug 'vim-scripts/c.vim', {'for': ['c', 'cpp']}
# Plug 'ludwig/split-manpage.vim'
# HTML Bundle
Plug 'hail2u/vim-css3-syntax'
Plug 'gko/vim-coloresque'
Plug 'tpope/vim-haml'
Plug 'mattn/emmet-vim'
# Javascript Bundle
# Plug 'jelera/vim-javascript-syntax'
# PHP Bundle
Plug 'phpactor/phpactor', {'for': 'php', 'do': 'composer install --no-dev -o'}
Plug 'stephpy/vim-php-cs-fixer'
# Python Bundle
Plug 'davidhalter/jedi-vim'
Plug 'raimon49/requirements.txt.vim', {'for': 'requirements'}
# Ruby bundle
# Plug 'tpope/vim-rails'
# Plug 'tpope/vim-rake'
# Plug 'tpope/vim-projectionist'
# Plug 'thoughtbot/vim-rspec'
# Plug 'ecomba/vim-ruby-refactoring', {'tag': 'main'}
# Rust
Plug 'racer-rust/vim-racer' # Vim racer
Plug 'rust-lang/rust.vim' # Rust.vim
# CSS
Plug 'hail2u/vim-css3-syntax'
Plug 'webfd/vim-scss'
# Bash
Plug 'vim-scripts/sh.vim'
# Plug 'zplugin/zplugin-vim-syntax'
# Vim lsp
# Plug 'prabirshrestha/vim-lsp'
# Async.vim
# Plug 'prabirshrestha/async.vim'
# Asyncomplete.vim
# Plug 'prabirshrestha/asyncomplete.vim'
# Asyncomplete lsp.vim
# Plug 'prabirshrestha/asyncomplete-lsp.vim'
# Yuck for eww widgets
Plug 'elkowar/yuck.vim'
# Airline statusbar
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
call plug#end()
# END PLUGINS###
# Required for filetype-specific plugins
filetype plugin indent on
set backspace=indent,eol,start
colorscheme molokai
let g:airline_powerline_fonts = 1
let g:airline_theme='bubblegum'
# vim-airline
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
if !exists('g:airline_powerline_fonts')
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline_left_sep = '▶'
let g:airline_left_alt_sep = '»'
let g:airline_right_sep = '◀'
let g:airline_right_alt_sep = '«'
let g:airline#extensions#branch#prefix = '⤴'
let g:airline#extensions#readonly#symbol = '⊘'
let g:airline#extensions#linecolumn#prefix = '¶'
let g:airline#extensions#paste#symbol = 'ρ'
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.whitespace = 'Ξ'
else
let g:airline#extensions#tabline#left_sep = ''
let g:airline#extensions#tabline#left_alt_sep = ''
# powerline symbols
let g:airline_symbols.space = " "
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = '  '
let g:airline_symbols.maxlinenr = ''
let g:airline_symbols.colnr = '  '
endif