function fish_user_key_bindings fish_vi_key_bindings bind -M insert ctrl-a beginning-of-line bind -M insert ctrl-l end-of-line bind -M insert ctrl-b backward-word bind -M insert ctrl-w forward-word bind -M insert ctrl-d backward-kill-word bind -M default m backward-char bind -M default i forward-char bind -m insert h repaint-mode bind -m insert H beginning-of-line repaint-mode bind -m visual s begin-selection repaint-mode bind -M default g,m beginning-of-line bind -M default g,i end-of-line bind g,l end-of-buffer bind U redo # bind -M insert ctrl-r history-pager repaint-mode bind e up-or-search bind n down-or-search bind l 'set fish_cursor_end_mode exclusive' forward-single-char forward-word backward-char 'set fish_cursor_end_mode inclusive' bind L 'set fish_cursor_end_mode exclusive' forward-single-char forward-bigword backward-char 'set fish_cursor_end_mode inclusive' bind -M insert ctrl-n accept-autosuggestion bind d,i kill-line bind d,m backward-kill-line bind d,l kill-word bind d,L kill-bigword bind d,h backward-jump-till and repeat-jump-reverse and begin-selection repeat-jump kill-selection end-selection bind d,a backward-jump and repeat-jump-reverse and begin-selection repeat-jump kill-selection end-selection bind -m insert c,l kill-word repaint-mode bind -m insert c,L kill-bigword repaint-mode bind -m insert c,l backward-char begin-selection kill-selection end-selection repaint-mode bind -m insert c,L begin-selection kill-selection end-selection repaint-mode bind '`' downcase-word bind ctrl-k 'man (commandline -t) 2>/dev/null; or echo -n \a' bind y,l kill-word yank bind y,L kill-bigword yank # visual mode bind -M visual m backward-char bind -M visual i forward-char bind -M visual e up-line bind -M visual n down-line bind -M visual l 'set fish_cursor_end_mode exclusive' forward-single-char forward-word backward-char 'set fish_cursor_end_mode inclusive' bind -M visual L 'set fish_cursor_end_mode exclusive' forward-single-char forward-bigword backward-char 'set fish_cursor_end_mode inclusive' bind -M visual g,i end-of-line bind -M visual g,m beginning-of-line bind -M visual -m default s end-selection repaint-mode bind -M visual -m insert h end-selection repaint-mode bind -M visual -m insert H end-selection beginning-of-line repaint-mode bind -M insert ctrl-z fg repaint-mode end