Обычно необходимо пользоваться ncurses библиотекой для использования терминальных функций.
В Вашем случае можно использовать выделение на:
PS1="[\033[33;1m][\u@\h \W]$ [$Color_Off]"
Добавьте эту строку после set -o vi
:
bind -m vi-command ".":yank-last-argument # or insert-last-argument
Затем вы можете использовать Alt + . как в режиме emacs.
Или используйте расширение истории, работая в обоих:
!$:p
Есть несколько способов получить последний аргумент последней команды:
Скопируйте следующий код в свой ~ / .inputrc
файл
set editing-mode vi
# Insert Mode
set keymap vi-insert
"\e.":yank-last-arg
"\e_": yank-last-arg
Вы можете использовать мой файл inputrc . А вот руководство inputrc для insert-last-argument
и yank-last-arg
Например:
┌─ (marslo@MarsloJiao ~) ->
└─ # echo arg1 arg2 arg3 arg4 arg5
arg1 arg2 arg3 arg4 arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo !$
echo arg5
arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo arg1 arg2 arg3 arg4 arg5
arg1 arg2 arg3 arg4 arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo !!:$
echo arg5
arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo arg1 arg2 arg3 arg4 arg5
arg1 arg2 arg3 arg4 arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo !!:^
echo arg1
arg1
┌─ (marslo@MarsloJiao ~) ->
└─ # echo arg1 arg2 arg3 arg4 arg5
arg1 arg2 arg3 arg4 arg5
┌─ (marslo@MarsloJiao ~) ->
└─ # echo !!:2-4
echo arg2 arg3 arg4
arg2 arg3 arg4
В руководстве к Обозначение слова оболочки показано:
!!: $
обозначает последний аргумент предыдущего команда. Его можно сократить до! $.
0 (ноль)
0-е слово. Для многих приложений это командное слово.
n
Энное слово.
^
Первый аргумент; то есть слово 1.
$
Последний аргумент.
%
Слово, соответствующее последнему поисковому запросу «? Строка?».
x-y
Диапазон слов; «-У» означает «0-у».
*
Все слова, кроме 0-го. Это синоним «1- $». Использование «» не является ошибкой, если в событии есть только одно слово; в этом случае возвращается пустая строка. x
Сокращает "x- $"
x-
Сокращает «x- $» как «x *», но опускает последнее слово.
Например:
┌─ (marslo@MarsloJiao ~) ->
└─ # echo very-very-very-very-very-long-argument
very-very-very-very-very-long-argument
┌─ (marslo@MarsloJiao ~) ->
└─ # echo $_
very-very-very-very-very-long-argument
┌─ (marslo@MarsloJiao ~) ->
└─ # ls /usr/local/etc/
┌─ (marslo@MarsloJiao ~) ->
└─ # cd $_
┌─ (marslo@MarsloJiao /usr/local/etc) ->
└─ #
В руководстве к Специальные параметры оболочки :
_
(знак подчеркивания). При запуске оболочки установите абсолютный путь используется для вызова оболочки или сценария оболочки, выполняемого, как передано в окружение или список аргументов. Впоследствии расширяется до последнего аргумент предыдущей команды после раскрытия. Также установите полный путь, используемый для вызова каждой выполненной команды и помещенной в среда, экспортированная в эту команду. При проверке почты это Параметр содержит имя почтового файла.