Xóa đầu vào trở lại dấu gạch chéo cuối cùng


16

Tôi sẽ rất thường xuyên bị bỏ qua giữa một số tệp trên máy chủ. Tôi sẽ chạy các lệnh ví dụ sau theo trình tự:

nano /web/site/path/to/file
/web/site/script.py
nano /web/site/path/to/anotherFile
nano /web/site/path/to/yetAnotherFile
/web/site/script.py
nano /web/site/path/to/etc

Để đi từ nanolệnh này sang lệnh tiếp theo tôi hiện đang nhấn UpBackspaceđể thay thế đoạn cuối của đường dẫn. Vấn đề với điều này là tôi thực sự, rất lười biếng.

Có một phím tắt (hoặc Bashism) có thể:

  • Được thay thế bởi đường dẫn cuối cùng được sử dụng (có thêm một chút ở cuối)
  • Xóa trong dòng hiện tại (ví dụ sau khi nhấn Up) trở lại dòng cuối cùng/

1
Tôi không chắc chính xác ý bạn là gì, nhưng tôi nghĩ phần đầu tiên bạn có thể sử dụng alt+ .?
Sparhawk

@Sparhawk Alt + .được sử dụng cho một cái gì đó khác .
Radu Rădeanu

@ RaduRădeanu Vâng, có lẽ tôi hiểu nhầm câu hỏi. Tôi nghĩ rằng "Được thay thế bởi đường dẫn cuối cùng được sử dụng (có thêm một chút ở cuối)" có nghĩa là những gì alt+ .làm.
Sparhawk

@Sparhawk Một lần nữa, một trong những phím tắt đó thực sự hữu ích khoảng một tháng một lần mà tôi dường như không thể cam kết với bộ nhớ. Kết hợp với alt-backspace, thật tiện dụng để chạy các tệp tương tự thông qua các lệnh khác nhau.
Oli

@Oli Tôi có xu hướng sử dụng nó một chút công bằng, nhưng tôi luôn quên cách di chuyển theo cách khác !
Sparhawk

Câu trả lời:


21

Tôi nghĩ rằng bạn đang tìm kiếm phím tắt Alt+ Backspace.

Sau khi nhấn Up, nên xóa trở lại trước /hoặc spaceký tự.


7
NGAY BÂY GIỜ TÔI KHÔNG HỀ! (Chỉnh sửa: Tôi thề tôi đã học và quên lối tắt này ít nhất mười lần một năm)
Oli

3
Cái này nên làm gì? Trên thiết bị đầu cuối của tôi, nó dường như không làm gì khác hơn là đơn giản backspace.
Bakuriu

1
@Bakuriu Phím tắt này phải là phím tắt mặc định. Nếu bạn muốn tìm hiểu những gì nó được ánh xạ trên hệ thống của bạn chạybind -P | grep '^backward-kill-word'
Sylvain Pineau

1
@Bakuriu Tương tự ở đây, tôi đang ở trên Mac.
laike9m

9

Để phát hiện ràng buộc readline giết một từ lạc hậu như bạn muốn, bạn có thể sử dụng lệnh sau trong thiết bị đầu cuối của mình:

bind -p | awk '/kill/ && /word/ && /backward/'

Trong bản cài đặt Ubuntu mặc định, đầu ra có thể là:

"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)

Dòng thứ hai dường như không có tầm quan trọng tại thời điểm này, vì vậy hãy thử xem dòng đầu tiên có nghĩa là gì. Từ những gì tôi hiểu, các backward-kill-wordchức năng readline mà trên thực tế xóa tất cả các ký tự cho đến khi ký tự đặc biệt trước đó ( /, ;, ,vv) được ràng buộc với \e\C-hdãy phím. Bây giờ, theo thứ tự này \e đại diện cho sự Escchủ chốt, \C- các Ctrlphím, và \C-hviết tắt của Ctrl+ hlà tương đương trong trường hợp này với Backspacethen chốt.

Vì vậy, bạn đang tìm kiếm phím tắt Esc+ Ctrl+h tương đương với Esc+Backspacedo hành vi của xterm tạo ra Altkhóa để hoạt động như một ký tự meta và các ký tự meta được chuyển đổi thành một chuỗi hai ký tự với chính ký tự đi trước Esc(xem man xterm) , tương đương với Alt+Backspace .

Bây giờ, nếu bạn không thích nó và bạn tiếp tục quên nó, bạn có thể sử dụng lệnh sau để tạo một lối tắt mới, giả sử Esc+ w, cho mục đích của bạn:

bind '"\ew": backward-kill-word'

Để làm cho lối tắt mới này liên tục mọi lúc cho tất cả các lệnh sử dụng đường đọc, hãy thêm dòng dòng sau vào ~/.inputrctệp của bạn :

"\ew": backward-kill-word

Xem help -m bind | sensible-pagerđể biết thêm.


2
Câu trả lời tốt. Thông thường hơn, bạn sẽ bao gồm toàn bộ cài đặt trong dấu ngoặc đơn bằng lệnh liên kết; bind '"\ew": backward-kill-word', nhưng đó là nitpicking. Và điều đáng nói là bạn cũng có thể đưa "\ew": backward-kill-wordvào ~/.inputrc, trong trường hợp các lệnh khác sử dụng readline cũng sẽ có ràng buộc đó, ví dụ nếu bạn bật readline trong shell tương tác python, ràng buộc đó cũng sẽ được áp dụng ở đó.
geirha

@geirha Vâng, tôi biết những gì bạn nói, nhưng tôi nghĩ rằng OP biết cách quản lý điều này. Dù sao, bây giờ tôi nhận ra rằng câu trả lời của tôi không hữu ích cho OP (anh ấy chỉ muốn nhớ phím tắt), nhưng tôi hy vọng sẽ hữu ích cho những người dùng khác của trang web này và vì điều này tôi đã chỉnh sửa câu trả lời của mình bằng cách thêm quan sát của bạn. Cảm ơn bạn.
Radu Rădeanu

0

Một tổ hợp phím khác là:

Alt+ Brồi Ctrl+K

Alt + B     Move cursor backward one word on the current line    
Ctrl + K    Clear the line after the cursor

Alt+ Brồi Alt+D

Điều này loại bỏ từ cuối cùng mà không xóa char đặc biệt giữa các từ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.