set -e $cmd_hist[1][(expr $num_items - $cmd_num)] ^ /dev/null
return 0
end
return 1
end
return 1
end
##############
...
...
@@ -252,7 +262,7 @@ function mark -d 'Create bookmark for present working directory.'
set -U bookmarks $PWD $bookmarks
set pwd_hist_lock true
commandline -f repaint
end
end
end
function unmark -d 'Remove bookmark for present working directory.'
...
...
@@ -260,7 +270,7 @@ function unmark -d 'Remove bookmark for present working directory.'
set -e bookmarks[(contains -i $PWD $bookmarks)]
set pwd_hist_lock true
commandline -f repaint
end
end
end
function m -d 'List bookmarks, jump to directory in list with m <number>'
...
...
@@ -269,8 +279,8 @@ function m -d 'List bookmarks, jump to directory in list with m <number>'
set_color $fish_color_error[1]
echo 'Bookmark list is empty. '(set_color normal)'Enter '(set_color $fish_color_command[1])'mark '(set_color normal)'in INSERT mode or '(set_color $fish_color_command[1])'m '(set_color normal)'in NORMAL mode, if you want to add the current directory to your bookmark list.'
return
end
for i in (seq $num_items)
end
for i in (seq $num_items)
if [ $PWD = $bookmarks[$i] ]
set_color $budspencer_colors[10]
else
...
...
@@ -281,21 +291,21 @@ function m -d 'List bookmarks, jump to directory in list with m <number>'
end
end
echo (expr $num_items - $i)\t$bookmarks[$i] | sed "s|$HOME|~|"
end
if [ $num_items -eq 1 ]
end
if [ $num_items -eq 1 ]
set last_item ''
else
else
set last_item '-'(expr $num_items - 1)
end
echo -en $budspencer_cursors[1]
set input_length (expr length (expr $num_items - 1))
@@ -308,7 +318,7 @@ function __budspencer_delete_zombi_sessions -d 'Delete zombi sessions'
set -e budspencer_sessions_active_pid[$item]
set -e budspencer_sessions_active[$item]
end
end
end
end
function __budspencer_create_new_session -d 'Create a new session'
...
...
@@ -322,20 +332,20 @@ function __budspencer_erase_session -d 'Erase current session'
set_color $fish_color_error[1]
echo 'Missing argument: name of session to erase'
return
end
if contains $argv[2] $budspencer_sessions_active
end
if contains $argv[2] $budspencer_sessions_active
set_color $fish_color_error[1]
echo "Session '$argv[2]' cannot be erased because it's currently active."
return
end
if contains $argv[2] $budspencer_sessions
end
if contains $argv[2] $budspencer_sessions
set -e budspencer_session_cmd_hist_$argv[2]
set -e budspencer_session_dir_hist_$argv[2]
set -e budspencer_sessions[(contains -i $argv[2] $budspencer_sessions)]
else
else
set_color $fish_color_error[1]
echo "Session '$argv[2]' not found. "(set_color normal)'Enter '(set_color $fish_color_command[1])'s '(set_color normal)'to show a list of all recorded sessions.'
end
end
end
function __budspencer_detach_session -d 'Detach current session'
...
...
@@ -343,19 +353,19 @@ function __budspencer_detach_session -d 'Detach current session'
set dir_hist dir_hist_nosession
if [ -z $$dir_hist ] ^ /dev/null
set $dir_hist $PWD
end
set dir_hist_val (count $$dir_hist)
set -e budspencer_sessions_active_pid[$argv] ^ /dev/null
set -e budspencer_sessions_active[$argv] ^ /dev/null
set budspencer_session_current ''
cd $$dir_hist[1][$dir_hist_val]
end
set dir_hist_val (count $$dir_hist)
set -e budspencer_sessions_active_pid[$argv] ^ /dev/null
set -e budspencer_sessions_active[$argv] ^ /dev/null
set budspencer_session_current ''
cd $$dir_hist[1][$dir_hist_val]
end
function __budspencer_attach_session -d 'Attach session'
set argv (echo -sn $argv\n | sed 's|[^[:alnum:]]|_|g')
if contains $argv[1] $budspencer_sessions_active
wmctrl -a "✻ $argv[1]"
else
else
wt "✻ $argv[1]"
__budspencer_detach_session $argv[-1]
set budspencer_sessions_active $budspencer_sessions_active $argv[1]
...
...
@@ -371,7 +381,7 @@ function __budspencer_attach_session -d 'Attach session'
end
set dir_hist_val (count $$dir_hist)
cd $$dir_hist[1][$dir_hist_val] ^ /dev/null
end
end
end
function s -d 'Create, delete or attach session'
...
...
@@ -427,34 +437,34 @@ function s -d 'Create, delete or attach session'
case '*'
return 1
end
end
set -l item (contains -i %self $budspencer_sessions_active_pid ^ /dev/null)
switch $argv[1]
case '-e'
end
set -l item (contains -i %self $budspencer_sessions_active_pid ^ /dev/null)
switch $argv[1]
case '-e'
__budspencer_erase_session $argv
case '-d'
case '-d'
wt 'fish'
__budspencer_detach_session $item
case '-*'
case '-*'
set_color $fish_color_error[1]
echo "Invalid argument: $argv[1]"
case '*'
case '*'
__budspencer_attach_session $argv $item
end
end
end
#####################################
# => Commandline editing with $EDITOR
#####################################
function __budspencer_edit_comandline -d 'Open current commandline with your editor'
commandline > $budspencer_tmpfile
function __budspencer_edit_commandline -d 'Open current commandline with your editor'
commandline | fish_indent > $budspencer_tmpfile
eval $EDITOR $budspencer_tmpfile
if [ -s $budspencer_tmpfile ]
commandline (sed 's|^\s*||' $budspencer_tmpfile)
else
else
commandline ''
end
rm $budspencer_tmpfile
end
rm $budspencer_tmpfile
end
################
...
...
@@ -470,9 +480,9 @@ function __budspencer_prompt_git_branch -d 'Return the current branch name'