как вспомнить последний аргумент в ударе с установкой vi

Обычно необходимо пользоваться ncurses библиотекой для использования терминальных функций.

В Вашем случае можно использовать выделение на:

PS1="[\033[33;1m][\u@\h \W]$ [$Color_Off]"
7
05.01.2015, 01:58
2 ответа

Добавьте эту строку после set -o vi :

bind -m vi-command ".":yank-last-argument # or insert-last-argument

Затем вы можете использовать Alt + . как в режиме emacs.

Или используйте расширение истории, работая в обоих:

!$:p
4
27.01.2020, 20:16

Есть несколько способов получить последний аргумент последней команды:

1. inputrc: insert-last-argument & yank-last-arg

Скопируйте следующий код в свой ~ / .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

2. Обозначения слов: !!: $ &! $

Например:

┌─ (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 *», но опускает последнее слово.
 

3. Специальные параметры оболочки: $ _

Например:

┌─ (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) ->
└─ #

В руководстве к Специальные параметры оболочки :

_

(знак подчеркивания). При запуске оболочки установите абсолютный путь используется для вызова оболочки или сценария оболочки, выполняемого, как передано в окружение или список аргументов. Впоследствии расширяется до последнего аргумент предыдущей команды после раскрытия. Также установите полный путь, используемый для вызова каждой выполненной команды и помещенной в среда, экспортированная в эту команду. При проверке почты это Параметр содержит имя почтового файла.

9
27.01.2020, 20:16

Теги

Похожие вопросы