summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
-rw-r--r--bash/bash_profile5
-rw-r--r--bash/bashrc131
-rw-r--r--git/config3
-rwxr-xr-xinstall.sh99
-rw-r--r--nvim/colors/mac_classic.vim226
-rw-r--r--nvim/init.vim178
l---------nvim/nvim1
-rw-r--r--nvim/pack/mitsuo/Readme.txt1
-rw-r--r--nvim/pack/mitsuo/start/fun/Readme.txt1
-rw-r--r--nvim/pack/mitsuo/start/fun/plugin/fun.vim109
m---------nvim/pack/mitsuo/start/vim-commentary0
-rw-r--r--zathura/zathurarc (renamed from other/zathurarc)0
13 files changed, 645 insertions, 112 deletions
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..e247b6c
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "nvim/pack/mitsuo/start/vim-commentary"]
+ path = nvim/pack/mitsuo/start/vim-commentary
+ url = https://github.com/tpope/vim-commentary
diff --git a/bash/bash_profile b/bash/bash_profile
new file mode 100644
index 0000000..5545f00
--- /dev/null
+++ b/bash/bash_profile
@@ -0,0 +1,5 @@
+#
+# ~/.bash_profile
+#
+
+[[ -f ~/.bashrc ]] && . ~/.bashrc
diff --git a/bash/bashrc b/bash/bashrc
index 2c43535..03e1d31 100644
--- a/bash/bashrc
+++ b/bash/bashrc
@@ -1,18 +1,15 @@
-# ~/.bashrc: executed by bash(1) for non-login shells. (That's why ~/.profile
-# is needed. To source it from login shells? What does login shell mean
-# anyway).
-
+#
+# ~/.bashrc: executed by bash(1) for interactive shells
+#
# Tinkerer's guide to a prettier and colorful CLI:
# https://wiki.archlinux.org/title/Color_output_in_console
-# Basic
-# ======================================================================
-
# If not running interactively, don't do anything
-case $- in
- *i*) ;;
- *) return;;
-esac
+[[ $- != *i* ]] && return
+
+
+# Bash configuration
+# ==================
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
@@ -26,7 +23,7 @@ HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
-# update the values of LINES and COLUMNS.
+# update the values of LINES and COLUMNS. (Isn't this the default behaviour?)
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
@@ -37,58 +34,44 @@ shopt -s checkwinsize
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# colored GCC warnings and errors
-export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
+#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# Alias definitions.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
-# enable programmable completion features (you don't need to enable
-# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
-# sources /etc/bash.bashrc). Requires `bash-completion package
-if ! shopt -oq posix; then
- if [ -f /usr/share/bash-completion/bash_completion ]; then
- . /usr/share/bash-completion/bash_completion
- elif [ -f /etc/bash_completion ]; then
- . /etc/bash_completion
- fi
-fi
+# Don't forget to install bash-completion
-# set PATH so it includes user's private bin if it exists
-if [ -d "$HOME/.local/bin" ] ; then
- PATH="$HOME/.local/bin:$PATH"
-fi
+# Prompt
+# ------
-# Custom prompt:
+# - Basic [user@host $pwd]$
+#PS1='[\u@\h \W]\$ '
# - Blue timestamp and italic green pwd
#PS1='\[\033[34m\]|\D{%H:%M:%S}| \[\033[3;32m\][\w]\[\033[00m\]\n\$ '
-# If error `-bash: __git_ps1: command not found`, uncomment the following line
+
+# - user@host pwd (git prompt)
# Ref.: https://stackoverflow.com/a/15398153/7498073
-source ~/.git-prompt.sh
-# user@host pwd (git prompt)
+source ~/mahcode/dotfiles/git/git-prompt.sh
PS1='\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$ '
-# Extra
-# ======================================================================
-
-# My binaries
-if [ -d "$HOME/mahcode/bin" ]; then
- PATH="$HOME/mahcode/bin:$PATH"
-fi
+# Environment
+# ===========
-# Default editor. Affects a lot of programs.
-export EDITOR=vim
+export EDITOR=nvim
+export PATH="$HOME/.local/bin:$PATH"
+export PATH="$HOME/mahcode/bin:$PATH"
-# redundant but useful
# XDG = Cross-Desktop Group
# For more info see https://wiki.archlinux.org/index.php/XDG_Base_Directory
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_DATA_HOME="$HOME/.local/share"
-#export XDG_DATA_DIRS="/usr/local/share:/usr/share"
-#export XDG_CONFIG_DIRS="/etc/xdg"
+export XDG_STATE_HOME="$HOME/.local/state"
+
+export LC_COLLATE=C
# less
LESS="-i " # ignore case
@@ -96,46 +79,26 @@ LESS+="-S " # don't chop long lines
LESS+="--RAW-CONTROL-CHARS"
export LESS
+# Extra programs
+# --------------
+
# tldr
-export TLDR_CONFIG_DIR="$XDG_CONFIG_HOME"
+[ -f /usr/bin/tldr ] && export TLDR_CONFIG_DIR="$XDG_CONFIG_HOME"
# gpg
-export GPG_TTY=$(tty)
+#export GPG_TTY=$(tty)
# tmux
-export TERM="xterm-256color"
-
-# EGA/VGA font (used with ArchLinux in pre-Xorg session)
-#if [ -z $DESKTOP_SESSION ]; then
-# setfont LatGrkCyr-8x16
-#fi
+#export TERM="xterm-256color"
# nvm
-source /usr/share/nvm/init-nvm.sh
-
-
-
-# Optional
-# ======================================================================
+#source /usr/share/nvm/init-nvm.sh
-# Bash completition for pandoc
+# Pandoc: Bash completition for pandoc
if [ -f /usr/bin/pandoc ]; then
eval "$(pandoc --bash-completion)"
fi
-# Greeting or salute
-if [ -f /usr/games/cowsay ] || [ -f /usr/bin/cowsay ]; then
- # TODO: randomly select one of the following greeting commands
- #cowsay -f flaming-sheep "oh no" # original
- #cowsay $(fortune -e 30% debian-hints 20% linux 20% science \
- #cowsay $(fortune 30% debian-hints 20% linux 20% science \
- # 20% off/linux 10% off/black-humor)
- cowsay $(fortune)
- #fortune ascii-art
-else
- echo "Welcome back $LOGNAME"
-fi
-
# Homebrew (linuxbrew)
if [ -f /usr/bin/brew ]; then
# for elf executables
@@ -147,15 +110,31 @@ if [ -f /usr/bin/brew ]; then
fi
# Node.js
-export NODE_PATH=~/code/nodejs/node-v16.15.1-linux-x64/lib/node_modules
+#export NODE_PATH=~/code/nodejs/node-v16.15.1-linux-x64/lib/node_modules
# Rust
#. "$HOME/.cargo/env"
# Ruby on Rails
#https://stackoverflow.com/a/19072136/7498073
-gempath="$HOME/.local/share/gem/ruby/3.0.0/bin"
-export GEM_HOME="$(ruby -e 'puts Gem.user_dir')"
-if [[ -d $gempath ]]; then
- export PATH="$PATH:$GEM_HOME/bin"
+#gempath="$HOME/.local/share/gem/ruby/3.0.0/bin"
+#export GEM_HOME="$(ruby -e 'puts Gem.user_dir')"
+#if [[ -d $gempath ]]; then
+# export PATH="$PATH:$GEM_HOME/bin"
+#fi
+
+
+# Fun
+# ===
+
+# Greeting or salute
+if [ -f /usr/games/cowsay ] || [ -f /usr/bin/cowsay ]; then
+ #cowsay -f flaming-sheep "oh no" # original
+ #cowsay $(fortune -e 30% debian-hints 20% linux 20% science \
+ #cowsay $(fortune 30% debian-hints 20% linux 20% science \
+ # 20% off/linux 10% off/black-humor)
+ cowsay $(fortune)
+ #fortune ascii-art
+else
+ echo "Welcome back $LOGNAME"
fi
diff --git a/git/config b/git/config
index 3cb1462..f4a1a31 100644
--- a/git/config
+++ b/git/config
@@ -2,7 +2,8 @@
name = Mitsuo Tokumori
[diff]
- # used with $ git difftool
+ # used with $ git difftool
tool = nvim -d
+ submodule = log
[merge]
tool = nvim -d
diff --git a/install.sh b/install.sh
index e2aebea..2d7425a 100755
--- a/install.sh
+++ b/install.sh
@@ -14,6 +14,7 @@
# people usually manage them.
# https://wiki.archlinux.org/title/Dotfiles
+
# Config
# ======
@@ -30,58 +31,86 @@ if [[ -z $XDG_CONFIG_HOME ]]; then
mkdir -p $XDG_CONFIG_HOME
fi
-if [[ $mode = "copy" ]]; then
+if [[ $mode = "--help" ]]; then
+ echo "You might want to first run: $0 echo"
+ echo "Revise the output"
+ echo "And only then run: $0 slink"
+ exit
+elif [[ $mode = "copy" ]]; then
cp_or_ln="cp"
+ echo Why? Custom modifications will be difficult to track.
+ echo Maybe not a good idea. Good bye.
+ exit
elif [[ $mode = "slink" ]]; then
- cp_or_ln="ln -s" # if you are fearless add the `-f` option
+ cp_or_ln="ln -siv" # if you are fearless add the `-f` option
+elif [[ $mode = "echo" ]]; then
+ cp_or_ln="echo ln -siv"
else
- echo "Usage: $0 copy|slink"
+ echo "Usage: $0 copy|slink|echo"
exit
fi
-VIMFILES="$HOME/.vim" # In windows it's `%userprofile%/vimfiles/`
+prompt() {
+ read -p "Install $1 configuration files? [Y/n/e(exit)] " yesno
+ yesno=$(echo $yesno | tr '[:upper:]' '[:lower:]')
+ case $yesno in
+ y | yes | "" )
+ return 0;;
+ e | exit )
+ exit;;
+ * )
+ return 1;;
+ esac
+}
# Install
# =======
-# bash (`eval` concatenates and executes)
-
-eval $cp_or_ln " ${PWD}/bash/profile $HOME/.profile"
-eval $cp_or_ln " ${PWD}/bash/bashrc $HOME/.bashrc"
-eval $cp_or_ln " ${PWD}/bash/bash_aliases $HOME/.bash_aliases"
-eval $cp_or_ln " ${PWD}/bash/inputrc $HOME/.inputrc"
-
-# vim
-
-# `~/.vimrc` takes priority over `~/.vim/vimrc`. Remove the former if it exists
-
-mkdir -p $VIMFILES/{undo,swap,backup,plugins}
-chmod 0700 $VIMFILES/swap # swap files should only be readable by owner
-
-eval $cp_or_ln " ${PWD}/vim/vimrc $VIMFILES/vimrc"
-eval $cp_or_ln " ${PWD}/vim/fun.vim $VIMFILES/fun.vim"
+# FIXME: If $PWD has spaces in it, this might fail.
-# git
-
-[ -d $XDG_CONFIG_HOME/git ] || mkdir -p $XDG_CONFIG_HOME/git
-eval $cp_or_ln " ${PWD}/git/ignore $XDG_CONFIG_HOME/git/ignore"
-eval $cp_or_ln " ${PWD}/git/config $XDG_CONFIG_HOME/git/config"
-eval $cp_or_ln " ${PWD}/git/git-prompt.sh $HOME/.git-prompt.sh"
+# Filewise
+if prompt "bash"; then
+ eval $cp_or_ln " ${PWD}/bash/bash_profile $HOME/.bash_profile"
+ eval $cp_or_ln " ${PWD}/bash/bashrc $HOME/.bashrc"
+ eval $cp_or_ln " ${PWD}/bash/bash_aliases $HOME/.bash_aliases"
+ eval $cp_or_ln " ${PWD}/bash/inputrc $HOME/.inputrc"
+fi
-# zathura
+if prompt "vim"; then
+ # `~/.vimrc` takes priority over `~/.vim/vimrc`. Remove the former if it
+ # exists.
+ #
+ # In windows it's `%userprofile%/vimfiles/`
+
+ VIMFILES="$HOME/.vim"
+ mkdir -p $VIMFILES/{undo,swap,backup,plugins}
+ chmod 0700 $VIMFILES/swap
+
+ eval $cp_or_ln " ${PWD}/vim/vimrc $VIMFILES/vimrc"
+ eval $cp_or_ln " ${PWD}/vim/fun.vim $VIMFILES/fun.vim"
+fi
-mkdir -p $XDG_CONFIG_HOME/zathura
-eval $cp_or_ln " ${PWD}/other/zathurarc $XDG_CONFIG_HOME/zathura/zathurarc"
+# Directorywise
+if prompt "nvim"; then
+ eval $cp_or_ln " ${PWD}/nvim $XDG_CONFIG_HOME/nvim"
+fi
-# tmux
+if prompt "git"; then
+ [ -d $XDG_CONFIG_HOME/git ] || mkdir -p $XDG_CONFIG_HOME/git
+ eval $cp_or_ln " ${PWD}/git/ignore $XDG_CONFIG_HOME/git/ignore"
+ eval $cp_or_ln " ${PWD}/git/config $XDG_CONFIG_HOME/git/config"
+ eval $cp_or_ln " ${PWD}/git/git-prompt.sh $HOME/.git-prompt.sh"
+fi
-eval $cp_or_ln " ${PWD}/tmux/tmux.conf $HOME/.tmux.conf"
-eval $cp_or_ln " ${PWD}/tmux/tmux.conf.local $HOME/.tmux.conf.local"
-# mpd, ncmpc
-# (TODO)
+if prompt "zathura"; then
+ eval $cp_or_ln " ${PWD}/zathura $XDG_CONFIG_HOME/zathura"
+fi
-# done
+if prompt "tmux"; then
+ eval $cp_or_ln " ${PWD}/tmux/tmux.conf $HOME/.tmux.conf"
+ eval $cp_or_ln " ${PWD}/tmux/tmux.conf.local $HOME/.tmux.conf.local"
+fi
echo "all done :)"
diff --git a/nvim/colors/mac_classic.vim b/nvim/colors/mac_classic.vim
new file mode 100644
index 0000000..9382bde
--- /dev/null
+++ b/nvim/colors/mac_classic.vim
@@ -0,0 +1,226 @@
+" Vim color scheme
+"
+" Name: mac_classic.vim
+" Maintainer: Drew Neil <[email protected]>
+" License: public domain
+" Version: 0.1
+
+" Boilerplate: {{{1
+set background=light
+highlight clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+let g:colors_name = "mac_classic"
+
+
+" Colors: {{{1
+" TODO figure out how to not highlight TODO
+"
+" #000000
+" #3C4C72 - BLUE/GREY - cursor, rails helpers
+" #0000A2 - D.BLUE - numbers & function names
+" #1E39F6 - BLUE
+" #0066FF - L.BLUE - Comments, TODOs and folds
+" #6E79F1 - L.PURPLE - Booleans, Ruby Constants & CSS definitions
+" #318495 - BLUE/GREEN - Ruby instance/global/pseudo variables
+" #007B22 - D.GREEN - Strings, Labels and code blocks in Markdown
+" #00BC41 - L.GREEN - CSS common attributes & ruby interpolation
+" #990000 - BURGUNDY - Errors and Warnings
+" #D51015 - RED for constants, symbols, numbers
+" #E18AC7 - PINK RegularExpressions in Ruby
+" #FFCE77 - ORANGE - Incremental Search
+" #FFE6BB - L.ORANGE - Search
+" #C6DEFF - VL.BLUE Visual, Current StatusLine & AutoComplete selection
+" #808080 - Line numbers
+" #CFCFCF - VerticalSplit separator
+" #DFDFDF - Invisible Characters
+" #EFEFEF - LineNumber & Non-Current StatusLine
+" #F0F6FF - CursorLine & CursorColumn
+" #FFFFFF - WHITE
+" }}}
+
+" GUI: {{{1
+hi Cursor guifg=#FFFFFF ctermfg=15 guibg=#3C4C72 ctermbg=240
+hi Visual guibg=#C6DEFF ctermbg=189
+hi CursorLine guibg=#F0F6FF ctermbg=15
+hi CursorColumn guibg=#F0F6FF ctermbg=15
+hi LineNr guifg=#808080 ctermfg=244 guibg=#EFEFEF ctermbg=7
+hi VertSplit guifg=#FFFFFF ctermfg=15 guibg=#CFCFCF ctermbg=252 gui=NONE
+hi MatchParen guifg=#1E39F6 ctermfg=27 guibg=NONE gui=bold
+hi Pmenu guibg=#EFEFEF ctermbg=7
+hi PmenuSel guibg=#C6DEFF ctermbg=189
+hi Directory guifg=#D51015 ctermfg=160 gui=bold
+hi Folded guifg=#0066FF ctermfg=27 guibg=#FFFFFF ctermbg=15
+" StatusLine: {{{2
+hi StatusLine guifg=#000000 ctermfg=0 guibg=#C6DEFF ctermbg=189 gui=italic
+hi StatusLineNC guifg=#000000 ctermfg=0 guibg=#EFEFEF ctermbg=7 gui=NONE
+
+" Search: {{{2
+" [IncSearch is stronger than Search]
+hi IncSearch guifg=NONE guibg=#FFCE77 ctermbg=222 gui=NONE
+hi Search guibg=#FFE6BB ctermbg=223
+
+" Syntax: {{{1
+hi Normal guifg=#000000 ctermfg=0 guibg=#FFFFFF ctermbg=15
+hi Boolean guifg=#6E79F1 ctermfg=69 gui=bold
+hi Character guifg=#D51015 ctermfg=160 gui=bold
+hi Comment guifg=#0066FF ctermfg=27 gui=italic
+hi Conditional guifg=#1E39F6 ctermfg=27 gui=bold
+hi Constant guifg=#D51015 ctermfg=160 gui=bold
+hi Define guifg=#1E39F6 ctermfg=27 gui=bold
+hi ErrorMsg guifg=#FFFFFF ctermfg=15 guibg=#990000 ctermbg=88
+hi WarningMsg guifg=#FFFFFF ctermfg=15 guibg=#990000 ctermbg=88
+hi Float guifg=#0000A2 ctermfg=19
+hi Function guifg=#0000A2 ctermfg=19 gui=bold
+hi Identifier guifg=#1E39F6 ctermfg=27 gui=bold
+hi Keyword guifg=#1E39F6 ctermfg=27 gui=bold
+hi Label guifg=#007B22 ctermfg=28
+hi Number guifg=#0000A2 ctermfg=19
+hi Operator guifg=#1E39F6 ctermfg=27 gui=bold
+hi PreProc guifg=#1E39F6 ctermfg=27 gui=bold
+hi Special guifg=#000000 ctermfg=0
+hi Statement guifg=#1E39F6 ctermfg=27 gui=bold
+hi StorageClass guifg=#1E39F6 ctermfg=27 gui=bold
+hi String guifg=#007B22 ctermfg=28
+hi Title guifg=#000000 ctermfg=0 gui=bold
+hi Todo guifg=#0066FF ctermfg=27 gui=inverse,bold,italic
+hi Underlined gui=underline
+
+" Invisible character colors
+hi NonText guifg=#DFDFDF ctermfg=253 guibg=#FFFFFF ctermbg=15
+hi SpecialKey guifg=#DFDFDF ctermfg=253 guibg=#FFFFFF ctermbg=15
+
+" Diff styles {{{1
+hi diffAdded guifg=#007B22 guibg=#FFFFFF ctermfg=28 ctermbg=15
+hi diffRemoved guifg=#D51015 guibg=#FFFFFF ctermfg=160 ctermbg=15
+hi diffFile guifg=#6E79F1 guibg=#FFFFFF ctermfg=69 ctermbg=15
+hi diffNewFile guifg=#6E79F1 guibg=#FFFFFF ctermfg=69 ctermbg=15
+hi diffLine guifg=#000000 guibg=#FFFFFF ctermfg=0 ctermbg=15
+
+hi diffAdd guifg=#007B22 guibg=#FFFFFF ctermfg=28 ctermbg=15
+hi diffChange guifg=#007B22 guibg=#FFFFFF ctermfg=28 ctermbg=15
+hi diffText guifg=#007B22 guibg=#FFFFFF ctermfg=28 ctermbg=15
+hi link diffDelete diffRemoved
+" Git styles {{{1
+hi gitcommitFirstLine guifg=#000000 guibg=#FFFFFF ctermfg=0 ctermbg=15
+hi gitcommitSelectedType guifg=#007B22 guibg=#FFFFFF ctermfg=28 ctermbg=15
+hi link gitcommitSelectedFile gitcommitSelectedType
+hi gitcommitDiscardedType guifg=#D51015 guibg=#FFFFFF ctermfg=160 ctermbg=15
+hi link gitcommitDiscardedFile gitcommitDiscardedType
+hi gitcommitUntrackedFile guifg=#6E79F1 guibg=#FFFFFF ctermfg=69 ctermbg=15
+" Ruby styles {{{1
+hi rubyClass guifg=#1E39F6 ctermfg=27 gui=bold
+hi rubyFunction guifg=#0000A2 ctermfg=19 gui=bold
+hi rubyInterpolationDelimiter guifg=#00BC41 ctermfg=35
+hi rubyInterpolation guifg=#00BC41 ctermfg=35
+hi rubySymbol guifg=#D51015 ctermfg=160 gui=bold
+hi rubyConstant guifg=#6E79F1 ctermfg=69 gui=bold
+hi rubyStringDelimiter guifg=#007B22 ctermfg=28
+hi rubyInstanceVariable guifg=#318495 ctermfg=66
+hi rubyInclude guifg=#1E39F6 ctermfg=27 gui=bold
+hi rubyGlobalVariable guifg=#318495 ctermfg=66
+hi rubyRegexp guifg=#E18AC7 ctermfg=176
+hi rubyRegexpAnchor guifg=#E18AC7 ctermfg=176
+hi rubyRegexpQuantifier guifg=#E18AC7 ctermfg=176
+hi rubyRegexpParens guifg=#E18AC7 ctermfg=176
+hi rubyRegexpEscape guifg=#00BC41 ctermfg=35
+hi rubyRegexpCharClass guifg=#00BC41 ctermfg=35
+hi rubyRegexpDelimiter guifg=#E18AC7 ctermfg=176
+hi rubyEscape guifg=#00BC41 ctermfg=35
+hi rubyControl guifg=#1E39F6 ctermfg=27 gui=bold
+hi rubyOperator guifg=#1E39F6 ctermfg=27 gui=bold
+hi rubyException guifg=#1E39F6 ctermfg=27 gui=bold
+hi rubyPseudoVariable guifg=#318495 ctermfg=66
+hi rubyRailsUserClass guifg=#6E79F1 ctermfg=69 gui=bold
+hi rubyRailsARAssociationMethod guifg=#3C4C72 ctermfg=240 gui=bold
+hi rubyRailsARMethod guifg=#3C4C72 ctermfg=240 gui=bold
+hi rubyRailsRenderMethod guifg=#3C4C72 ctermfg=240 gui=bold
+hi rubyRailsMethod guifg=#3C4C72 ctermfg=240 gui=bold
+hi link erubyComment Comment
+hi erubyRailsMethod guifg=#3C4C72 ctermfg=240 gui=bold
+
+" XML: {{{1
+hi link xmlEndTag xmlTag
+" HTML: {{{1
+hi htmlTag guifg=#1E39F6 ctermfg=27
+hi link htmlEndTag htmlTag
+hi link htmlTagName htmlTag
+hi link htmlArg htmlTag
+hi htmlSpecialChar guifg=#D51015 ctermfg=160 gui=bold
+hi htmlH1 gui=bold
+hi link htmlH2 htmlH1
+hi link htmlH3 htmlH1
+hi link htmlH4 htmlH1
+hi link htmlH5 htmlH1
+hi link htmlH6 htmlH1
+
+" JavaScript: {{{1
+hi javaScriptFunction guifg=#1E39F6 ctermfg=27 gui=bold
+hi javaScriptFuncName guifg=#318495 ctermfg=66 gui=italic
+hi javaScriptLabel guifg=#0000A2 ctermfg=19 gui=bold
+hi javaScriptRailsFunction guifg=#3C4C72 ctermfg=240 gui=bold
+hi javaScriptType guifg=#318495 ctermfg=66 gui=none
+hi javaScriptArgument guifg=#318495 ctermfg=66 gui=italic
+hi javaScriptRegexpString guifg=#E18AC7 ctermfg=176 gui=NONE
+hi javaScriptSpecial guifg=#00BC41 ctermfg=35 gui=NONE
+" NOTE: Syntax Highlighting for javascript doesn't match the
+" TextMate version very accurately, because the javascript
+" syntax file does not create matches for some items. In
+" particular:
+" * javaScriptArgument - e.g. function(argument)
+" * javaScriptFuncName for object literal style functions - e.g.:
+" myFunction: function() { ... }
+
+" YAML: {{{1
+hi yamlAnchor guifg=#318495 ctermfg=66
+hi yamlAlias guifg=#318495 ctermfg=66
+hi yamlDocumentHeader guibg=#F2F2F2 ctermbg=7
+
+" CSS: {{{1
+hi cssTagName gui=bold
+hi cssIdentifier gui=italic
+hi link cssClassName cssIdentifier
+hi cssDefinition guifg=#6E79F1 ctermfg=69
+hi link cssRenderProp cssDefinition
+hi link cssTextProp cssDefinition
+hi link cssFontProp cssDefinition
+hi link cssColorProp cssDefinition
+hi link cssBoxProp cssDefinition
+hi link cssGeneratedContentProp cssDefinition
+hi link cssUIProp cssDefinition
+hi cssCommonAttr guifg=#00BC41 ctermfg=35
+hi link cssAttr cssCommonAttr
+hi link cssRenderAttr cssCommonAttr
+hi link cssTextAttr cssCommonAttr
+hi link cssFontAttr cssCommonAttr
+hi link cssGeneratedContentAttr cssCommonAttr
+hi cssURL guifg=#007B22 ctermfg=28
+hi cssFunctionName guifg=#3C4C72 ctermfg=240 gui=bold
+hi cssColor guifg=#D51015 ctermfg=160 gui=bold
+hi cssValueLength guifg=#0000A2 ctermfg=19
+hi cssImportant guifg=#1E39F6 ctermfg=27 gui=bold
+
+" Vimscript: {{{1
+hi vimGroup guifg=#007B22 ctermfg=28 gui=bold
+hi link vimHiGroup vimGroup
+hi vimCommentTitle guifg=#3C4C72 ctermfg=240 gui=bold
+hi helpSpecial guifg=#6E79F1 ctermfg=69
+
+" Markdown: {{{1
+hi markdownBold gui=bold
+hi markdownItalic gui=italic
+hi markdownCode guifg=#007B22 ctermfg=28
+hi link markdownCodeBlock markdownCode
+
+" Outliner: {{{1
+hi BT1 guifg=#808080 ctermfg=244 gui=italic
+hi OL1 guifg=#000000 ctermfg=0 gui=bold
+hi OL2 guifg=#0000A2 ctermfg=19 gui=bold
+hi OL3 guifg=#007B22 ctermfg=28 gui=bold
+hi OL4 guifg=#6E79F1 ctermfg=69 gui=NONE
+" Modelines: {{{1
+" vim: nowrap fdm=marker
+" }}}
diff --git a/nvim/init.vim b/nvim/init.vim
new file mode 100644
index 0000000..1f63599
--- /dev/null
+++ b/nvim/init.vim
@@ -0,0 +1,178 @@
+" NeoVim init.vim
+"
+" Differences with good ol' Vim:
+"
+" NeoVim has so many of the modern and helpful Vim options on by default. I'll
+" remove most of the old Vim configurations that now come by default in NeoVim.
+"
+" Also NeoVim uses XDG directories by default, keeping a clean directory tree.
+"
+" NeoVim also allows for this file to be written in Lua. I'll stick to using
+" Vim script becuase it has more documentation and is more concise configuring
+" Vim options.
+"
+" Instead of viminfo, NeoVim uses shada files (SHared DAta) (different format).
+" See shada-file-name.
+"
+" For some reason, as of version v0.8.3 of NeoVim, Vim internal codes for shift-
+" and control- function keys change in NeoVim. <S-F1> changes to <F13>, and
+" <C-F1> changes to <F25>. See https://github.com/neovim/neovim/issues/7384
+"
+" Plugins: There are a lot of ways to install "plug-in"s in Vim. My prefered
+" way is using Vim packages, available since Vim version 8. See packages.
+"
+" Tips:
+" * To show navigate help files:
+" K " while on an option to see it's documentation
+" CTRL-] " navigation while on a Vim help file
+" * To re-indent:
+" tab->spaces :set tabstop=n :set expandtab :retab
+" spaces->tab :set noexpandtab :set tabstop={softtabstop} :retab!
+" * To justify:
+" To 'justify' comments or block of text (paragraph) use `gq{motion}` or
+" `gp{motion}`, where {motion} can be `[/`, `]/`, `ip`, `i{`, `a{`.
+" * To see the last page of previous command:
+" `g<`
+" * Buffer stuff:
+" :ls " shows all buffers
+" :b N " Go to buffer N (integer)
+
+
+" Settings
+" ----------------------------------------------------------------------
+
+colorscheme industry
+
+" Command line:
+set cmdheight=1
+set wildmenu
+set wildignore+=*.o,.git,*.class
+set path+=./**30 " For gf and :find, add all subdirectories relative to
+ " current file (30 max) to the "search space"
+
+" Search
+set ignorecase
+set smartcase
+
+" Screen
+set nonumber
+set scrolloff=5 " show a few lines of context
+set colorcolumn=+1 " show ruler at position tabstop+1
+set laststatus=2
+" Add buffer number to the default status line with ruler
+set statusline=%<%f\ %h%m%r%=b%02n\ \ %-14.(%l,%c%V%)\ %P
+
+" TODO: move to ftplugin
+" TODO: create tags automatically (:!ctags -R . after :w if ft=c)
+" Tag Jumping
+" Instructions: create tag index (e.g. $ ctags -R .)
+" place cursor on tag
+" ^] to jump to definition
+" g^] if more than 1 definition
+" ^T to return (or ^O)
+
+"set cindent
+"set cinoptions=:0,g0 " See C-indenting
+
+
+" Indentation: 4 spaces
+" See also: autoindent, smartindent, cindent, indentexpr
+set tabstop=4 " Each '\t' takes 8 virtual (screen) columns
+set shiftwidth=0 " (Auto)indentation. Also affects: >>, i_C-T, i_C-D
+set expandtab " Expand inserted <Tab>s with <Space>
+set smartindent " Smart indenting when starting a new line
+
+" Formatting: See fo-table
+set formatoptions+=t " auto-wrap text (when inserting)
+set formatoptions+=c " auto-wrap comments (when inserting)
+set formatoptions+=q " Allow formatting of comments with "gq"
+set formatoptions+=j " Removes comment leader when joining lines
+set formatoptions+=l " Don't break long lines that are already typed
+set formatoptions+=r " Insert current leader after <Enter> in Insert mode
+set formatoptions+=p " Don't break honorifics like Prof. Smith
+set formatoptions+=n " Recognize numbered lists
+set formatoptions+=o " Automatically insert the current comment
+ " leader after `o`.
+
+" Wrap: Auto-break lines longer than 80 colums
+set textwidth=80
+set wrap
+set linebreak " Don't break words
+
+" Mouse
+set mouse=a " Enable mouse for all modes
+
+" Buffers
+set hidden " Allow for hidden modified buffers
+
+
+" Mappings
+" ----------------------------------------------------------------------
+
+let $VIMFILES = split(&rtp, ",")[0]
+
+map <F5> :source $VIMFILES/init.vim<CR>
+map <F17> :e $VIMFILES/init.vim<CR>
+
+map <F7> :tabp<CR>
+map <F8> :tabn<CR>
+map <F19> :bNext<LF>
+map <F20> :bnext<LF>
+
+" TODO: move to ftplugin
+" C/C++ Programming:
+map <F6> :w<CR>:!clear && make<CR>
+"map <F10> :!./%:r<CR>
+"map <F10> :!./a.out<CR>
+map <F11> :cnext<CR>
+map <S-F11> :cprev<CR>
+" "Run cTags"
+map <Leader>rt :!ctags -R .<CR>
+map <C-\> :tnext<CR>
+" Motion to go to beggining of function while cursor is inside
+nmap [f [m[{k0
+
+" pandoc (& website):
+nnoremap mm :w<CR>:Md2Html<CR><CR><CR>
+nmap mM mm:!updatewebsite_zaz<CR><CR>
+
+" asciidoc:
+nnoremap ma :w<CR>:!asciidoctor %<CR><CR>
+nmap mA ma:!updatewebsite_zaz<CR><CR>
+
+" Funcionallity of the following depends on terminal emulator. Needs 8-bit
+" input enabled
+" for <Meta> = Alt key combos
+" From: https://vim.fandom.com/wiki/Get_Alt_key_to_work_in_terminal
+nmap <M-H> <C-W>h
+nmap <M-J> <C-W>j
+nmap <M-K> <C-W>k
+nmap <M-L> <C-W>l
+
+" Go Title Case (and clear highlighted matches)
+" Ref.: https://vim.fandom.com
+vmap gt :s/\<\(\w\)\(\w*\)\>/\u\1\L\2/g<CR><C-L>
+
+" Autoformat JSON jumbled data
+" Ref.: https://stackoverflow.com/questions/26214156/how-to-auto-format-json-on-save-in-vim
+nnoremap gJ :%!python3 -m json.tool<CR>
+
+" Replaces previous WORD arithmetic expression with result (from Vim
+" fandom-wiki)
+inoremap <C-A> <Esc>diWi<C-R>=<C-R>"<CR>
+
+
+" Views and Sessions (Window layout and Line folding)
+" ----------------------------------------------------------------------
+" It is possible to create folds automatically but idk how to do it.
+" :mkview so save them :loadview to load them (zo open one, zc close one,
+" zR to open all, zM to close all, zx to restore))
+
+" Views saves folds. Sessions saves all windows configuration and layout
+" Load Sessions with $ vim -S Session.vim
+
+" To automatically save and restore views for *.c *.cpp files:
+au BufWinLeave *.c mkview
+au BufWinEnter *.c silent loadview
+au BufWinLeave *.cpp mkview
+au BufWinEnter *.cpp silent loadview
diff --git a/nvim/nvim b/nvim/nvim
new file mode 120000
index 0000000..f265a59
--- /dev/null
+++ b/nvim/nvim
@@ -0,0 +1 @@
+/home/mitsuo/mahcode/dotfiles/nvim \ No newline at end of file
diff --git a/nvim/pack/mitsuo/Readme.txt b/nvim/pack/mitsuo/Readme.txt
new file mode 100644
index 0000000..a9e88cd
--- /dev/null
+++ b/nvim/pack/mitsuo/Readme.txt
@@ -0,0 +1 @@
+Vim plugins I use go here.
diff --git a/nvim/pack/mitsuo/start/fun/Readme.txt b/nvim/pack/mitsuo/start/fun/Readme.txt
new file mode 100644
index 0000000..2f41d59
--- /dev/null
+++ b/nvim/pack/mitsuo/start/fun/Readme.txt
@@ -0,0 +1 @@
+My special functions :)
diff --git a/nvim/pack/mitsuo/start/fun/plugin/fun.vim b/nvim/pack/mitsuo/start/fun/plugin/fun.vim
new file mode 100644
index 0000000..42574d3
--- /dev/null
+++ b/nvim/pack/mitsuo/start/fun/plugin/fun.vim
@@ -0,0 +1,109 @@
+" To call functions use `:call foo()`
+
+" Echoes longest line number and lenght.
+function! LongestLineLength ( )
+ let maxlength = 0
+ let linenumber= 1
+ while linenumber <= line("$")
+ exe ":".linenumber
+ let linelength = virtcol("$")
+ if maxlength < linelength
+ let maxlength = linelength
+ let maxlinenumber = linenumber
+ endif
+ let linenumber = linenumber+1
+ endwhile
+
+"exe ':0'
+"exe 'normal O'
+"exe 'normal 0C'.maxlength
+ exe "normal" . maxlinenumber . "G"
+ exe ":echo \"" . maxlinenumber . ": " . maxlength . "\""
+endfunction
+
+command LongestLineLength call LongestLineLength()
+
+
+" Save markdown document and export to pdf using pandoc.
+"
+" It would be nicer if a default document would be used but I coulnd't made it
+" to work even after reading that manual section like 2 times. Also, there are
+" variables that are lists of other variables that I don't know how to make them
+" work (e.g. geometry=[top=1in, bottom=1in, heightrounded])
+function! Md2Pdf ( )
+ exe ":w"
+ "-N for numbered headers
+ exe ":! pandoc -o \"" . expand("%:r") . ".pdf\" -t latex --variable classoption=twosides --variable papersize=a4 --variable margin-left=1in --variable margin-right=1in --variable margin-top=1in --variable margin-bottom=1in --variable links-as-notes --variable colorlinks --variable pagestyle=plain --variable documentclass=article -f markdown-implicit_figures \"" . expand("%") . "\""
+ echo "pdf saved as \"" . expand("%:p:r") . ".pdf\""
+endfunction
+
+function! Md2Pdfms ( )
+ exe ":w"
+ exe ":! pandoc -o " . expand("%:r") . ".pdf" . " -t ms -f markdown-implicit_figures \"" . expand("%") . "\""
+ echo "pdf saved as " . expand("%:p:r") . ".pdf"
+endfunction
+
+command Md2Pdf call Md2Pdf()
+command Md2Pdfms call Md2Pdfms()
+
+
+" Save markdown document and export to html using pandoc
+function! Md2Html ( )
+ exe ":w"
+ "exe ":! pandoc -s --toc -H ~/mahcode/markdown/pandoc/pandoc_style.html --highlight-style tango -o \"" . expand("%:r") . ".html\"" . " \"" . expand("%") . "\""
+ exe ":! pandoc --highlight-style tango -o \"" . expand("%:r") . ".html\"" . " \"" . expand("%") . "\""
+ echo "html saved as " . expand("%:p:r") . ".html"
+endfunction
+
+command Md2Html call Md2Html()
+
+" Save markdown as ODT file (.docx is also possible)
+function! Md2Odt ( )
+ exe ":w"
+ exe ":! pandoc -s --toc -H ~/mahcode/markdown/pandoc/pandoc_style.html --highlight-style tango -o \"" . expand("%:r") . ".odt\"" . " \"" . expand("%") . "\""
+ echo "ODT saved as " . expand("%:p:r") . ".odt"
+endfunction
+
+command Md2Odt call Md2Odt()
+
+
+" Compiles and Runs a C++ project
+" TODO: how to add program's arguments or file redirectioning from command.
+function! CompRunProj ( )
+ exe ":w"
+ exe ":! g++ -o " . expand("%:r") . "-g *.cpp"
+ exe ":! ./" . expand("%:r")
+endfunction
+
+command CompRunProj call CompRunProj()
+
+
+" Function made to give feedback to students code in 1INF01
+" export C code to syntax highlighted pdf
+function! C2Pdf ( )
+ exe ":set ts=4"
+ exe ":w"
+ exe ":ha > %.ps"
+ exe ":!ps2pdf %.ps"
+ exe ":!rm %.ps"
+endfunction
+
+
+" For printing first export to html and then print using web browser
+" Ref.: https://vi.stackexchange.com/questions/12058/printing-unicode-chars
+function! ExportHTML (colorscheme="quiet", bg="light")
+ " Nice colorschemes for printing on paper: quiet, morning, mac_classic
+ let s:prev_color = g:colors_name
+ let s:prev_bg = &background
+ exe "colorscheme" a:colorscheme
+ exe "set bg=" . a:bg
+
+ exe "TOhtml | w | !xdg-open %"
+ echo "html export saved as " . expand('%:p')
+ exe "bd"
+
+ exe "colorscheme" s:prev_color
+ exe "set bg=" . s:prev_bg
+endfunction
+
+command ExportHTML call ExportHTML()
diff --git a/nvim/pack/mitsuo/start/vim-commentary b/nvim/pack/mitsuo/start/vim-commentary
new file mode 160000
+Subproject e87cd90dc09c2a203e13af9704bd0ef79303d75
diff --git a/other/zathurarc b/zathura/zathurarc
index 4d38c70..4d38c70 100644
--- a/other/zathurarc
+++ b/zathura/zathurarc