Skip to content

Instantly share code, notes, and snippets.

@op8867555
Last active January 29, 2021 09:50
Show Gist options
  • Save op8867555/5b13df17b8800336726c203e7be32719 to your computer and use it in GitHub Desktop.
Save op8867555/5b13df17b8800336726c203e7be32719 to your computer and use it in GitHub Desktop.
/* Xft.dpi: 180 */
XTerm*locale: true
XTerm*reverseVideo: on
xterm*faceName: Source Code Pro
xterm*faceNameDoublesize: Source Han Sans
XTerm*metaSendsEscape: true
xterm*termName: xterm-256color
xterm*faceSize: 12
URxvt*buffered: false
URxvt.scrollBar: false
URxvt*font: xft:Source Code Pro:size=12, \
xft:DejaVu Sans Mono:size=12, \
xft:Source Han Sans:style=Normal:size=12, \
xft:Symbola:pixelsize=12:antialias=true:hinting=slight, \
xfg:Awesome, \
xft:unifont:style=Medium
URxvt*letterspace: 4
URxvt.perl-ext-common: resize-font
URxvt.reverseVideo: on
/* URxvt*depth: 32 */
/* URxvt*background: [95]#000000 */
! urxvt-resize-font-git
URxvt.resize-font.smaller: C-minus
URxvt.resize-font.bigger: C-equal
URxvt.resize-font.reset: C-plus
URxvt.resize-font.show: C-question
! ------------------------------------------------------------------------------
! ROFI Color theme
! ------------------------------------------------------------------------------
! Use extended color scheme
rofi.color-enabled: true
rofi.color-window: argb:EE373B47, #373B47
rofi.color-normal: argb:00373B47, #737783, argb:00373B47, argb:00373B47, #f9f9f9
rofi.color-urgent: argb:00373B47, #cc6666, argb:e54b5160, argb:00373B47, #f9f9f9
rofi.color-active: argb:00373B47, #65acff, argb:e44b5160, argb:00373B47, #f9f9f9
rofi.width: 30
rofi.lines: 16
rofi.font: Source Code Pro 24
rofi.bw: 0
rofi.padding: 40
rofi.eh: 1
rofi.sidebar-mode: false
rofi.separator-style: none
rofi.hide-scrollbar: true
rofi.show-icons: true
rofi.location: 4
rofi.modi: window,run,drun
# ZPLUG
# =====
source ~/.zplug/init.zsh
# Make sure to use double quotes
# Add a bunch more of your favorite packages!
zplug "zsh-users/zsh-autosuggestions"
zplug "zsh-users/zsh-completions"
zplug "zsh-users/zsh-syntax-highlighting", defer:2
zplug "zsh-users/zsh-history-substring-search", defer:3
zplug "chriskempson/base16-shell", use:"scripts/base16-ir-black.sh", defer:0
zplug "themes/frisk", from:oh-my-zsh, as:theme
zplug "plugins/git", from:oh-my-zsh, as:plugin
zplug "plugins/stack", from:oh-my-zsh, as:plugin
zplug "plugins/docker-compose", from:oh-my-zsh, as:plugin
zplug "plugins/ssh-agent", from:oh-my-zsh, as:plugin
# Install packages that have not been installed yet
if ! zplug check --verbose; then
printf "Install? [y/N]: "
if read -q; then
echo; zplug install
else
echo
fi
fi
zplug load
# CONFIG
# ======
# CONFIG
# ======
HISTFILE=~/.histfile
HISTSIZE=10000
SAVEHIST=10000
# beep
setopt beep notify
# pushd when cd
setopt auto_pushd
# completion menu
zstyle ':completion:*' menu select
# keybindings
# ===========
bindkey '^[[Z' reverse-menu-complete
bindkey "\e[A" history-search-backward
bindkey "\e[B" history-search-forward
bindkey -M vicmd 'k' history-substring-search-up
bindkey -M vicmd 'j' history-substring-search-down
bindkey "^r" history-incremental-pattern-search-backward
# bind `v` to edit the command line
zle -N edit-command-line
autoload -Uz edit-command-line
bindkey -M vicmd 'v' edit-command-line
####################################################################################
set -g default-terminal "screen-256color"
####################################################################################
set -ga terminal-overrides ',*:Ss=\E[%p1%d q:Se=\E[2 q'
set-option -g allow-rename off
set-option -g renumber-windows on
set-option -g -q mouse on
#### statusbar ####
set -g status-interval 1
set -g status-justify centre # center align window list
set -g status-left '#[fg=green] #S #[default]'
## set -g status-right '#[fg=blue,bright]Up#(uptime | cut -f 4-5 -d " " | cut -f 1 -d ",") #[default]:: #[fg=cyan]#(cut -d " " -f 1-4 /proc/loadavg) '
set -g status-right '#[fg=yellow] %m/%d %H:%M #[fg=blue]Up#(uptime | cut -f 4-5 -d " " | cut -f 1 -d ",")'
# # default statusbar colors
# set -g status-fg white
# set -g status-bg default
# set -g status-attr bright
# # default window title colors
# set-window-option -g window-status-fg white
# set-window-option -g window-status-bg default
# set-window-option -g window-status-attr dim
# # active window title colors
# set-window-option -g window-status-current-fg white
# set-window-option -g window-status-current-bg default
# set-window-option -g window-status-current-attr bright
# # command/message line colors
# set -g message-fg white
# set -g message-bg black
# set -g message-attr bright
#
# Set the prefix to ^A.
unbind C-b
set -g prefix ^A
bind a send-prefix
# screen ^C c
unbind ^C
bind ^C new-window
unbind c
bind c new-window
# detach ^D d
unbind ^D
bind ^D detach
unbind n
bind n next-window
# title A
unbind A
bind A command-prompt "rename-window %%"
# other ^A
unbind ^A
bind ^A last-window
# windows ^W w
unbind ^W
bind ^W choose-window
unbind w
bind w choose-window
# kill K k
unbind K
bind K confirm-before "kill-window"
# redisplay ^L l
unbind ^L
bind ^L refresh-client
# split -v |
unbind |
bind | split-window
# :kB: focus up
unbind Tab
bind Tab select-pane -t:.+
unbind BTab
bind BTab select-pane -t:.-
# " windowlist -b
unbind '"'
bind '"' choose-window
# split new window with current path
bind s split-window -v -c "#{pane_current_path}"
bind v split-window -h -c "#{pane_current_path}"
# move around panes with hjkl, as one would in vim after pressing ctrl-w
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind < swap-window -t -1
bind > swap-window -t +1
# bind : to command-prompt like vim
# this is the default in tmux already
bind : command-prompt
# vi-style controls for copy mode
setw -g mode-keys vi
set -sg escape-time 0
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'jimeh/tmux-themepack'
set -g @themepack 'powerline/block/cyan'
run -b '~/.tmux/plugins/tpm/tpm'
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:Source Code Pro, FontAwesome, Awesome 8
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, its unicode glyph coverage is limited, the old
# X core fonts rendering does not support right-to-left and this being a bitmap
# font, it doesn’t scale on retina/hidpi displays.
# exec --no-startup-id nitrogen --restore
exec_always --no-startup-id ~/bin/i3sub.py
exec_always --no-startup-id ~/playground/i3-ws-osd-py/osd.py
exec_always --no-startup-id ~/playground/i3-wpd/i3wpd.py --bg-fill ~/playground/i3-wpd/bg png
exec --no-startup-id tint2
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
workspace_layout tabbed
workspace_auto_back_and_forth yes
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
# bindsym $mod+Shift+d exec dmenu_run
bindsym $mod+Shift+d exec rofi -no-kb-row-select -show run
bindsym $mod+Shift+w exec rofi -no-kb-row-select -show window
bindsym $mod+Shift+t exec i3-input -F 'title_format %s' -P 'New Title: '
bindsym $mod+Control+d exec rofi -no-kb-row-select -show drun
bindsym $mod+F8 exec ~/bin/rofi-netctl/rofi-netctl.sh
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+semicolon split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# enter fullscreen mode for the focused container
# bindsym $mod+f exec ~/bin/i3-maximize.sh
# make window sticky
bindsym $mod+Control+f sticky toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
bindsym $mod+d focus child
# focus urgent window
bindsym $mod+x [urgent=latest] focus
set $ws1 workspace "1: "
set $ws2 workspace "2: "
set $ws3 workspace "3: "
set $ws4 workspace "4: "
# set $ws1 workspace 1
# set $ws2 workspace 2
# set $ws3 workspace 3
# set $ws4 workspace 4
set $ws5 workspace 5
set $ws6 workspace 6
set $ws7 workspace 7
set $ws8 workspace 8
set $ws9 workspace 9
set $ws10 workspace 10
# switch to workspace
bindsym $mod+1 $ws1
bindsym $mod+2 $ws2
bindsym $mod+3 $ws3
bindsym $mod+4 $ws4
bindsym $mod+5 $ws5
bindsym $mod+6 $ws6
bindsym $mod+7 $ws7
bindsym $mod+8 $ws8
bindsym $mod+9 $ws9
bindsym $mod+0 $ws10
bindsym $mod+comma workspace prev_on_output
bindsym $mod+period workspace next_on_output
bindsym $mod+Escape workspace back_and_forth
bindsym $mod+Shift+Escape move container to workspace back_and_forth
bindsym $mod+Tab [con_mark="_last"] focus
bindsym $mod+minus scratchpad show
bindsym $mod+Shift+minus move scratchpad
# move focused container to workspace
bindsym $mod+Shift+1 move container to $ws1
bindsym $mod+Shift+2 move container to $ws2
bindsym $mod+Shift+3 move container to $ws3
bindsym $mod+Shift+4 move container to $ws4
bindsym $mod+Shift+5 move container to $ws5
bindsym $mod+Shift+6 move container to $ws6
bindsym $mod+Shift+7 move container to $ws7
bindsym $mod+Shift+8 move container to $ws8
bindsym $mod+Shift+9 move container to $ws9
bindsym $mod+Shift+0 move container to $ws10
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
bindsym Shift+XF86MonBrightnessUp exec xbacklight -inc 5
bindsym Shift+XF86MonBrightnessDown exec xbacklight -dec 5
bindsym XF86MonBrightnessUp exec xbacklight -inc 10
bindsym XF86MonBrightnessDown exec xbacklight -dec 10
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle # mute sound
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle # mute mic sound
bindsym XF86Display exec --no-startup-id randrctl auto
bindsym Shift+XF86Display exec --no-startup-id randrctl-match
bindsym $mod+F11 exec --no-startup-id /home/requiem/bin/toggle_touchpad
assign [title="Messenger.*- Chromium"] $ws4
assign [title=".* - Gitter - Chromium"] $ws4
assign [title=".*Google Hangouts.* - Chromium"] $ws4
assign [title=".*Skype.* - Chromium"] $ws4
assign [title=".*Habitica.* - Chromium"] $ws4
assign [title=".*Inbox.* - Chromium"] $ws4
assign [title="^LINE$"] $ws4
assign [instance="^crx_knipolnnllmklapflnccelgolnpehhpl$"] $ws4
assign [title="^Rambox$"] $ws4
assign [title=".* - YouTube - Chromium"] $ws2
assign [title=".* - ニコニコ動画 - Chromium"] $ws2
assign [title="VLC-*"] $ws2
for_window [instance="^crx_knipolnnllmklapflnccelgolnpehhpl$"] floating disable
for_window [title="^Tab Organizer \(.+\)$"] floating enable
for_window [title="歌詞" instance="OSD Lyrics"] floating enable
for_window [class="^.* - openalpr"] floating enable, move window to $ws6
for_window [title="feh_float"] floating enable
for_window [title="tk_float"] floating enable
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the window’s width.
# Pressing right will grow the window’s width.
# Pressing up will shrink the window’s height.
# Pressing down will grow the window’s height.
bindsym h resize shrink width 5 px or 5 ppt
bindsym j resize grow height 5 px or 5 ppt
bindsym k resize shrink height 5 px or 5 ppt
bindsym l resize grow width 5 px or 5 ppt
bindsym Shift+h resize shrink width 10 px or 10 ppt
bindsym Shift+j resize grow height 10 px or 10 ppt
bindsym Shift+k resize shrink height 10 px or 10 ppt
bindsym Shift+l resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
bindsym $mod+F2 exec "scrlck"
bindsym $mod+F4 exec "suslck"
mode "power" {
bindsym $mod+f2 exec "scrlck", mode "default"
bindsym $mod+o exec "scroff", mode "default"
bindsym $mod+Shift+s exec "suslck", mode "default"
bindsym $mod+s exec "scrlck", mode "default"
bindsym $mod+a exec "scroff", mode "default"
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+Shift+s mode "power"
mode "screen" {
bindsym --release $mod+Print exec "maim -d 0.5 /tmp/$(date '+%Y%m%d-%H%M%S').png", mode "default"
bindsym --release $mod+Shift+Print exec "maim -d 0.5 -s /tmp/$(date '+%Y%m%d-%H%M%S').png", mode "default"
bindsym --release Print exec "maim -d 3 -s /tmp/$(date '+%Y%m%d-%H%M%S').png", mode "default"
bindsym --release c exec "maim -s | feh --title feh_float -", mode "default"
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym --release $mod+Print mode "screen"
mode "move" {
bindsym $mod+h move container to output left, focus output left, mode "default"
bindsym $mod+j move container to output down, focus output down, mode "default"
bindsym $mod+k move container to output up, focus output up, mode "default"
bindsym $mod+l move container to output right, focus output right, mode "default"
bindsym $mod+Shift+h move workspace to output left, mode "default"
bindsym $mod+Shift+j move workspace to output down, mode "default"
bindsym $mod+Shift+k move workspace to output up, mode "default"
bindsym $mod+Shift+l move workspace to output right, mode "default"
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+m mode "move"
bindsym $mod+Control+h focus output left
bindsym $mod+Control+l focus output right
bindsym $mod+Control+j focus output up
bindsym $mod+Control+k focus output down
# Color Scheme
# copy & paste™ from [Arc-Dark] theme
# [Arc-Dark]: https://github.com/horst3180/arc-theme
set $ad_base_color #404552
set $ad_text_color #D3DAE3
set $ad_bg_color #383C4A
set $ad_fg_color #D3DAE3
set $ad_tooltip_bg_color #4B5162
set $ad_tooltip_fg_color #FFFFFF
set $ad_selected_bg_color #5294E2
set $ad_selected_fg_color #FFFFFF
set $ad_insensitive_bg_color #3E4350
set $ad_insensitive_fg_color #7C818C
set $ad_notebook_bg #404552
set $ad_dark_sidebar_bg #353945
set $ad_link_color #5294E2
set $ad_menu_bg #383C4A
set $ad_btn_close_color #CC575D
# class border background text indicator
client.focused $ad_selected_bg_color $ad_selected_bg_color $ad_selected_fg_color $ad_btn_close_color
client.unfocused $ad_insensitive_bg_color $ad_insensitive_bg_color $ad_insensitive_fg_color $ad_btn_close_color
client.focused_inactive $ad_bg_color $ad_bg_color $ad_fg_color $ad_btn_close_color
client.urgent $ad_insensitive_fg_color $ad_insensitive_bg_color $ad_insensitive_fg_color $ad_btn_close_color
client.background $ad_bg_color $ad_bg_color $ad_text_color $ad_btn_close_color
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
# bar {
# # status_command i3status
# status_command SCRIPT_DIR=~/bin/i3blocks/ i3blocks
# tray_output primary
# # tray_output none
# strip_workspace_numbers yes
# colors {
# background $ad_insensitive_bg_color
# statusline $ad_text_color
# separator $ad_insensitive_fg_color
# focused_background $ad_bg_color
# focused_statusline $ad_fg_color
# focused_workspace $ad_selected_bg_color $ad_selected_bg_color $ad_selected_fg_color
# active_workspace $ad_bg_color $ad_bg_color $ad_fg_color
# inactive_workspace $ad_insensitive_bg_color $ad_insensitive_bg_color $ad_insensitive_fg_color
# urgent_workspace $ad_btn_close_color $ad_btn_close_color #FFFFFF
# }
# }
reflow_docks no
call plug#begin('~/.vim/plugged')
Plug 'editorconfig/editorconfig-vim'
" Status
Plug 'bling/vim-airline'
Plug 'lilydjwg/fcitx.vim'
" Bars, panels, and files
Plug 'scrooloose/nerdtree'
" Plug 'bling/vim-airline'
Plug 'autozimu/LanguageClient-neovim', { 'branch': 'next', 'do': './install.sh' }
" Plug 'roxma/nvim-completion-manager'
Plug 'ncm2/ncm2'
" Plug 'ctrlpvim/ctrlp.vim'
Plug 'majutsushi/tagbar'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
Plug 'benmills/vimux'
Plug 'neomake/neomake'
Plug 'vim-scripts/DrawIt'
" Git
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
Plug 'int3/vim-extradite'
" Haskell
Plug 'neovimhaskell/haskell-vim', { 'for': 'haskell' }
Plug 'parsonsmatt/intero-neovim', { 'for': 'haskell' }
Plug 'enomsg/vim-haskellConcealPlus', { 'for': 'haskell' }
" Theme
Plug 'Josheriff/semantic-highlight.vim'
" Plug 'IngoHeimbach/semantic-highlight.vim'
" Plug 'jaxbot/semantic-highlight.vim'
Plug 'vim-scripts/tir_black'
Plug 'chriskempson/base16-vim'
" Python
Plug 'davidhalter/jedi-vim', {'for': 'python'}
" Go
Plug 'fatih/vim-go', {'for': 'go'}
" Rust
Plug 'rust-lang/rust.vim', {'for': 'rust'}
Plug 'racer-rust/vim-racer', {'for': 'rust'}
" Pandoc
Plug 'vim-scripts/VOoM'
Plug 'vim-pandoc/vim-pandoc'
Plug 'vim-pandoc/vim-pandoc-syntax'
Plug 'rhysd/vim-grammarous', {'for': 'markdown'}
" GLSL
Plug 'tikhomirov/vim-glsl'
" Text manipulation
Plug 'vim-scripts/Align'
Plug 'simnalamburt/vim-mundo'
Plug 'tpope/vim-commentary'
Plug 'godlygeek/tabular'
Plug 'michaeljsmith/vim-indent-object'
Plug 'easymotion/vim-easymotion'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-abolish'
Plug 'tmhedberg/matchit'
Plug 'dhruvasagar/vim-table-mode'
call plug#end()
" }}}
set clipboard=unnamed
try
colorscheme base16-default-dark
if filereadable(expand("~/.vimrc_background"))
let base16colorspace=256
source ~/.vimrc_background
endif
catch
endtry
" Set 7 lines to the cursor - when moving vertically using j/k
set so=7
" Turn on the Wild menu
set wildmenu
" Tab-complete files up to longest unambiguous prefix
set wildmode=list:longest,full
" Always show current position
set ruler
set relativenumber
set number
set cursorline
autocmd InsertEnter * set rnu
autocmd InsertLeave * set nu
let g:airline_powerline_fonts=1
" Show trailing whitespace
set list
" But only interesting whitespace
if &listchars ==# 'eol:$'
set listchars=tab:>\ ,trail:_,extends:>,precedes:<,nbsp:+
endif
" Use par for prettier line formatting
set formatprg="PARINIT='rTbgqR B=.,?_A_a Q=_s>|' par\ -w72"
" Use indentation for folds
set foldmethod=indent
set foldnestmax=5
set foldlevelstart=99
set foldcolumn=0
augroup vimrcFold
" fold vimrc itself by categories
autocmd!
autocmd FileType vim set foldmethod=marker
autocmd FileType vim set foldlevel=0
augroup END
set nocompatible
syntax on
filetype plugin indent on
" speedup marcos
set lazyredraw
"
" Ignore case when searching
set ignorecase
" When searching try to be smart about cases
set smartcase
" Highlight search results
set hlsearch
" C-L to clean highlight
nnoremap <C-L> :nohlsearch<CR><C-L>
map <F9> :TagbarToggle<CR>
map <F12> :SemanticHighlightToggle<CR>
" modern search
set incsearch
" Kill the damned Ex mode.
nnoremap Q <nop>
" Open file prompt with current path
nmap <leader>e :e <C-R>=expand("%:p:h") . '/'<CR>
" Show undo tree
nmap <silent> <leader>u :MundoToggle<CR>
" don't close buffers when you aren't displaying them
set hidden
" makeview on each file
" autocmd BufWinLeave *.* mkview!
" autocmd BufWinEnter *.* silent loadview
set mouse=a
let g:NERDCustomDelimiters = {}
" Text, tab and indent related {{{
" Use spaces instead of tabs
set expandtab
" Be smart when using tabs ;)
set smarttab
" 1 tab == 2 spaces
set shiftwidth=2
set tabstop=2
" Linebreak on 500 characters
set lbr
set tw=500
set ai "Auto indent
set si "Smart indent
set wrap "Wrap lines
" }}}
" digraph {{{
digraph [[ 10214
digraph ]] 10215
" }}}
" fzf {{{
" Mapping selecting mappings
nmap <leader><tab> <plug>(fzf-maps-n)
xmap <leader><tab> <plug>(fzf-maps-x)
omap <leader><tab> <plug>(fzf-maps-o)
"
" Insert mode completion
imap <c-x><c-k> <plug>(fzf-complete-word)
imap <c-x><c-f> <plug>(fzf-complete-path)
imap <c-x><c-j> <plug>(fzf-complete-file-ag)
imap <c-x><c-l> <plug>(fzf-complete-line)
" Advanced customization using autoload functions
inoremap <expr> <c-x><c-k> fzf#vim#complete#word({'left': '15%'})
"
nmap <leader><space> :Files<CR>
nmap <leader>t :Tags<CR>
nmap <leader>; :Buffers<CR>
" }}}
map <F7> :Neomake<CR>
" {{{ LanguageClient
let g:LanguageClient_serverCommands = {}
" let g:LanguageClient_loadSettings = 1
nnoremap <silent> K :call LanguageClient_textDocument_hover()<CR>
nnoremap <silent> gd :call LanguageClient_textDocument_definition()<CR>
nnoremap <silent> <F2> :call LanguageClient_textDocument_rename()<CR>
nnoremap <silent> <leader>k :call LanguageClient_textDocument_codeAction()<CR>
nnoremap <silent> <leader>= :call LanguageClient_textDocument_formatting()<CR>
nnoremap <silent> <leader>t :call LanguageClient#textDocument_signatureHelp()<CR>
" }}}
" let g:LanguageClient_serverCommands.pytest = ['tcp://127.0.0.1:8080']
let g:LanguageClient_serverCommands.pytest = ['nc', '0.0.0.0', '8080']
" {{{ C/C++
autocmd FileType c let g:LanguageClient_settingsPath = '/home/requiem/.config/nvim/settings-c.json'
autocmd FileType cpp let g:LanguageClient_settingsPath = '/home/requiem/.config/nvim/settings-cpp.json'
let g:LanguageClient_serverCommands.c = ['ccls', '--log-file=/tmp/cq.log']
let g:LanguageClient_serverCommands.cpp = ['ccls', '--log-file=/tmp/cq-cpp.log']
" }}}
" {{{ Rust
set hidden
let g:racer_cmd = "~/.cargo/bin/racer"
let g:racer_experimental_completer = 1
" When writing a buffer, and on normal mode changes (after 750ms).
autocmd FileType rust call neomake#configure#automake('nw', 750)
au FileType rust nmap gd <Plug>(rust-def)
autocmd FileType rust nmap K <Plug>(rust-doc)
" }}}
" Pandoc {{{
" add CJK to spell langs
let g:pandoc#spell#default_langs=['en_us', 'cjk']
let g:pandoc#syntax#use_definition_lists = 0
autocmd FileType pandoc set iskeyword+=\-
autocmd FileType pandoc map <F9> :VoomToggle pandoc<CR>
" }}}
" Haskell {{{
autocmd FileType haskell setlocal ts=4 sts=4 sw=4 ex
let g:LanguageClient_serverCommands.haskell = ['hie-wrapper', '--lsp']
" {{{{
" autocmd FileType haskell map <silent> <leader>t <Plug>InteroGenericType
" let g:LanguageClient_serverCommands.haskell = ['hie', '--lsp']
" call SetLanguageClientKeys()
augroup interoMaps
au!
" Maps for intero. Restrict to Haskell buffers so the bindings don't collide.
" Background process and window management
au FileType haskell nnoremap <silent> <leader>is :InteroStart<CR>
au FileType haskell nnoremap <silent> <leader>ik :InteroKill<CR>
" Open intero/GHCi split horizontally
au FileType haskell nnoremap <silent> <leader>io :InteroOpen<CR>
" Open intero/GHCi split vertically
au FileType haskell nnoremap <silent> <leader>iov :InteroOpen<CR><C-W>H
au FileType haskell nnoremap <silent> <leader>ih :InteroHide<CR>
" Reloading (pick one)
" Automatically reload on save
"au BufWritePost *.hs InteroReload
" Manually save and reload
au FileType haskell nnoremap <silent> <leader>wr :w \| :InteroReload<CR>
" Load individual modules
au FileType haskell nnoremap <silent> <leader>il :InteroLoadCurrentModule<CR>
au FileType haskell nnoremap <silent> <leader>if :InteroLoadCurrentFile<CR>
" Type-related information
" Heads up! These next two differ from the rest.
au FileType haskell map <silent> <leader>t <Plug>InteroGenericType
au FileType haskell map <silent> <leader>T <Plug>InteroType
au FileType haskell nnoremap <silent> <leader>it :InteroTypeInsert<CR>
" Navigation
au FileType haskell nnoremap <silent> <leader>jd :InteroGoToDef<CR>
" Managing targets
" Prompts you to enter targets (no silent):
au FileType haskell nnoremap <leader>ist :InteroSetTargets<SPACE>
augroup END
" Intero starts automatically. Set this if you'd like to prevent that.
let g:intero_start_immediately = 0
" }}}}
let g:haskell_enable_quantification = 1
let g:haskell_enable_recursivedo = 1
let g:haskell_enable_arrowsyntax = 1
let g:haskell_enable_pattern_synonyms = 1
let g:haskell_enable_typeroles = 1
let g:haskell_enable_static_pointers = 1
let g:haskell_backpack = 1
let g:haskell_indent_if = 0
let g:haskell_indent_do = 4
let g:haskell_indent_in = 0
let g:haskell_indent_let = 4
" Turn off *Pretty unicode haskell symbols*
let g:haskell_conceal = 0
let g:haskell_conceal_wide = 0
let g:haskell_conceal_enumerations = 0
let hscoptions="𝐒𝐓𝐄𝐌xRtB𝔻w"
" }}}
" {{{ Table
let g:table_mode_corner_corner='+'
let g:table_mode_header_fillchar='='
" }}}
" {{{ Python
au FileType python let g:neomake_python_enabled_makers = ['flake8']
let g:LanguageClient_serverCommands.python = ['pyls', '-v']
" }}}
""" {{{ Java
let g:LanguageClient_serverCommands.java = ['jdtls', '-data', getcwd()]
""" }}}
""" {{{ Fortran
let fortran_free_source=1
let fortran_have_tabs=1
let fortran_more_precise=1
let fortran_do_enddo=1
""" }}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment