|
|
@ -1,4 +1,3 @@ |
|
|
|
|
|
|
|
|
# Disable ctrl-s and ctrl-q. |
|
|
# Disable ctrl-s and ctrl-q. |
|
|
stty -ixon |
|
|
stty -ixon |
|
|
|
|
|
|
|
|
@ -49,6 +48,42 @@ zle -N zle-line-init |
|
|
echo -ne '\e[5 q' |
|
|
echo -ne '\e[5 q' |
|
|
preexec() { echo -ne '\e[5 q' ;} |
|
|
preexec() { echo -ne '\e[5 q' ;} |
|
|
|
|
|
|
|
|
|
|
|
# Vim copy and paste fix in terminal |
|
|
|
|
|
function x11-clip-wrap-widgets() { |
|
|
|
|
|
local copy_or_paste=$1 |
|
|
|
|
|
shift |
|
|
|
|
|
for widget in $@; do |
|
|
|
|
|
if [[ $copy_or_paste == "copy" ]]; then |
|
|
|
|
|
eval " |
|
|
|
|
|
function _x11-clip-wrapped-$widget() { |
|
|
|
|
|
zle .$widget |
|
|
|
|
|
xclip -in -selection clipboard <<<\$CUTBUFFER |
|
|
|
|
|
} |
|
|
|
|
|
" |
|
|
|
|
|
else |
|
|
|
|
|
eval " |
|
|
|
|
|
function _x11-clip-wrapped-$widget() { |
|
|
|
|
|
CUTBUFFER=\$(xclip -out -selection clipboard) |
|
|
|
|
|
zle .$widget |
|
|
|
|
|
} |
|
|
|
|
|
" |
|
|
|
|
|
fi |
|
|
|
|
|
zle -N $widget _x11-clip-wrapped-$widget |
|
|
|
|
|
done |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local copy_widgets=( |
|
|
|
|
|
vi-yank vi-yank-eol vi-delete vi-backward-kill-word vi-change-whole-line |
|
|
|
|
|
) |
|
|
|
|
|
local paste_widgets=( |
|
|
|
|
|
vi-put-{before,after} |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
# NB: can atm. only wrap native widgets |
|
|
|
|
|
x11-clip-wrap-widgets copy $copy_widgets |
|
|
|
|
|
x11-clip-wrap-widgets paste $paste_widgets |
|
|
|
|
|
|
|
|
# starts one or multiple args in background |
|
|
# starts one or multiple args in background |
|
|
background() { |
|
|
background() { |
|
|
for ((i=2;i<=$#;i++)); do |
|
|
for ((i=2;i<=$#;i++)); do |
|
|
|