Câu trả lời:
Thêm dòng này sau set -o vi
:
bind -m vi-command ".":yank-last-argument # or insert-last-argument
Sau đó, bạn có thể sử dụng Alt+ .like trong chế độ emacs.
Hoặc sử dụng mở rộng lịch sử, làm việc trong cả hai:
!$:p
yank-last-arg
.
Có nhiều phương pháp khác nhau để lấy đối số cuối cùng của lệnh cuối cùng:
Sao chép mã sau vào ~/.inputrc
tập tin của bạn
set editing-mode vi
# Insert Mode
set keymap vi-insert
"\e.":yank-last-arg
"\e_": yank-last-arg
Bạn có thể sử dụng tập tin inputrc của tôi . Và đây là hướng dẫn inputrc cho insert-last-argument
vàyank-last-arg
Ví dụ:
┌─ (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
Hướng dẫn của Shell Word Designator hiển thị:
!!: $
designates the last argument of the preceding command. This may be shortened to !$.
0 (không)
The 0th word. For many applications, this is the command word.
n
The nth word.
^
The first argument; that is, word 1.
$
The last argument.
%
The word matched by the most recent ‘?string?’ search.
xy
A range of words; ‘-y’ abbreviates ‘0-y’.
*
Tất cả các từ, ngoại trừ số 0. Đây là từ đồng nghĩa với '1- $'. Không phải là lỗi khi sử dụng ' ' nếu chỉ có một từ trong sự kiện; chuỗi rỗng được trả về trong trường hợp đó. x
Abbreviates ‘x-$’
x-
Abbreviates ‘x-$’ like ‘x*’, but omits the last word.
Ví dụ:
┌─ (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) ->
└─ #
Trong hướng dẫn sử dụng thông số đặc biệt của Shell :
_
(Một dấu gạch dưới.) Khi khởi động shell, được đặt thành tên đường dẫn tuyệt đối được sử dụng để gọi tập lệnh shell hoặc shell đang được thực thi như được truyền trong môi trường hoặc danh sách đối số. Sau đó, mở rộng đến đối số cuối cùng cho lệnh trước đó, sau khi mở rộng. Cũng được đặt thành tên đường dẫn đầy đủ được sử dụng để gọi từng lệnh được thực thi và được đặt trong môi trường được xuất sang lệnh đó. Khi kiểm tra thư, tham số này giữ tên của tệp thư.