Có cách nào để sử dụng !$
trong ngữ cảnh mở rộng tham số không? Cách sử dụng mong muốn tạo động lực cho câu hỏi này nhanh chóng (thay đổi nét chính) tên của tệp (ví dụ: thay vì lưu tên tệp trong biến và thực hiện rsvg-convert $svg > ${svg/.svg/.png}
, thay vào đó, có thể sử dụng rsvg-convert $! > $!{/.svg/.png}
, trong đó $!{/.svg/.png}
là cú pháp sai Khi tệp được đề cập là mã thông báo cuối cùng trên dòng trước, lệnh này thường có thể được nhập nhanh hơn các lựa chọn thay thế như sử dụng hoàn thành tab khi có tiền tố chia sẻ tệp có độ dài khác nhau hoặc sao chép và dán tên tệp bằng cách chọn bằng chuột). Theo như tôi có thể nói, không có cách nào để sử dụng !$
trong bối cảnh như vậy, nhưng có lẽ thông qua một số chicanery một hiệu ứng tương tự có thể đạt được.
Trả lời
Tùy thuộc vào mức độ tinh vi mà bạn muốn thay thế, mở rộng lịch sử hỗ trợ thay thế lần xuất hiện đầu tiên của chuỗi bằng chuỗi khác. Bạn chỉ cần đặt trước sự thay thế với :
như:
rsvg-convert !$ > !$:s/.svg/.png
Bạn có thể xem tất cả các từ bổ nghĩa lịch sử here
Ít nhất trong emacs-mode bash cũng sẽ đưa đối số cuối cùng của inline lệnh trước đó (không cho mở rộng khi bạn chạy lệnh) nếu bạn nhấn alt + .. Vì vậy, trong trường hợp này nó có thể là nhanh nhất để gõ:
rsvg-convert
sau đó alt + .>alt + . sau đó xóa phần mở rộng nó chỉ đưa ra với alt + bksp sau đó phần mở rộng mới: png
Cả hai đề xuất tuyệt vời, cảm ơn. – user001
Nếu bạn nhìn sâu hơn vào các bổ ngữ trong ví dụ của Eric, bạn cũng có thể làm:
rsvg-convert !$ > !$:r.png
Giả sử .svg là hậu tố của khóa học
- 1. CHỌN $ (ký hiệu đô la)
- 2. $$ (đô la hoặc đô la đôi) có nghĩa là gì trong PHP?
- 3. # $ làm gì trong bash? (aka: dấu đô la băm, dấu đô la bảng Anh)
- 4. Thoát $ đô la đăng nhập CMake
- 5. Dấu đô la làm gì trong scala
- 6. Lỗi Gradle với ký hiệu đô la
- 7. LaTeX: ký hiệu đô la so với \ (\)
- 8. javascript - trần của một số đô la
- 9. Cách grep cho ký hiệu đô la ($)?
- 10. dấu ba đô la trong jquery là gì?
- 11. "$" nhân vật đô la tiền tố cookie tên
- 12. Ký tự đô la ký tự trong chuỗi
- 13. Java biểu thức thông thường và ký hiệu đô la
- 14. Thoát ký hiệu đô la trong nội suy chuỗi
- 15. Có gì với ký hiệu đô la ($ "string")
- 16. Đồng đô la ESL ($) không được xác định. (no-undef)
- 17. Đồng đô la bang (! $) Trong Bash là gì?
- 18. Dấu đô la nghĩa là gì trong PHP?
- 19. Thay thế "$" (ký hiệu đô la) bằng "JQuery"
- 20. Không chọn đô la ($) trong PhpStorm khi nhấp đúp?
- 21. `string.replace` hành vi kỳ lạ khi sử dụng ký hiệu đô la ($) để thay thế
- 22. $$ (dấu đô la đôi) được sử dụng trong góc là gì?
- 23. Chuyển đổi xu thành chuỗi đô la trong Ruby mà không sử dụng BigDecimal
- 24. Nhận tổng đô la của tất cả các yếu tố có lớp sử dụng jQuery
- 25. Cụm từ thông dụng để khớp với số tiền đô la
- 26. Ký hiệu đô la "\ $" trong Cụm từ thông dụng "\ b" (PHP/JavaScript)
- 27. Đồng đô la theo sau là chỉ số có nghĩa là gì trong tên lớp?
- 28. Dấu đô la có nghĩa là gì trong khung ngăn xếp khi gỡ lỗi?
- 29. Ký hiệu đô la có được cho phép trong số nhận dạng trong C++ 03 không?
- 30. Làm cách nào để tham khảo số nhận dạng có ký hiệu đô la từ C#?
Tôi đã chuyển sang sử dụng 'alt + .' nhiều hơn'! $ '. Thay vì mở rộng nó sau này, nó sẽ (giả sử bạn đang ở chế độ emacs) đặt đối số cuối cùng của dòng lệnh trước đó, đã mở rộng hoàn toàn. Điều đó sẽ không hoạt động nếu bạn đang sử dụng các từ khác hơn là cuối cùng, hoặc đi nhiều lệnh trở lại như '!: - 2' hoặc'! Mv: 1' –
@EricRenouf Đó là khá hữu ích, cảm ơn. Tôi đã không nhận thức được 'alt + .', nhưng nó thậm chí còn nhanh hơn một tham số mở rộng'! $ 'Sẽ cho việc sử dụng được đề xuất. – user001