Bash 下的 emacs 和 vi 鍵繫結

2021-08-14 23:04:53 字數 832 閱讀 3471

初衷只是為了記述一下在 bash/zsh 中怎麼呼叫 vi 編輯當前的命令,但一發揮便涉及到了 bash/zsh 的鍵繫結的話題,無法打住,只得另立新篇。這裡也只說 bash 的鍵繫結,不會有 zsh 鍵繫結的內容。

什麼是 bash 的鍵繫結(keybing) 呢? 就是在 bash 中的快捷鍵方案,即相當於某個 ide 的快捷鍵配置,或者叫 keymap。比如說 intellij idea 中可選擇的 keymap 有 eclipse, emacs, jbuilder, mac os x, mac os x 10.5+, netbean, visual studio, 以滿足不同使用者的習慣。

相應的 bash 也為我們提供了兩種鍵繫結的方案,即 emacs(預設) 和 vi 鍵繫結型別。

我們大多數天天在 bash 下無意識中使用著 emacs 鍵繫結型別,即使可能從未用過 emacs 本身。比如我們在 bash 下的按鍵組合

ctrl + a     跳到命令列的開始

ctrl + e     跳到命令列末尾

!!               重複最後乙個命令

ctrl + l      清屏操作,類似於  clear 命令

ctrl + c      中斷/殺掉當前執行的程序 (sigint)

ctrl + d     傳送 eof 標記,這會關掉當前的 shell (exit)

ctrl + z      傳送 sigtstp 給當前任務,使其掛起送到後台。(所以如果 vi 未正常退出,而是按 ctrl + z 的話,vi 程序還呆在後台

它們都是來自於 emacs 鍵繫結。是不是那麼的熟悉啊? 閱讀全文 >>

linux下vim和vi的快捷鍵

yy 在非編輯情況下,在滑鼠定位行yy會複製當前行,然後摁p鍵會在游標處貼上複製的當前行 在滑鼠定位行3yy會複製當前行在內的後面的3行,然後p鍵進行貼上 dd 在非編輯情況下,在滑鼠定位行dd會刪除當前行 在滑鼠定位行3dd會刪除當前行在內的後面三行 在非編輯情況下,要查詢的字 然後回車,會進行全...

bash與vi編輯器常用快捷鍵

說明 玩linux,就自己目前的使用情況來說,bash命令列和vi編輯使用幾乎是最多了,每一次操作,無論做什麼,都離不開這兩種操作,因此如果能夠熟練地掌握bash與vi編輯器中的快捷鍵,那顯然會大大提高我們的操作效率和工作效率。1.bash常用快捷鍵 其實有很多,但就實際中經常用到的 使用頻率比較高...

空格和tab鍵的vi 轉換

tab鍵和空格鍵之間的轉換始終是個問題,比如makefile中,應該用tab鍵的地方替換成空格,就會出問題。然而在python 中,由於其嚴格要求的縮排格式,不可見的空格和tab鍵之間的轉換同樣會造成麻煩。在ultraedit裡,我們可以定義tab鍵轉換為若干個空格字元來滿足自已的要求。在linux...