From f99c061870880e4a1b91956e097ef0dd5b0bdbdd Mon Sep 17 00:00:00 2001 From: Anas Elgarhy Date: Tue, 21 Jun 2022 16:27:59 +0200 Subject: [PATCH] =?UTF-8?q?Add=20idea=20vim=20configs=20=F0=9F=98=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ' | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++ .ideavimrc | 38 ++++++++++++++ 2 files changed, 183 insertions(+) create mode 100644 ' create mode 100644 .ideavimrc diff --git a/' b/' new file mode 100644 index 0000000..cbc4858 --- /dev/null +++ b/' @@ -0,0 +1,145 @@ +### EXPORT ### +export EDITOR='nvim' +export VISUAL='nvim' +export TERMINAL='alacritty' +export JAVA_HOME='/usr/lib/jvm/java-18-openjdk' +# ls colors from https://github.com/body20002/nova/blob/main/nova.zsh-theme + *.jar and *.mp4, *.mkv from me :D +export LS_COLORS='no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.jar=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.mp4=01;35:*.mkv=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:' + +### PATH ### +export PATH="$java_home/bin:$PATH" + +USE_POWERLINE="true" +setopt correct # Auto corect mistakes +setopt nobeep # No beep + + +# Enable colors and change prompt: +autoload -U colors && colors +# PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b " + +# PROMPT="%B%{$fg[cyan]%}%(4~|%-1~/.../%2~|%~)%u%b >%{$fg[cyan]%}>%B%(?.% " + +# History in cache directory: +HISTSIZE=10000 +SAVEHIST=10000 +HISTFILE=~/.zsh_history + +# Basic auto/tab complete: +autoload -U compinit +zstyle ':completion:*' menu select +zmodload zsh/complist +compinit +_comp_options+=(globdots) # Include hidden files. + +# Speed up completions +zstyle ':completion:*' accept-exact '*(N)' +zstyle ':completion:*' use-cache on +zstyle ':completion:*' cache-path ~/.zsh/cache + +## Plugins section: +# Enable fish style features +source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme +source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh +# Wakatime plugin: +source $HOME/.oh-my-zsh/custom/plugins/wakatime/wakatime.plugin.zsh + +# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. +# Initialization code that may require console input (password prompts, [y/n] +# confirmations, etc.) must go above this block; everything else may go below. +if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then + source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" +fi + +# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. +[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh + + +# Offer to install missing package if command is not found +if [[ -r /usr/share/zsh/functions/command-not-found.zsh ]]; then + source /usr/share/zsh/functions/command-not-found.zsh + export PKGFILE_PROMPT_INSTALL_MISSING=1 +fi + +# Use syntax highlighting +source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +# Use history substring search +source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh + +# Key bindings section +# vi mode +bindkey -v +export KEYTIMEOUT=1 + +# Use vim keys in tab complete menu: +bindkey -M menuselect 'h' vi-backward-char +bindkey -M menuselect 'k' vi-up-line-or-history +bindkey -M menuselect 'l' vi-forward-char +bindkey -M menuselect 'j' vi-down-line-or-history +bindkey -v '^?' backward-delete-char + +# Change cursor shape for different vi modes. +function zle-keymap-select { + if [[ ${KEYMAP} == vicmd ]] || + [[ $1 = 'block' ]]; then + echo -ne '\e[1 q' + elif [[ ${KEYMAP} == main ]] || + [[ ${KEYMAP} == viins ]] || + [[ ${KEYMAP} = '' ]] || + [[ $1 = 'beam' ]]; then + echo -ne '\e[5 q' + fi +} +zle -N zle-keymap-select +zle-line-init() { + zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere) + echo -ne "\e[5 q" +} +zle -N zle-line-init +echo -ne '\e[5 q' # Use beam shape cursor on startup. +preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt. + +# Use lf to switch directories and bind it to ctrl-o +lfcd () { + tmp="$(mktemp)" + lf -last-dir-path="$tmp" "$@" + if [ -f "$tmp" ]; then + dir="$(cat "$tmp")" + rm -f "$tmp" + [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" + fi +} +bindkey -s '^o' 'lfcd\n' + +# Edit line in vim with ctrl-e: +autoload edit-command-line; zle -N edit-command-line +bindkey '^e' edit-command-line + +# bind UP and DOWN arrow keys to history substring search +zmodload zsh/terminfo +bindkey "$terminfo[kcuu1]" history-substring-search-up +bindkey "$terminfo[kcud1]" history-substring-search-down +bindkey '^[[A' history-substring-search-up +bindkey '^[[B' history-substring-search-down + +# Auto open tmux session +# if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then +# exec tmux +# fi + +# Aliases +alias clear='clear && ufetch' +alias cls='/usr/bin/clear' +alias lsc='ls --color=auto' +alias ls='logo-ls -Dh' +alias JCmusIntegrationWithDiscord='java -jar /mnt/Work_files/JCmusIntegrationWithDiscord/out/artifacts/JCmusIntegrationWithDiscord_jar/JCmusIntegrationWithDiscord.jar' +alias cmus='JCmusIntegrationWithDiscord --link &>/dev/null & cmus' + + +# Fix cava not showing bars +LC_MESSAGES=en_US.UTF-8 +LANGUAGE=en_US +LANG=en_US.UTF-8 + +# Auto run +ufetch diff --git a/.ideavimrc b/.ideavimrc new file mode 100644 index 0000000..45b02c3 --- /dev/null +++ b/.ideavimrc @@ -0,0 +1,38 @@ +"" Source your .vimrc +"source ~/.vimrc + +" variables +let mapleader = "," + +"" -- Suggested options -- +" Show a few lines of context around the cursor. Note that this makes the +" text scroll if you mouse-click near the start or end of the window. +set scrolloff=5 +set clipboard+=unnamedplus " Allow ideavim to copy/paste from/to the clipboard +set incsearch " Do incremental searching. +set history=2000 " Set the number of commands to remember. + + +" Don't use Ex mode, use Q for formatting. +map Q gq + + +"" -- Map IDE actions to IdeaVim -- https://jb.gg/abva4t +"" Map \r to the Reformat Code action +map \r (ReformatCode) + +"" Map d to start debug +map d (Debug) + +"" Map \b to toggle the breakpoint on the current line +map b (ToggleLineBreakpoint) + +map (Rename) + +" Plugins +Plug 'easymotion/vim-easymotion' +Plug 'preservim/nerdtree' +Plug 'tpope/vim-surround' + +" Find more examples here: https://jb.gg/share-ideavimrc +set ideajoin \ No newline at end of file