1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
Time	Sum	Command
6	21921	> __fish_on_interactive
4	4	-> functions -e __fish_on_interactive
134	21911	-> __fish_config_interactive
776	782	--> source /opt/homebrew/Cellar/fish/3.7.1/share/fish/functions/__fish_config_interactive.fish
6	6	---> function __fish_config_interactive -d "Initializations that should be performed when entering interactive mode"...
1	5	--> if not set -q __fish_initialized...
4	4	---> not set -q __fish_initialized
3	3	--> set -g __fish_active_key_bindings
3	3	--> function __init_uvar -d "Sets a universal variable if it's not already set"...
1	6	--> if test $__fish_initialized -lt 3400...
5	5	---> test $__fish_initialized -lt 3400
6	46	--> if not set -q FISH_UNIT_TESTS_RUNNING...
3	3	---> not set -q FISH_UNIT_TESTS_RUNNING
6	6	---> set -l script $__fish_data_dir/tools/create_manpage_completions.py
0	31	---> if not test -d $__fish_user_data_dir/generated_completions...
31	31	----> not test -d $__fish_user_data_dir/generated_completions
5	15798	--> if status --is-interactive...
4	4	---> status --is-interactive
4	4	---> functions -q fish_greeting
22	15785	---> fish_greeting
15712	15712	----> fortune
51	51	----> echo "><_> tick... tock..."
3	34	--> if test -d /etc/init.d...
31	31	---> test -d /etc/init.d
131	131	--> complete -c [ --wraps test
6	6	--> complete -c ! --wraps not
491	669	--> complete -c(builtin -n | string match -rv '(\.|:|source|cd|contains|count|echo|exec|printf|random|realpath|set|\\[|test|for)') --no-files
178	178	---> builtin -n | string match -rv '(\.|:|source|cd|contains|count|echo|exec|printf|random|realpath|set|\\[|test|for)'
72	72	--> function __fish_reload_key_bindings -d "Reload key bindings when binding variable change" --on-variable fish_key_bindings...
25	4116	--> __fish_reload_key_bindings
16	35	---> __init_uvar fish_key_bindings fish_default_key_bindings
2	19	----> if not set --query $argv[1]...
17	17	-----> not set --query $argv[1]
1	16	---> if test "$fish_key_bindings" = "$__fish_active_key_bindings" -a -n "$fish_key_bindings"...
15	15	----> test "$fish_key_bindings" = "$__fish_active_key_bindings" -a -n "$fish_key_bindings"
0	1277	---> if not functions -q "$fish_key_bindings"...
425	1277	----> not functions -q "$fish_key_bindings"
847	852	-----> source /opt/homebrew/Cellar/fish/3.7.1/share/fish/functions/fish_default_key_bindings.fish
5	5	------> function fish_default_key_bindings -d "emacs-like key binds"...
8	8	---> set -g __fish_active_key_bindings "$fish_key_bindings"
3	3	---> set -g fish_bind_mode default
4	2698	---> if test "$fish_key_bindings" = fish_default_key_bindings...
5	5	----> test "$fish_key_bindings" = fish_default_key_bindings
80	2689	----> fish_default_key_bindings 2>/dev/null
1	9	-----> if contains -- -h $argv...
5	5	------> contains -- -h $argv
3	3	------> contains -- --help $argv
3	39	-----> if not set -q argv[1]...
3	3	------> not set -q argv[1]
29	29	------> bind --erase --all --preset
0	4	------> if test "$fish_key_bindings" != fish_default_key_bindings...
4	4	-------> test "$fish_key_bindings" != fish_default_key_bindings
2	7	-----> if not contains -- -s $argv...
2	2	------> not contains -- -s $argv
3	3	------> set argv -s $argv
186	2058	-----> __fish_shared_key_bindings $argv
448	457	------> source /opt/homebrew/Cellar/fish/3.7.1/share/fish/functions/__fish_shared_key_bindings.fish
4	4	-------> function __fish_shared_key_bindings -d "Bindings shared between emacs and vi mode"...
3	3	-------> function __fish_commandline_insert_escaped --description 'Insert the first arg escaped if a second arg is given'...
1	1	-------> function __fish_start_bracketed_paste...
1	1	-------> function __fish_stop_bracketed_paste...
0	7	------> if contains -- -h $argv...
4	4	-------> contains -- -h $argv
3	3	-------> contains -- --help $argv
4	4	------> bind --preset $argv \cy yank
3	3	------> bind --preset $argv \ey yank-pop
4	4	------> bind --preset $argv -k right forward-char
3	3	------> bind --preset $argv -k left backward-char
3	3	------> bind --preset $argv \e\[C forward-char
3	3	------> bind --preset $argv \e\[D backward-char
4	4	------> bind --preset $argv \eOC forward-char
3	3	------> bind --preset $argv \eOD backward-char
4	4	------> bind --preset $argv \e\[1\;5C forward-word
3	3	------> bind --preset $argv \e\[1\;5D backward-word
3	3	------> bind --preset $argv -k ppage beginning-of-history
3	3	------> bind --preset $argv -k npage end-of-history
3	3	------> bind --preset $argv \cx fish_clipboard_copy
3	3	------> bind --preset $argv \cv fish_clipboard_paste
2	2	------> bind --preset $argv \e cancel
7	7	------> bind --preset $argv \t complete
3	3	------> bind --preset $argv \cs pager-toggle-search
3	3	------> bind --preset $argv --key btab complete-and-search
54	54	------> bind --preset $argv -k sdc history-pager-delete or backward-delete-char
34	34	------> bind --preset $argv \e\n "commandline -f expand-abbr; commandline -i \n"
13	13	------> bind --preset $argv \e\r "commandline -f expand-abbr; commandline -i \n"
10	10	------> bind --preset $argv -k down down-or-search
11	11	------> bind --preset $argv -k up up-or-search
9	9	------> bind --preset $argv \e\[A up-or-search
8	8	------> bind --preset $argv \e\[B down-or-search
8	8	------> bind --preset $argv \eOA up-or-search
8	8	------> bind --preset $argv \eOB down-or-search
10	10	------> bind --preset $argv -k sright forward-bigword
10	10	------> bind --preset $argv -k sleft backward-bigword
9	9	------> bind --preset $argv \e\eOC nextd-or-forward-word
9	9	------> bind --preset $argv \e\eOD prevd-or-backward-word
9	9	------> bind --preset $argv \e\e\[C nextd-or-forward-word
9	9	------> bind --preset $argv \e\e\[D prevd-or-backward-word
9	9	------> bind --preset $argv \eO3C nextd-or-forward-word
9	9	------> bind --preset $argv \eO3D prevd-or-backward-word
9	9	------> bind --preset $argv \e\[3C nextd-or-forward-word
10	10	------> bind --preset $argv \e\[3D prevd-or-backward-word
10	10	------> bind --preset $argv \e\[1\;3C nextd-or-forward-word
10	10	------> bind --preset $argv \e\[1\;3D prevd-or-backward-word
9	9	------> bind --preset $argv \e\[1\;9C nextd-or-forward-word
9	9	------> bind --preset $argv \e\[1\;9D prevd-or-backward-word
9	9	------> bind --preset $argv \e\eOA history-token-search-backward
9	9	------> bind --preset $argv \e\eOB history-token-search-forward
9	9	------> bind --preset $argv \e\e\[A history-token-search-backward
8	8	------> bind --preset $argv \e\e\[B history-token-search-forward
9	9	------> bind --preset $argv \eO3A history-token-search-backward
9	9	------> bind --preset $argv \eO3B history-token-search-forward
9	9	------> bind --preset $argv \e\[3A history-token-search-backward
8	8	------> bind --preset $argv \e\[3B history-token-search-forward
9	9	------> bind --preset $argv \e\[1\;3A history-token-search-backward
9	9	------> bind --preset $argv \e\[1\;3B history-token-search-forward
9	9	------> bind --preset $argv \e\[1\;9A history-token-search-backward
10	10	------> bind --preset $argv \e\[1\;9B history-token-search-forward
9	9	------> bind --preset $argv \e. history-token-search-backward
9	9	------> bind --preset $argv \el __fish_list_current_token
8	8	------> bind --preset $argv \eo __fish_preview_current_file
8	8	------> bind --preset $argv \ew __fish_whatis_current_token
8	8	------> bind --preset $argv \cl clear-screen
8	8	------> bind --preset $argv \cc cancel-commandline
8	8	------> bind --preset $argv \cu backward-kill-line
8	8	------> bind --preset $argv \cw backward-kill-path-component
9	9	------> bind --preset $argv \e\[F end-of-line
9	9	------> bind --preset $argv \e\[H beginning-of-line
13	13	------> bind --preset $argv \ed 'set -l cmd (commandline); if test -z "$cmd"; echo; dirh; commandline -f repaint; else; commandline -f kill-word; end'
8	8	------> bind --preset $argv \cd delete-or-exit
12	12	------> bind --preset $argv \es 'for cmd in sudo doas please; if command -q $cmd; fish_commandline_prepend $cmd; break; end; end'
9	9	------> bind --preset $argv -k f1 __fish_man_page
9	9	------> bind --preset $argv \eh __fish_man_page
18	18	------> bind --preset $argv \ep __fish_paginate
10	10	------> bind --preset $argv \e\# __fish_toggle_comment_commandline
9	9	------> bind --preset $argv \ee edit_command_buffer
9	9	------> bind --preset $argv \ev edit_command_buffer
125	260	------> for mode in (bind --list-modes | string match -v paste)...
100	100	-------> bind --list-modes | string match -v paste
14	14	-------> bind --preset -M $mode \e\[I 'emit fish_focus_in'
10	10	-------> bind --preset -M $mode \e\[O false
11	11	-------> bind --preset -M $mode \e\[\?1004h false
98	198	------> for mode in (bind --list-modes | string match -v paste)...
84	84	-------> bind --list-modes | string match -v paste
16	16	-------> bind --preset -M $mode -m paste \e\[200~ __fish_start_bracketed_paste
10	10	------> bind --preset -M paste \e\[201~ __fish_stop_bracketed_paste
8	8	------> bind --preset -M paste "" self-insert
9	9	------> bind --preset -M paste \r "commandline -i \n"
11	11	------> bind --preset -M paste "'" "__fish_commandline_insert_escaped \' \$__fish_paste_quoted"
10	10	------> bind --preset -M paste \\ "__fish_commandline_insert_escaped \\\ \$__fish_paste_quoted"
9	9	------> bind --preset -M paste " " self-insert-notfirst
26	258	------> if not set -l index (contains --index -- -M $argv)...
63	75	-------> not set -l index (contains --index -- -M $argv)
12	12	--------> contains --index -- -M $argv
11	11	-------> bind --preset $argv "" self-insert
10	10	-------> bind --preset $argv " " self-insert expand-abbr
9	9	-------> bind --preset $argv ";" self-insert expand-abbr
9	9	-------> bind --preset $argv "|" self-insert expand-abbr
9	9	-------> bind --preset $argv "&" self-insert expand-abbr
9	9	-------> bind --preset $argv ">" self-insert expand-abbr
9	9	-------> bind --preset $argv "<" self-insert expand-abbr
9	9	-------> bind --preset $argv ")" self-insert expand-abbr
13	13	-------> bind --preset $argv -k nul 'test -n "$(commandline)" && commandline -i " "'
12	12	-------> bind --preset $argv \e\[32\;2u 'commandline -i " "; commandline -f expand-abbr'
9	9	-------> bind --preset $argv \n execute
8	8	-------> bind --preset $argv \r execute
10	10	-------> bind --preset $argv \e\[27\;5\;13~ execute
10	10	-------> bind --preset $argv \e\[13\;5u execute
10	10	-------> bind --preset $argv \e\[27\;2\;13~ execute
10	10	-------> bind --preset $argv \e\[13\;2u execute
10	10	-----> bind --preset $argv \ck kill-line
9	9	-----> bind --preset $argv \eOC forward-char
8	8	-----> bind --preset $argv \eOD backward-char
9	9	-----> bind --preset $argv \e\[C forward-char
8	8	-----> bind --preset $argv \e\[D backward-char
9	9	-----> bind --preset $argv -k right forward-char
9	9	-----> bind --preset $argv -k left backward-char
9	9	-----> bind --preset $argv -k dc delete-char
9	9	-----> bind --preset $argv -k backspace backward-delete-char
9	9	-----> bind --preset $argv \x7f backward-delete-char
10	10	-----> bind --preset $argv \e\[1~ beginning-of-line
8	8	-----> bind --preset $argv \e\[3~ delete-char
10	10	-----> bind --preset $argv \e\[4~ end-of-line
10	10	-----> bind --preset $argv -k home beginning-of-line
9	9	-----> bind --preset $argv -k end end-of-line
8	8	-----> bind --preset $argv \ca beginning-of-line
9	9	-----> bind --preset $argv \ce end-of-line
8	8	-----> bind --preset $argv \ch backward-delete-char
8	8	-----> bind --preset $argv \cp up-or-search
9	9	-----> bind --preset $argv \cn down-or-search
9	9	-----> bind --preset $argv \cf forward-char
9	9	-----> bind --preset $argv \cb backward-char
8	8	-----> bind --preset $argv \ct transpose-chars
8	8	-----> bind --preset $argv \cg cancel
9	9	-----> bind --preset $argv \c_ undo
8	8	-----> bind --preset $argv \cz undo
9	9	-----> bind --preset $argv \e/ redo
9	9	-----> bind --preset $argv \et transpose-words
9	9	-----> bind --preset $argv \eu upcase-word
9	9	-----> bind --preset $argv \ec capitalize-word
10	10	-----> bind --preset $argv \e\x7f backward-kill-word
9	9	-----> bind --preset $argv \e\b backward-kill-word
8	38	-----> if not test "$TERM_PROGRAM" = Apple_Terminal...
11	11	------> not test "$TERM_PROGRAM" = Apple_Terminal
10	10	------> bind --preset $argv \eb backward-word
9	9	------> bind --preset $argv \ef forward-word
10	10	-----> bind --preset $argv \e\< beginning-of-buffer
9	9	-----> bind --preset $argv \e\> end-of-buffer
9	9	-----> bind --preset $argv \ed kill-word
130	130	-----> bind --preset $argv \cr history-pager
7	13	-----> switch "$TERM"...
6	6	------> bind --preset $argv \e\x20ep fish_clipboard_paste
3	3	-----> set -e -g fish_cursor_selection_mode
1	54	---> if functions --query fish_user_key_bindings >/dev/null...
53	53	----> functions --query fish_user_key_bindings >/dev/null
5	33	--> if not set -q FISH_UNIT_TESTS_RUNNING...
3	3	---> not set -q FISH_UNIT_TESTS_RUNNING
3	3	---> function __fish_enable_bracketed_paste --on-event fish_prompt...
2	2	---> function __fish_disable_bracketed_paste --on-event fish_preexec --on-event fish_exit...
3	3	---> status is-interactive
5	17	---> __fish_enable_bracketed_paste
12	12	----> printf "\e[?2004h"
0	3	--> if set -q TMUX...
3	3	---> set -q TMUX
4	25	--> if not set -q fish_handle_reflow...
2	2	---> not set -q fish_handle_reflow
2	19	---> if set -q VTE_VERSION...
1	1	----> set -q VTE_VERSION
6	6	----> string match -q -- 'alacritty*' $TERM
4	4	----> string match -q -- '*kitty' $TERM
2	2	----> set -q KONSOLE_VERSION
4	4	----> set -g fish_handle_reflow 1
5	5	--> function __fish_winch_handler --on-signal WINCH -d "Repaint screen when window changes size"...
0	28	--> if not set -q FISH_UNIT_TESTS_RUNNING...
2	2	---> not set -q FISH_UNIT_TESTS_RUNNING
4	26	---> begin...
4	4	----> string match -q -- 'foot*' $TERM
4	4	----> string match -q -- 'xterm-kitty*' $TERM
6	6	----> test 0"$VTE_VERSION" -ge 3405
4	4	----> test "$TERM_PROGRAM" = Apple_Terminal
2	2	----> test "$TERM_PROGRAM" = WezTerm
2	2	----> test "$TERM_PROGRAM" = iTerm.app
8	8	--> set __fish_initialized 3400
4	4	--> functions -e __fish_config_interactive
651	669	> source /opt/homebrew/Cellar/fish/3.7.1/share/fish/functions/fish_mode_prompt.fish
18	18	-> function fish_mode_prompt --description "Displays the current mode"...
18	521	> fish_mode_prompt
276	503	-> fish_default_mode_prompt
204	209	--> source /opt/homebrew/Cellar/fish/3.7.1/share/fish/functions/fish_default_mode_prompt.fish
5	5	---> function fish_default_mode_prompt --description "Display vi prompt mode"...
2	18	--> if test "$fish_key_bindings" = fish_vi_key_bindings...
12	12	---> test "$fish_key_bindings" = fish_vi_key_bindings
4	4	---> test "$fish_key_bindings" = fish_hybrid_key_bindings
10	12666312	> fish_prompt
523	12666302	-> printf '%s%s%s@%s%s%s:%s%s%s%s $ ' \
  (set_color red) (whoami) (set_color normal) \
  (set_color blue) (hostname) (set_color normal) \
  (set_color green) (prompt_pwd) (set_color normal) \
  (__fish_git_prompt)
39	39	--> set_color red
5712	5712	--> whoami
36	36	--> set_color normal
13	13	--> set_color blue
3056	3056	--> hostname
16	16	--> set_color normal
7	7	--> set_color green
207	1107	--> prompt_pwd
315	320	---> source /opt/homebrew/Cellar/fish/3.7.1/share/fish/functions/prompt_pwd.fish
5	5	----> function prompt_pwd --description 'short CWD for the prompt'...
8	8	---> set -l options h/help d/dir-length= D/full-length-dirs=
12	12	---> argparse -n prompt_pwd $options -- $argv
1	4	---> if set -q _flag_help...
3	3	----> set -q _flag_help
2	2	---> set -q argv[1]
3	3	---> set argv $PWD
1	1	---> set -ql _flag_d
2	2	---> set -q fish_prompt_pwd_dir_length
3	3	---> set -l fish_prompt_pwd_dir_length 1
3	3	---> set -l fulldirs 0
1	1	---> set -ql _flag_D
2	2	---> set -q fish_prompt_pwd_full_dirs
3	3	---> set -l fish_prompt_pwd_full_dirs 1
236	536	---> for path in $argv...
46	95	----> set -l realhome (string escape --style=regex -- ~)
49	49	-----> string escape --style=regex -- ~
30	50	----> set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path)
20	20	-----> string replace -r '^'"$realhome"'($|/)' '~$1' $path
2	155	----> if test "$fish_prompt_pwd_dir_length" -eq 0...
8	8	-----> test "$fish_prompt_pwd_dir_length" -eq 0
3	3	-----> set -l full
4	107	-----> if test $fish_prompt_pwd_full_dirs -gt 0...
3	3	------> test $fish_prompt_pwd_full_dirs -gt 0
26	93	------> set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp)
26	67	-------> string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp
41	41	--------> math $fish_prompt_pwd_full_dirs - 1
4	4	------> set tmp $all[1]
3	3	------> set full $all[2..]
24	35	-----> string join / -- (string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp) $full
11	11	------> string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp
5	5	--> set_color normal
41	12655788	--> __fish_git_prompt
170	172	---> source /opt/homebrew/Cellar/fish/3.7.1/share/fish/functions/__fish_git_prompt.fish
2	2	----> function __fish_git_prompt...
72	12655575	---> fish_git_prompt $argv
1324	11837	----> source /opt/homebrew/Cellar/fish/3.7.1/share/fish/functions/fish_git_prompt.fish
5	5	-----> function __fish_git_prompt_show_upstream --description "Helper function for fish_git_prompt"...
9	10439	-----> if string match -q Darwin -- (uname)...
60	3081	------> string match -q Darwin -- (uname)
3021	3021	-------> uname
207	358	------> string match -q /usr/bin/git -- (command -s git)
151	151	-------> command -s git
325	325	------> type -q xcode-select
86	86	------> type -q xcrun
21	6580	------> if not xcode-select --print-path &>/dev/null...
4909	4909	-------> not xcode-select --print-path &>/dev/null
1490	1490	-------> command git --version &>/dev/null &
39	157	-------> disown $last_pid &>/dev/null
71	118	--------> builtin $jobbltn (__fish_expand_pid_args $argv)
5	47	---------> __fish_expand_pid_args $argv
13	42	----------> for arg in $argv...
3	29	-----------> if string match -qr '^%\d+$' -- $arg...
17	17	------------> string match -qr '^%\d+$' -- $arg
9	9	------------> printf "%s\n" $arg
3	3	-------> function __fish_git_prompt_ready...
4	4	-----> function fish_git_prompt --description "Prompt function for Git"...
5	5	-----> function __fish_git_prompt_informative_status...
4	4	-----> function __fish_git_prompt_operation_branch_bare --description "fish_git_prompt helper, returns the current Git operation and branch"...
1	1	-----> function __fish_git_prompt_set_char...
3	3	-----> function __fish_git_prompt_validate_chars --description "fish_git_prompt helper, checks char variables"...
1	1	-----> function __fish_git_prompt_set_color...
2	2	-----> function __fish_git_prompt_validate_colors --description "fish_git_prompt helper, checks color variables"...
10	10	-----> function __fish_git_prompt_reset -a type -a op -a var --description "Event handler, resets prompt when functionality changes" \
    --on-variable=__fish_git_prompt_{show_informative_status,use_informative_chars}...
21	21	-----> function __fish_git_prompt_reset_color -a type -a op -a var --description "Event handler, resets prompt when any color changes" \
    --on-variable=__fish_git_prompt_color{'',_prefix,_suffix,_bare,_merging,_cleanstate,_invalidstate,_upstream,_flags,_branch,_dirtystate,_stagedstate,_branch_detached,_stashstate,_untrackedfiles} --on-variable=__fish_git_prompt_showcolorhints...
18	18	-----> function __fish_git_prompt_reset_char -a type -a op -a var --description "Event handler, resets prompt when any char changes" \
    --on-variable=__fish_git_prompt_char_{cleanstate,dirtystate,invalidstate,stagedstate,stashstate,stateseparator,untrackedfiles,upstream_ahead,upstream_behind,upstream_diverged,upstream_equal,upstream_prefix}...
1	57	----> if not command -sq git...
56	56	-----> not command -sq git
1	23145	----> if functions -q __fish_git_prompt_ready...
5	5	-----> functions -q __fish_git_prompt_ready
17	23139	-----> not __fish_git_prompt_ready
154	23109	------> path is (xcrun --show-cache-path 2>/dev/null)
22955	22955	-------> xcrun --show-cache-path 2>/dev/null
11	11	------> functions -e __fish_git_prompt_ready
2	2	------> return 0
146	12620443	----> set -l repo_info (command git rev-parse --git-dir --is-inside-git-dir --is-bare-repository --is-inside-work-tree HEAD 2>/dev/null)
12620297	12620297	-----> command git rev-parse --git-dir --is-inside-git-dir --is-bare-repository --is-inside-work-tree HEAD 2>/dev/null
17	17	----> test -n "$repo_info"
4	4	----> return
8	6037	> fish_right_prompt
6	6	-> set last_status $status
1	6	-> if test $last_status -ne 0...
5	5	--> test $last_status -ne 0
116	6017	-> printf '%s%s%s' (set_color -d white) (date '+%D %T %Z') (set_color normal)
16	16	--> set_color -d white
5867	5867	--> date '+%D %T %Z'
18	18	--> set_color normal
627	630	> source /opt/homebrew/Cellar/fish/3.7.1/share/fish/functions/fish_title.fish
3	3	-> function fish_title...
5	333	> fish_title
3	328	-> if not set -q INSIDE_EMACS...
4	4	--> not set -q INSIDE_EMACS
4	4	--> set -l ssh
3	3	--> set -q SSH_TTY
3	314	--> if set -q argv[1]...
2	2	---> set -q argv[1]
21	25	---> set -l command (status current-command)
4	4	----> status current-command
2	9	---> if test "$command" = fish...
5	5	----> test "$command" = fish
2	2	----> set command
32	275	---> echo -- $ssh (string sub -l 20 -- $command) (prompt_pwd -d 1 -D 1)
5	5	----> string sub -l 20 -- $command
7	238	----> prompt_pwd -d 1 -D 1
4	4	-----> set -l options h/help d/dir-length= D/full-length-dirs=
14	14	-----> argparse -n prompt_pwd $options -- $argv
1	3	-----> if set -q _flag_help...
2	2	------> set -q _flag_help
2	2	-----> set -q argv[1]
8	8	-----> set argv $PWD
2	2	-----> set -ql _flag_d
4	4	-----> set -l fish_prompt_pwd_dir_length $_flag_d
2	2	-----> set -q fish_prompt_pwd_dir_length
3	3	-----> set -l fulldirs 0
2	2	-----> set -ql _flag_D
3	3	-----> set -l fish_prompt_pwd_full_dirs $_flag_D
2	2	-----> set -q fish_prompt_pwd_full_dirs
9	182	-----> for path in $argv...
19	27	------> set -l realhome (string escape --style=regex -- ~)
8	8	-------> string escape --style=regex -- ~
19	50	------> set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path)
31	31	-------> string replace -r '^'"$realhome"'($|/)' '~$1' $path
3	96	------> if test "$fish_prompt_pwd_dir_length" -eq 0...
4	4	-------> test "$fish_prompt_pwd_dir_length" -eq 0
2	2	-------> set -l full
3	59	-------> if test $fish_prompt_pwd_full_dirs -gt 0...
3	3	--------> test $fish_prompt_pwd_full_dirs -gt 0
19	47	--------> set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp)
19	28	---------> string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp
9	9	----------> math $fish_prompt_pwd_full_dirs - 1
3	3	--------> set tmp $all[1]
3	3	--------> set full $all[2..]
18	28	-------> string join / -- (string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp) $full
10	10	--------> string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp
849	1443	> source /opt/homebrew/Cellar/fish/3.7.1/share/fish/completions/less.fish
35	35	-> complete -c less -s \? -l help -d "Display help and exit"
12	12	-> complete -c less -s a -l search-skip-screen -d "Search after end of screen"
11	11	-> complete -c less -s b -l buffers -r -d "Buffer space"
10	10	-> complete -c less -s B -l auto-buffers -d "Disable automtic buffer allocation"
10	10	-> complete -c less -s c -l clear-screen -d "Repaint from top"
10	10	-> complete -c less -s C -l CLEAR-SCREEN -d "Clear and repaint from top"
10	10	-> complete -c less -s d -l dumb -d "Suppress error for lacking terminal capability"
8	8	-> complete -c less -s e -l quit-at-eof -d "Exit on second EOF"
13	13	-> complete -c less -s E -l QUIT-AT-EOF -d "Exit on EOF"
10	10	-> complete -c less -s f -l force -d "Open non-regular files"
10	10	-> complete -c less -s F -l quit-if-one-screen -d "Quit if file shorter than one screen"
9	9	-> complete -c less -s g -l hilite-search -d "Hilight one search target"
9	9	-> complete -c less -s G -l HILITE-SEARCH -d "No search highlighting"
25	25	-> complete -c less -s h -l max-back-scroll -d "Maximum backward scroll" -r -a "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19"
9	9	-> complete -c less -s i -l ignore-case -d "Search ignores lowercase case"
9	9	-> complete -c less -s I -l IGNORE-CASE -d "Search ignores all case"
33	33	-> complete -c less -s j -l jump-target -d "Target line" -r -a "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19"
9	9	-> complete -c less -s J -l status-column -d "Display status column"
10	10	-> complete -c less -s k -l lesskey-file -d "Specify key bindings file" -r
9	9	-> complete -c less -s L -l no-lessopen -d 'Ignore $LESSOPEN'
8	8	-> complete -c less -s m -l long-prompt -d "Prompt with percentage"
9	9	-> complete -c less -s M -l LONG-PROMPT -d "Verbose prompt"
9	9	-> complete -c less -s n -l line-numbers -d "Display line number"
9	9	-> complete -c less -s N -l LINE-NUMBERS -d "Display line number for each line"
10	10	-> complete -c less -s o -l log-file -d "Log input to file" -r
9	9	-> complete -c less -s O -l LOG-FILE -d "Log to file, overwrite" -r
9	9	-> complete -c less -s p -l pattern -d "Start at first occurrence of pattern" -r
9	9	-> complete -c less -s P -l prompt -d "Prompt string" -r
9	9	-> complete -c less -s q -l quiet -d "Silent mode"
8	8	-> complete -c less -l silent -d "Silent mode"
9	9	-> complete -c less -s Q -l QUIET -d "Completly silent mode"
8	8	-> complete -c less -l SILENT -d "Completly silent mode"
9	9	-> complete -c less -s r -l raw-control-chars -d "Display control chars"
15	15	-> complete -c less -s R -l RAW-CONTROL-CHARS -d "Display control chars, guess screen appearance"
10	10	-> complete -c less -s s -l squeeze-blank-lines -d "Multiple blank lines sqeezed"
9	9	-> complete -c less -s S -l chop-long-lines -d "Do not fold long lines"
8	8	-> complete -c less -s t -l tag -d "Edit tag" -r
9	9	-> complete -c less -s T -l tag-file -d "Set tag file" -r
10	10	-> complete -c less -s u -l underline-special -d "Allow backspace and carriage return"
10	10	-> complete -c less -s U -l UNDERLINE-SPECIAL -d "Allow backspace, tab and carriage return"
9	9	-> complete -c less -s V -l version -d "Display version and exit"
9	9	-> complete -c less -s w -l hilite-unread -d "Highlight first unread line on new page"
10	10	-> complete -c less -s W -l HILITE-UNREAD -d "Highlight first unread line on any movement"
20	20	-> complete -c less -s x -l tabs -d "Set tab stops" -r -a "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16"
9	9	-> complete -c less -s X -l no-init -d "No termcap init"
8	8	-> complete -c less -l no-keypad -d "No keypad init"
22	22	-> complete -c less -s y -l max-forw-scroll -d "Maximum forward scroll" -r -a "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19"
20	20	-> complete -c less -s z -l window -d "Max scroll window" -r -a "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19"
10	10	-> complete -c less -s \" -l quotes -d "Set quote char" -r
9	9	-> complete -c less -s \~ -l tilde -d "Lines after EOF are blank"
21	21	-> complete -c less -s \# -l shift -d "Characters to scroll on left/right arrows" -a "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19"
148	282	> __fish_disable_bracketed_paste 'less /tmp/fish-startup-profile '
134	134	-> printf "\e[?2004l"
42	2221	> fish_title less\ /tmp/fish-startup-profile\ 
34	2179	-> if not set -q INSIDE_EMACS...
25	25	--> not set -q INSIDE_EMACS
18	18	--> set -l ssh
12	12	--> set -q SSH_TTY
14	2090	--> if set -q argv[1]...
11	11	---> set -q argv[1]
301	2065	---> echo -- $ssh (string sub -l 20 -- $argv[1]) (prompt_pwd -d 1 -D 1)
36	36	----> string sub -l 20 -- $argv[1]
157	1728	----> prompt_pwd -d 1 -D 1
30	30	-----> set -l options h/help d/dir-length= D/full-length-dirs=
75	75	-----> argparse -n prompt_pwd $options -- $argv
4	17	-----> if set -q _flag_help...
13	13	------> set -q _flag_help
11	11	-----> set -q argv[1]
19	19	-----> set argv $PWD
9	9	-----> set -ql _flag_d
22	22	-----> set -l fish_prompt_pwd_dir_length $_flag_d
11	11	-----> set -q fish_prompt_pwd_dir_length
14	14	-----> set -l fulldirs 0
22	22	-----> set -ql _flag_D
18	18	-----> set -l fish_prompt_pwd_full_dirs $_flag_D
18	18	-----> set -q fish_prompt_pwd_full_dirs
46	1305	-----> for path in $argv...
155	212	------> set -l realhome (string escape --style=regex -- ~)
57	57	-------> string escape --style=regex -- ~
121	189	------> set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path)
68	68	-------> string replace -r '^'"$realhome"'($|/)' '~$1' $path
20	858	------> if test "$fish_prompt_pwd_dir_length" -eq 0...
26	26	-------> test "$fish_prompt_pwd_dir_length" -eq 0
9	9	-------> set -l full
59	463	-------> if test $fish_prompt_pwd_full_dirs -gt 0...
80	80	--------> test $fish_prompt_pwd_full_dirs -gt 0
97	300	--------> set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp)
99	203	---------> string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp
104	104	----------> math $fish_prompt_pwd_full_dirs - 1
13	13	--------> set tmp $all[1]
11	11	--------> set full $all[2..]
244	340	-------> string join / -- (string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp) $full
96	96	--------> string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp
51146426	51146426	> less /tmp/fish-startup-profile
45	4334	> __fish_enable_bracketed_paste
4289	4289	-> printf "\e[?2004h"
28	439	> fish_mode_prompt
362	411	-> fish_default_mode_prompt
7	49	--> if test "$fish_key_bindings" = fish_vi_key_bindings...
30	30	---> test "$fish_key_bindings" = fish_vi_key_bindings
12	12	---> test "$fish_key_bindings" = fish_hybrid_key_bindings
11	246680	> fish_prompt
497	246669	-> printf '%s%s%s@%s%s%s:%s%s%s%s $ ' \
  (set_color red) (whoami) (set_color normal) \
  (set_color blue) (hostname) (set_color normal) \
  (set_color green) (prompt_pwd) (set_color normal) \
  (__fish_git_prompt)
68	68	--> set_color red
16634	16634	--> whoami
20	20	--> set_color normal
12	12	--> set_color blue
4473	4473	--> hostname
16	16	--> set_color normal
11	11	--> set_color green
211	697	--> prompt_pwd
14	14	---> set -l options h/help d/dir-length= D/full-length-dirs=
20	20	---> argparse -n prompt_pwd $options -- $argv
3	7	---> if set -q _flag_help...
4	4	----> set -q _flag_help
5	5	---> set -q argv[1]
7	7	---> set argv $PWD
3	3	---> set -ql _flag_d
4	4	---> set -q fish_prompt_pwd_dir_length
7	7	---> set -l fish_prompt_pwd_dir_length 1
6	6	---> set -l fulldirs 0
2	2	---> set -ql _flag_D
4	4	---> set -q fish_prompt_pwd_full_dirs
5	5	---> set -l fish_prompt_pwd_full_dirs 1
15	402	---> for path in $argv...
45	63	----> set -l realhome (string escape --style=regex -- ~)
18	18	-----> string escape --style=regex -- ~
42	83	----> set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path)
41	41	-----> string replace -r '^'"$realhome"'($|/)' '~$1' $path
7	241	----> if test "$fish_prompt_pwd_dir_length" -eq 0...
11	11	-----> test "$fish_prompt_pwd_dir_length" -eq 0
4	4	-----> set -l full
8	158	-----> if test $fish_prompt_pwd_full_dirs -gt 0...
5	5	------> test $fish_prompt_pwd_full_dirs -gt 0
37	132	------> set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp)
40	95	-------> string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp
55	55	--------> math $fish_prompt_pwd_full_dirs - 1
7	7	------> set tmp $all[1]
6	6	------> set full $all[2..]
42	61	-----> string join / -- (string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp) $full
19	19	------> string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp
8	8	--> set_color normal
51	224233	--> __fish_git_prompt
53	224182	---> fish_git_prompt $argv
2	798	----> if not command -sq git...
796	796	-----> not command -sq git
1	43	----> if functions -q __fish_git_prompt_ready...
42	42	-----> functions -q __fish_git_prompt_ready
103	223274	----> set -l repo_info (command git rev-parse --git-dir --is-inside-git-dir --is-bare-repository --is-inside-work-tree HEAD 2>/dev/null)
223171	223171	-----> command git rev-parse --git-dir --is-inside-git-dir --is-bare-repository --is-inside-work-tree HEAD 2>/dev/null
12	12	----> test -n "$repo_info"
2	2	----> return
17	3598	> fish_right_prompt
18	18	-> set last_status $status
2	14	-> if test $last_status -ne 0...
12	12	--> test $last_status -ne 0
124	3549	-> printf '%s%s%s' (set_color -d white) (date '+%D %T %Z') (set_color normal)
21	21	--> set_color -d white
3399	3399	--> date '+%D %T %Z'
5	5	--> set_color normal
7	479	> fish_title
5	472	-> if not set -q INSIDE_EMACS...
4	4	--> not set -q INSIDE_EMACS
3	3	--> set -l ssh
3	3	--> set -q SSH_TTY
6	457	--> if set -q argv[1]...
2	2	---> set -q argv[1]
19	22	---> set -l command (status current-command)
3	3	----> status current-command
1	8	---> if test "$command" = fish...
4	4	----> test "$command" = fish
3	3	----> set command
61	419	---> echo -- $ssh (string sub -l 20 -- $command) (prompt_pwd -d 1 -D 1)
5	5	----> string sub -l 20 -- $command
21	353	----> prompt_pwd -d 1 -D 1
4	4	-----> set -l options h/help d/dir-length= D/full-length-dirs=
14	14	-----> argparse -n prompt_pwd $options -- $argv
0	2	-----> if set -q _flag_help...
2	2	------> set -q _flag_help
1	1	-----> set -q argv[1]
3	3	-----> set argv $PWD
1	1	-----> set -ql _flag_d
3	3	-----> set -l fish_prompt_pwd_dir_length $_flag_d
1	1	-----> set -q fish_prompt_pwd_dir_length
2	2	-----> set -l fulldirs 0
1	1	-----> set -ql _flag_D
3	3	-----> set -l fish_prompt_pwd_full_dirs $_flag_D
2	2	-----> set -q fish_prompt_pwd_full_dirs
10	295	-----> for path in $argv...
19	26	------> set -l realhome (string escape --style=regex -- ~)
7	7	-------> string escape --style=regex -- ~
18	35	------> set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path)
17	17	-------> string replace -r '^'"$realhome"'($|/)' '~$1' $path
6	224	------> if test "$fish_prompt_pwd_dir_length" -eq 0...
4	4	-------> test "$fish_prompt_pwd_dir_length" -eq 0
2	2	-------> set -l full
7	113	-------> if test $fish_prompt_pwd_full_dirs -gt 0...
3	3	--------> test $fish_prompt_pwd_full_dirs -gt 0
36	86	--------> set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp)
40	50	---------> string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp
10	10	----------> math $fish_prompt_pwd_full_dirs - 1
9	9	--------> set tmp $all[1]
8	8	--------> set full $all[2..]
55	99	-------> string join / -- (string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp) $full
44	44	--------> string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp
795	9987	> source /opt/homebrew/Cellar/fish/3.7.1/share/fish/completions/mv.fish
178	5777	-> set -l uname (uname -s)
5599	5599	--> uname -s
33	3415	-> if mv --version >/dev/null 2>/dev/null...
3153	3153	--> mv --version >/dev/null 2>/dev/null
90	90	--> complete -c mv -s f -d "Don't prompt to overwrite"
13	13	--> complete -c mv -s i -d "Prompt to overwrite existing"
10	10	--> test uname = SunOS
10	10	--> complete -c mv -s v -d "Print filenames as it goes"
51	51	--> contains "$uname" NetBSD OpenBSD
9	9	--> complete -c mv -s n -d "Don't overwrite existing"
9	9	--> test "$uname" = Darwin
37	37	--> exit 0
89	142	> __fish_disable_bracketed_paste 'mv /tmp/fish-startup-profile ~/Desktop/'
53	53	-> printf "\e[?2004l"
38	1951	> fish_title mv\ /tmp/fish-startup-profile\ ~/Desktop/
31	1913	-> if not set -q INSIDE_EMACS...
29	29	--> not set -q INSIDE_EMACS
20	20	--> set -l ssh
11	11	--> set -q SSH_TTY
12	1822	--> if set -q argv[1]...
12	12	---> set -q argv[1]
235	1798	---> echo -- $ssh (string sub -l 20 -- $argv[1]) (prompt_pwd -d 1 -D 1)
36	36	----> string sub -l 20 -- $argv[1]
69	1527	----> prompt_pwd -d 1 -D 1
22	22	-----> set -l options h/help d/dir-length= D/full-length-dirs=
67	67	-----> argparse -n prompt_pwd $options -- $argv
4	15	-----> if set -q _flag_help...
11	11	------> set -q _flag_help
10	10	-----> set -q argv[1]
23	23	-----> set argv $PWD
9	9	-----> set -ql _flag_d
21	21	-----> set -l fish_prompt_pwd_dir_length $_flag_d
11	11	-----> set -q fish_prompt_pwd_dir_length
14	14	-----> set -l fulldirs 0
9	9	-----> set -ql _flag_D
17	17	-----> set -l fish_prompt_pwd_full_dirs $_flag_D
9	9	-----> set -q fish_prompt_pwd_full_dirs
39	1231	-----> for path in $argv...
112	144	------> set -l realhome (string escape --style=regex -- ~)
32	32	-------> string escape --style=regex -- ~
104	222	------> set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path)
118	118	-------> string replace -r '^'"$realhome"'($|/)' '~$1' $path
25	826	------> if test "$fish_prompt_pwd_dir_length" -eq 0...
30	30	-------> test "$fish_prompt_pwd_dir_length" -eq 0
12	12	-------> set -l full
40	411	-------> if test $fish_prompt_pwd_full_dirs -gt 0...
17	17	--------> test $fish_prompt_pwd_full_dirs -gt 0
155	315	--------> set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp)
113	160	---------> string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp
47	47	----------> math $fish_prompt_pwd_full_dirs - 1
24	24	--------> set tmp $all[1]
15	15	--------> set full $all[2..]
267	348	-------> string join / -- (string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp) $full
81	81	--------> string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp
9093	9093	> mv /tmp/fish-startup-profile ~/Desktop/
33	87	> __fish_enable_bracketed_paste
54	54	-> printf "\e[?2004h"
16	74	> fish_mode_prompt
17	58	-> fish_default_mode_prompt
4	41	--> if test "$fish_key_bindings" = fish_vi_key_bindings...
26	26	---> test "$fish_key_bindings" = fish_vi_key_bindings
11	11	---> test "$fish_key_bindings" = fish_hybrid_key_bindings
11	31132	> fish_prompt
502	31121	-> printf '%s%s%s@%s%s%s:%s%s%s%s $ ' \
  (set_color red) (whoami) (set_color normal) \
  (set_color blue) (hostname) (set_color normal) \
  (set_color green) (prompt_pwd) (set_color normal) \
  (__fish_git_prompt)
18	18	--> set_color red
4698	4698	--> whoami
26	26	--> set_color normal
14	14	--> set_color blue
2569	2569	--> hostname
10	10	--> set_color normal
9	9	--> set_color green
31	690	--> prompt_pwd
14	14	---> set -l options h/help d/dir-length= D/full-length-dirs=
24	24	---> argparse -n prompt_pwd $options -- $argv
7	13	---> if set -q _flag_help...
6	6	----> set -q _flag_help
5	5	---> set -q argv[1]
8	8	---> set argv $PWD
4	4	---> set -ql _flag_d
5	5	---> set -q fish_prompt_pwd_dir_length
7	7	---> set -l fish_prompt_pwd_dir_length 1
6	6	---> set -l fulldirs 0
3	3	---> set -ql _flag_D
4	4	---> set -q fish_prompt_pwd_full_dirs
6	6	---> set -l fish_prompt_pwd_full_dirs 1
26	560	---> for path in $argv...
50	69	----> set -l realhome (string escape --style=regex -- ~)
19	19	-----> string escape --style=regex -- ~
67	120	----> set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path)
53	53	-----> string replace -r '^'"$realhome"'($|/)' '~$1' $path
13	345	----> if test "$fish_prompt_pwd_dir_length" -eq 0...
23	23	-----> test "$fish_prompt_pwd_dir_length" -eq 0
7	7	-----> set -l full
9	199	-----> if test $fish_prompt_pwd_full_dirs -gt 0...
11	11	------> test $fish_prompt_pwd_full_dirs -gt 0
73	163	------> set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp)
61	90	-------> string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp
29	29	--------> math $fish_prompt_pwd_full_dirs - 1
9	9	------> set tmp $all[1]
7	7	------> set full $all[2..]
59	103	-----> string join / -- (string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp) $full
44	44	------> string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp
11	11	--> set_color normal
11	22574	--> __fish_git_prompt
23	22563	---> fish_git_prompt $argv
4	116	----> if not command -sq git...
112	112	-----> not command -sq git
2	11	----> if functions -q __fish_git_prompt_ready...
9	9	-----> functions -q __fish_git_prompt_ready
113	22393	----> set -l repo_info (command git rev-parse --git-dir --is-inside-git-dir --is-bare-repository --is-inside-work-tree HEAD 2>/dev/null)
22280	22280	-----> command git rev-parse --git-dir --is-inside-git-dir --is-bare-repository --is-inside-work-tree HEAD 2>/dev/null
17	17	----> test -n "$repo_info"
3	3	----> return
13	3154	> fish_right_prompt
10	10	-> set last_status $status
3	10	-> if test $last_status -ne 0...
7	7	--> test $last_status -ne 0
121	3121	-> printf '%s%s%s' (set_color -d white) (date '+%D %T %Z') (set_color normal)
14	14	--> set_color -d white
2974	2974	--> date '+%D %T %Z'
12	12	--> set_color normal
8	551	> fish_title
7	543	-> if not set -q INSIDE_EMACS...
6	6	--> not set -q INSIDE_EMACS
5	5	--> set -l ssh
4	4	--> set -q SSH_TTY
7	521	--> if set -q argv[1]...
3	3	---> set -q argv[1]
32	37	---> set -l command (status current-command)
5	5	----> status current-command
2	13	---> if test "$command" = fish...
7	7	----> test "$command" = fish
4	4	----> set command
57	461	---> echo -- $ssh (string sub -l 20 -- $command) (prompt_pwd -d 1 -D 1)
7	7	----> string sub -l 20 -- $command
21	397	----> prompt_pwd -d 1 -D 1
6	6	-----> set -l options h/help d/dir-length= D/full-length-dirs=
24	24	-----> argparse -n prompt_pwd $options -- $argv
1	5	-----> if set -q _flag_help...
4	4	------> set -q _flag_help
3	3	-----> set -q argv[1]
7	7	-----> set argv $PWD
2	2	-----> set -ql _flag_d
6	6	-----> set -l fish_prompt_pwd_dir_length $_flag_d
3	3	-----> set -q fish_prompt_pwd_dir_length
4	4	-----> set -l fulldirs 0
3	3	-----> set -ql _flag_D
6	6	-----> set -l fish_prompt_pwd_full_dirs $_flag_D
2	2	-----> set -q fish_prompt_pwd_full_dirs
13	305	-----> for path in $argv...
35	47	------> set -l realhome (string escape --style=regex -- ~)
12	12	-------> string escape --style=regex -- ~
34	77	------> set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path)
43	43	-------> string replace -r '^'"$realhome"'($|/)' '~$1' $path
6	168	------> if test "$fish_prompt_pwd_dir_length" -eq 0...
7	7	-------> test "$fish_prompt_pwd_dir_length" -eq 0
3	3	-------> set -l full
6	101	-------> if test $fish_prompt_pwd_full_dirs -gt 0...
5	5	--------> test $fish_prompt_pwd_full_dirs -gt 0
35	79	--------> set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp)
32	44	---------> string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp
12	12	----------> math $fish_prompt_pwd_full_dirs - 1
6	6	--------> set tmp $all[1]
5	5	--------> set full $all[2..]
35	51	-------> string join / -- (string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp) $full
16	16	--------> string replace -ar -- '(\.?[^/]{'"$fish_prompt_pwd_dir_length"'})[^/]*/' '$1/' $tmp
87	327	> __fish_disable_bracketed_paste
240	240	-> printf "\e[?2004l"