Có rất nhiều cách để da mèo này!
Để thay thế một chuỗi cụ thể, ^old^new^extra
sẽ nắm quyền chỉ huy trước đây của bạn, thay thế old
với new
, và append extra
. Bạn có thể dừng lại sớm như bạn muốn; ví dụ ^old
sẽ thay thế old
bằng chuỗi rỗng và nối thêm chuỗi trống (về cơ bản là xóa old
và không làm gì thêm).
1. ^diff^checkout
2. ^cat^rm
Biến thể đặc biệt hữu ích của điều này:
for i in `seq 1 10`; do echo something complicated; done
# inspect the output to see if it looks right
^echo
Để thay thế một từ cụ thể, bạn có thể sử dụng !m:n-p
để chỉ các từ n
thông qua p
lệnh m
(sử dụng số âm để đếm ngược từ lệnh hiện tại). Bạn có thể bỏ qua -p
phần để chỉ một từ và bỏ qua :m-p
phần đó để chỉ toàn bộ lệnh. Các hình thức đặc biệt !!
cho !-1
, !$
cho từ cuối cùng của lệnh trước và !*
cho các đối số (tất cả trừ từ 0
) của lệnh trước đó là khá tiện dụng.
1. !!:0 checkout !!:2-
2. rm !*
Tôi thường sử dụng cả hai thứ này; zsh đặc biệt tốt ở đây, vì việc nhấn tab sẽ mở rộng các công cụ khó hiểu để đảm bảo bạn hiểu đúng.
Cũng có rất nhiều cách để làm điều này với chỉnh sửa dòng. Đọc trên keybindings của vỏ của bạn.