Я был убежден (в переполнении стека) использовать мой любимый bash в режиме vi. До сих пор я достаточно хорошо к этому привык, и мне это нравится.
Однако я действительно упускаю одну особенность: в режиме emacs вы можете ввести последний параметр предыдущей команды, нажав «ESC». (То есть нажмите клавишу escape, а затем.)
Есть ли привязка по умолчанию для вставки последнего параметра в vi-mode? Я не смог найти его и очень скучаю по этой команде ...
bindkey "\e." insert-last-word
history-search-backwards
неоценимо для серьезных пользователей командной строки.Есть (vi-yank-arg), по умолчанию сопоставленный с «_». Это должно делать то, что вы хотите (в командном режиме).
источник
Не совсем то же самое, но в любом режиме вы можете ввести
!$
, и он будет заменен последним словом предыдущей команды. Найти больше таких вещей в руководстве .источник
~ / .Inputrc файл может настроить ключ-карту (Вы можете создать его с помощью ручной , если он не может быть найден). Добавьте следующую команду в ~ / .inputrc :
Мой ~ / .inputrc это:
Вы можете найти подробную информацию о readline и
bind -p
здесь: http://linux.about.com/library/cmd/blcmdl3_readline.htmИ некоторая информация о комбинациях клавиш Vi в bash и в режиме редактирования Readline VI.
источник
Внутри вашего .bashrc добавьте:
Это восстановит поведение по умолчанию не только точки ESC - но также Ctrl-A, Ctrl-E, Ctrl-W и Ctrl-L. Поэтому вы можете наслаждаться обычным bash vi-mode и по-прежнему использовать ярлыки, которые вы знаете и любите. Если вам нужно больше действий, просто отметьте «man bash», чтобы найти название нужного вам действия readline (например, «очистка экрана», «конец строки» и т. Д.).
источник
Вы можете использовать
$_
для ссылки на последний аргумент предыдущей команды.Недостатки:
Перед нажатием Enter вы не можете проверить, что вставленная вещь - это та, которую вы намеревались вставить.
Если вы используете PROMPT_COMMAND или ловушку DEBUG (я не уверен, что именно это и вызывает проблему; у меня есть оба в моем .bashrc), чтобы делать причудливые вещи, например помещать команду running в заголовок xterm, это приведет к сбою
$_
.источник