[英]In bash, how does one clear the current input?
假設你在bash中開始編寫如下命令:
$ rm -rf /foo/bar/really/long/path/here
然后意識到你畢竟不想執行這個。 有沒有辦法通過一次或兩次擊鍵來清除輸入?
我最近一直在做的是在回顯之前將輸入括在引號中(Ctrl + A, echo "
,Ctrl + E, "
),然后點擊回車。 有更快的方法嗎?
按Ctrl - U刪除光標前的所有內容。 刪除的命令將存儲在緩沖區中。 按Ctrl - Y粘貼已刪除的命令。
(可選:按End或Ctrl - E首先跳轉到輸入的末尾。)
或者,按Ctrl - C中止您正在鍵入的內容。
嘗試Ctrl + U. 這清除了輸入行。
在搜索時找到http://www.ice2o.com/bash_quick_ref.html上的簡短參考。
ctrl + e (如果不在行的末尾)再加上ctrl + u就可以了。
Ctrl - U , Ctrl - K也可以。
Ctrl - U刪除從行開頭到光標的所有內容, Ctrl - K刪除從光標到行尾的所有內容。 (有時只使用其中一個。)
有兩種方法可以做到這一點
ctrl + c - 無論光標在哪里,都會清除整行。
ctrl + u - 清除從光標位置到開頭的直線。
在bash中按Esc plus Backspace將清除光標所在位置的所有內容。
(在Cygwin中,這將清除輸入到下一個單詞。單詞用空格,下划線,......)
一個很好的捷徑是按Esc # 。 它將添加一個#
字符(從而使該行成為注釋),然后按Enter鍵。 如果你然后決定你仍然需要命令,你仍然在你的歷史:)
考慮使用Ctrl - U (或Ctrl - E然后按Ctrl - U )將您在緩沖區中清除的內容存儲起來,以便稍后使用Ctrl - Y粘貼它。
這是knittl答案的擴展, 它通過前綴哈希來存儲控制台歷史記錄中的行。 克服剪貼板的缺點,例如意外覆蓋或無法查看剪切線以供參考。
使用任一鍵快捷鍵:
哈希字符#
將被添加到該行之前,從而將整行轉換為注釋。 它還將返回一個新提示,就像用戶按下了enter一樣。 例如
$ #rm -rf /foo/bar/really/long/path/here
$
要從控制台歷史記錄中恢復舊行,請使用以下快捷方式之一:
重復鍵快捷鍵,直到出現所需的行。
要刪除行的hash #
前綴,可以使用幾個不同的選項:
刪除第一個字符並立即執行命令:
移動光標以啟動並刪除第一個字符,而不執行命令:
要刪除當前行,請嘗試:
Ctrl - X , Ctrl - U.
作為替代方案,您可以使用:
Esc - D.
在〜/ .inputrc中需要:
"\ed": kill-whole-line
如果你在vi模式下使用Bash(用set -o vi
設置它),然后按Esc切換到vi的正常模式,然后輸入dd
刪除當前行!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.