Tôi biết làm thế nào để lặp lại một lệnh và thêm văn bản sau nó với !!
như vậy:
ls -l
!! tmp
Dòng thứ hai mở rộng đến ls -l tmp
.
Nhưng nếu tôi muốn thêm tham số vào lệnh ở giữa các từ thì sao? Ví dụ: nếu tôi đã làm như sau:
ls tmp
... sau đó tôi thường muốn thêm -l
tham số vào lệnh nhưng không nhập lại toàn bộ hoặc nhấn và sử dụng các phím mũi tên để đặt con trỏ đến đúng vị trí. !! -l
không hoạt động vì nó trở nên ls tmp -l
không hợp lệ. (Trong thực tế, lệnh dài hơn nhiều so với ví dụ đơn giản tôi đã sử dụng ở đây.)
Nói cách khác Tôi đang tìm một cái gì đó giống như ?? -l
nơi ??
là cái gì đó lặp đi lặp lại lệnh trước đó nhưng thêm vào -l
ở giữa những lời đầu tiên và thứ hai.
Chỉ cần làm cho nó rõ ràng, ls -l tmp
chỉ là một ví dụ đơn giản. Trường hợp sử dụng thực tế gần với một cái gì đó như /very/long/path/to/very-long-command --with=a --very=long --parameter=list
.
!!:0 -l /tmp
. Ở đây 0
có nghĩa là từ đầu tiên, tức là. lệnh chính nó. Tất nhiên bạn cũng có thể làm !!:0 -l !!:1
nếu bạn không muốn lặp lại /tmp
.
^ ^ -l ^
trao đổispace
chospace -l space
hoặc^s^s -l^
(nhưngls tmp -l
cũng hoàn toàn khả thi)