" === BASIC SETTINGS ===
set nocompatible
filetype plugin indent on
syntax enable
set encoding=utf-8
set hidden
" === ILE FORMAT SETTINGS ===
set fileformat=unix
set fileformats=unix,dos,mac
autocmd BufRead * set ff=unix
nnoremap <leader>fm :%s/\r//g<CR>
" === WINDOW MANAGEMENT ===
set splitbelow
set splitright
" === PLUGINS ===
call plug#begin('~/.vim/plugged')
Plug 'vhda/verilog_systemverilog.vim'
Plug 'vim-perl/vim-perl'
Plug 'WolfgangMehner/bash-support'
Plug 'tpope/vim-commentary'
Plug 'tpope/vim-surround'
Plug 'jiangmiao/auto-pairs'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'morhetz/gruvbox'
Plug 'arcticicestudio/nord-vim'
Plug 'joshdick/[Link]'
Plug 'projekt0n/github-nvim-theme'
call plug#end()
" === FONT SIZE ===
set guifont=Monospace\ 13.5
" === DARK THEME ===
colorscheme koehler
set background=dark
set termguicolors
set t_Co=256
" === VISUAL SETTINGS ===
set number
set cursorline
set scrolloff=8
" === CURSOR LOCATION STRIPS ===
set cursorline " Highlight current line
set cursorcolumn " Highlight current column
" Improve readability for dark theme
highlight Comment gui=italic
highlight LineNr guifg=#666666
highlight CursorLineNr guifg=#ffffff
highlight Search guibg=yellow guifg=black
highlight CursorLine ctermbg=234 guibg=#1c1c1c
highlight CursorColumn ctermbg=234 guibg=#1c1c1c
highlight ColorColumn ctermbg=235 guibg=#262626
" === FILE FORMAT SETTINGS ===
set fileformat=unix
set fileformats=unix,dos,mac
autocmd BufRead * set ff=unix
nnoremap <leader>fm :%s/\r//g<CR>
" === WINDOW MANAGEMENT ===
set splitbelow
set splitright
" Automatically set executable permission and shebang for Perl and Tcl files
autocmd BufNewFile *.pl call SetPerlExecutable()
autocmd BufNewFile *.tcl call SetTclExecutable()
function! SetPerlExecutable()
call setline(1, "#!/usr/bin/perl")
setfiletype perl
endfunction
function! SetTclExecutable()
call setline(1, "#!/usr/bin/tclsh")
setfiletype tcl
endfunction
" Make files executable when saving Perl and Tcl scripts
autocmd BufWritePost *.pl,*.tcl call MakeExecutable()
function! MakeExecutable()
if getline(1) =~ '^#!'
silent !chmod +777 %
redraw!
endif
endfunction