3 Commits

Author SHA1 Message Date
ceb844230f Add stow ignore file. 2026-02-13 20:06:02 -05:00
1d29a92898 Add install script and update README. 2026-02-13 20:05:51 -05:00
7dd10b9a9c Update vimrc. 2026-02-13 19:44:33 -05:00
9 changed files with 92 additions and 67 deletions

View File

@@ -1,5 +1,5 @@
# For Rust stuff, uncomment this line # For Rust stuff, uncomment this line
#. "$HOME/.cargo/env" . "$HOME/.cargo/env"
alias ,git='git config --global user.name "Shaun Reed" && git config --global user.email "shaunrd0@gmail.com"' alias ,git='git config --global user.name "Shaun Reed" && git config --global user.email "shaunrd0@gmail.com"'
if [ -f /.dockerenv ]; then if [ -f /.dockerenv ]; then

2
.gitignore vendored
View File

@@ -1,4 +1,6 @@
.bashrc
.bash_secrets .bash_secrets
.vim/.netrwhist
.idea/ .idea/
.config/Code/Backups/* .config/Code/Backups/*
.config/Code/*Cache*/* .config/Code/*Cache*/*

4
.stow-local-ignore Normal file
View File

@@ -0,0 +1,4 @@
README.md
setup.sh
Dockerfile
VimScreenshot.png

View File

@@ -1,5 +0,0 @@
let g:netrw_dirhistmax =10
let g:netrw_dirhistcnt =3
let g:netrw_dirhist_3='/home/kapper/.ssh'
let g:netrw_dirhist_2='/home/kapper'
let g:netrw_dirhist_1='/home/kapper/dot/vim/.vim/bundle/vim-airline-themes'

4
.vim/backup/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Don't ignore this file
!.gitignore

4
.vim/swap/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Don't ignore this file
!.gitignore

79
.vimrc
View File

@@ -1,7 +1,12 @@
" Single-quote is a comment written to be read " Single-quote is a comment written to be read
" Double-quotes are commented out code and can be removed or added " Double-quotes are commented out code and can be removed or added
"
" General Vim Settings " General Vim Settings
" Fix plugin compatibility issues
set nocp
let is_docker = filereadable(expand('/.dockerenv')) let is_docker = filereadable(expand('/.dockerenv'))
let has_sauce = filereadable(expand('~/.local/share/fonts/sauce-code-pro.otf')) let has_sauce = filereadable(expand('~/.local/share/fonts/sauce-code-pro.otf'))
let is_xorg = exists("$DISPLAY") let is_xorg = exists("$DISPLAY")
@@ -13,42 +18,25 @@ let is_xorg = exists("$DISPLAY")
" Keep the bottom / top of the page n lines from the cursor " Keep the bottom / top of the page n lines from the cursor
set scrolloff=5 set scrolloff=5
" set paths for swap, backup, and undo files
" :help directory
set directory=~/.vim/swap//,~/tmp/,/var/tmp/,/tmp/,.
" :help backupdir
set backupdir=~/.vim/backup//,~/tmp/,/var/tmp/,/tmp/,.
" Persistant undo " Persistant undo
" :help undo-persistence " :help undo-persistence
set undodir=~/.vim/undodir set undodir=~/.vim/undo//,~/tmp/,/var/tmp/,/tmp/,.
set undofile set undofile
" Combine vim clipboard with global clipboard buffer " Combine vim clipboard with global clipboard buffer
" Allows using y and p to copy into CTRL-C buffer, vice versa " Allows using y and p to copy into CTRL-C buffer, vice versa
" :help 'clipboard' " :help 'clipboard'
set clipboard=unnamed set clipboard=unnamed
set clipboard+=unnamedplus set clipboard=unnamedplus
" Allows true colors in vim (> 8 bit colors) " Allows true colors in vim (> 8 bit colors)
" :help termguicolors " :help termguicolors
"set termguicolors ""set termguicolors
" Custom formatting based on filetype
" :help autocmd
"" autocmd FileType yaml set tabstop=2 shiftwidth=2
" Highlight characters past column N in source files based on file type
autocmd FileType cpp,c match ErrorMsg '\%>80v.\+'
autocmd FileType cs match ErrorMsg '\%>120v.\+'
" Define function in vim to remove whitespace
fun! TrimWhitespace()
let l:save = winsaveview()
keeppatterns %s/\s\+$//e
call winrestview(l:save)
endfun
"Call this on every attempt to save a file of types defined below..
autocmd BufWritePre *.cpp,*.h,*.c,*.php,*.cs,*.yml,*.txt,*.md :call TrimWhitespace()
""autocmd BufWritePre *.cpp,*.h,*.c,*.php :%s/\s\+$//ge
" Set terminal title when opening file
"" autocmd BufEnter * let &titlestring = ' ' . expand("%:t")
"" set title
" Set tabwidth=2, adjust Vim shiftwidth to the same " Set tabwidth=2, adjust Vim shiftwidth to the same
set tabstop=2 shiftwidth=2 set tabstop=2 shiftwidth=2
@@ -64,23 +52,15 @@ set mouse=a
set number set number
" Use Powerline symbols
""let g:airline_powerline_fonts = 1
" Enable Syntax Highlighting in Vim " Enable Syntax Highlighting in Vim
syntax on syntax on
" Use Sourcerer color scheme by Xero " Use Sourcerer color scheme by Xero
colorscheme sourcerer colorscheme sourcerer
" Fix plugin compatibility issues
set nocp
" Allow backspace to remove all types of characters " Allow backspace to remove all types of characters
set backspace=indent,eol,start set backspace=indent,eol,start
" Set terminal title when opening file "
"" autocmd BufEnter * let &titlestring = ' ' . expand("%:t")
"" set title
" Custom Vim Keybindings " Custom Vim Keybindings
" nnoremap <C-e> <C-w> " Modify and remove leading quotation " nnoremap <C-e> <C-w> " Modify and remove leading quotation
@@ -95,6 +75,34 @@ nnoremap <C-e> <C-w>
"nnoremap <C-b> :!cmake -S . -B ./build/ && cmake --build ./build "nnoremap <C-b> :!cmake -S . -B ./build/ && cmake --build ./build
"nnoremap <C-d> :!./build/scrap "nnoremap <C-d> :!./build/scrap
" Define function in vim to remove whitespace
fun! TrimWhitespace()
let l:save = winsaveview()
keeppatterns %s/\s\+$//e
" Restore window view to retain cursor position
call winrestview(l:save)
endfun
" :help autocmd
augroup DotAutoCmd
autocmd!
" Set custom options based on filetype
autocmd FileType yaml set tabstop=2 shiftwidth=2
" Highlight characters past column N in source files based on file type
autocmd FileType cpp,c,cc,rust match ErrorMsg '\%>80v.\+'
autocmd FileType cs match ErrorMsg '\%>120v.\+'
"Call this on every attempt to save a file of types defined below..
autocmd BufWritePre * call TrimWhitespace()
" Set terminal title when opening file
"" autocmd BufEnter * let &titlestring = ' ' . expand("%:t")
"" set title
augroup END
"
" Vim Plugin Settings " Vim Plugin Settings
" set rtp+=/path/to/rtp/that/included/pathogen/vim " if needed " set rtp+=/path/to/rtp/that/included/pathogen/vim " if needed
@@ -178,7 +186,7 @@ elseif is_xorg
let g:airline_symbols.notexists = 'Ɇ' let g:airline_symbols.notexists = 'Ɇ'
let g:airline_symbols.whitespace = 'Ξ' let g:airline_symbols.whitespace = 'Ξ'
else else
" unicode symbols " no symbols
let g:airline_left_sep = '' let g:airline_left_sep = ''
let g:airline_left_sep = '' let g:airline_left_sep = ''
let g:airline_right_sep = '' let g:airline_right_sep = ''
@@ -201,6 +209,7 @@ else
let g:airline_symbols.whitespace = '' let g:airline_symbols.whitespace = ''
endif endif
"
" Clang completeion settings " Clang completeion settings
" If this is set, clang_complete will not be loaded at all " If this is set, clang_complete will not be loaded at all

View File

@@ -1,3 +1,5 @@
## Dotfiles
Dotfiles configurations for headless Ubuntu 22.04 linux environments. Be sure to clone recursively if you want to grab updated plugins / submodules included. For example, using Pathogen with Vim to manage plugins requires that the plugin to be installed are cloned to the `~/.vim/bundle/` directory. Cloning recursively allows git to clone these same nested repositories/submodules within this directory so Pathogen can handle running the Vim plugins. Dotfiles configurations for headless Ubuntu 22.04 linux environments. Be sure to clone recursively if you want to grab updated plugins / submodules included. For example, using Pathogen with Vim to manage plugins requires that the plugin to be installed are cloned to the `~/.vim/bundle/` directory. Cloning recursively allows git to clone these same nested repositories/submodules within this directory so Pathogen can handle running the Vim plugins.
Once installed, editing source code in vim supports features displayed in the screenshot below Once installed, editing source code in vim supports features displayed in the screenshot below
@@ -6,34 +8,16 @@ Once installed, editing source code in vim supports features displayed in the sc
### Install Dotfiles ### Install Dotfiles
Easiest installation is to clone repository into home directory - If you don't install `vim-gtk3`, vim will not have access to your system clipboard, and your copy and paste buffers will not stay in sync.
Installation instructions -
```bash ```bash
sudo apt install git stow vim xsel xclip tmux ranger clang yakuake wget curl git clone --recursive https://github.com/shaunrd0/dot
git clone --recursive https://github.com/shaunrd0/dot ~/dot cd dot/
cd ~/dot/ ./setup.sh
stow --adopt . mv ~/.bashrc ~/.bashrc.backup
``` stow . -t ~
If you'd rather clone elsewhere -
```bash
git clone --recursive https://github.com/shaunrd0/dot /path/to/dot
cd /path/to/dot/
stow --adopt -t ~ .
```
**Warning:** `--adopt` is used to link conflicting files, but doing so could result in the loss of some configs within your local copy of the repository and on your local system.
After running `stow --adopt .`, be sure to check `git status` is clean.
If a file has been modified, discard the local changes to be up-to-date with `origin/master` and it will be restored on your system as well, since the files are now linked. **Your conflicting local system configurations will be lost** unless you back them up manually.
We could run the following commands to restore changed files
```bash
git checkout -- .vimrc
# Or, to step through each change interactively using git..
git checkout -p
# Or restore the current directory
git restore .
``` ```
If you forget to clone recursively If you forget to clone recursively

23
setup.sh Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env bash
git submodule update --init
sudo apt update
sudo apt install -y \
git \
stow \
vim \
vim-gtk3 \
xsel \
xclip \
tmux \
ranger \
clang \
yakuake \
wget \
curl \
golang-go
go install github.com/arl/gitmux@latest