檢視原始碼 edlin (stdlib v6.2)

用於 Erlang Shell 的行和輸入解譯器。

此模組讀取輸入,處理透過 edlin_key 設定的任何跳脫序列,並輸出動作請求。這些動作請求會由模組 groupuser_drv 處理。

按鍵配置

您可以設定自訂的按鍵配置來覆寫預設的按鍵配置。這可以透過在 Erlang 啟動前設定 stdlib 應用程式參數 shell_keymap 來完成。如果您希望在所有 Erlang Shell 中都有相同的按鍵映射,您可以在您使用者的家目錄中放置一個 config 檔案,然後設定 ERL_FLAGS 以在啟動時載入它。例如:

$ cat $HOME/.erlang_keymap.config
[{stdlib,
  [{shell_keymap,
    #{ normal => #{ "\^[A" => clear } }
  }]
}].
$ ERL_FLAGS="-config $HOME/.erlang_keymap" erl

目前的按鍵映射配置可以透過 edlin:keymap() 取得。如果指定了自訂的按鍵映射或按鍵映射檔案,則會與預設的按鍵映射合併。

按鍵映射是一個由多個映射組成的映射,其中父映射的鍵對應於 shell 中不同的編輯模式。目前支援的有效模式為 normalsearch

子映射中的鍵是終端機在按下按鍵時發送的跳脫序列,每個值都是如下所示的有效動作。

預設的 atom 用於指定當按下沒有任何映射的按鍵時應該發生的動作。通常用於退出模式。

有關預設按鍵映射的更多資訊,請參閱 tty - 命令列介面

動作

以下命令是用於在一般 shell 上切換輸入模式或導覽或操作換行的內建動作請求。換行支援多行。

  • auto_blink - 自動關閉最近匹配的開括號。

  • backward_char - 向後移動一個字元。

  • backward_delete_char - 刪除游標後面的字元。

  • backward_delete_word - 刪除游標後面的單字。

  • backward_kill_line - 刪除從游標到行首的所有字元,並將它們儲存在剪貼緩衝區中。

  • backward_kill_word - 刪除游標後面的單字,並將其儲存在剪貼緩衝區中。

  • backward_line - 向後移動一行。

  • backward_word - 向後移動一個單字。

  • beginning_of_expression - 移動到運算式的開頭。

  • beginning_of_line - 移動到行首。

  • clear - 清除螢幕。

  • clear_line - 清除目前的運算式。

  • end_of_expression - 移動到運算式的結尾。

  • end_of_line - 移動到行尾。

  • forward_char - 向前移動一個字元。

  • forward_delete_char - 刪除游標下的字元。

  • forward_line - 向前移動一行。

  • forward_word - 向前移動一個單字。

  • help - 顯示游標左側最近的模組或函式的說明。

  • help_full - 顯示游標左側最近的模組或函式的完整說明文字。

  • history_down - 移動到歷史記錄中的下一個項目。

  • history_up - 移動到歷史記錄中的上一個項目。

  • kill_line - 刪除從游標到行尾的所有字元,並將它們儲存在剪貼緩衝區中。

  • kill_word - 刪除游標下的單字,並將其儲存在剪貼緩衝區中。

  • move_expand_down - 在展開區域(例如,說明或 Tab 完成分頁器)中向下移動一行。

  • move_expand_up - 在展開區域(例如,說明或 Tab 完成分頁器)中向上移動一行。

  • new_line_finish - 在行尾新增一個換行符號,並嘗試評估目前的運算式。

  • newline - 在游標位置新增一個換行符號。

  • open_editor - 在編輯器中開啟目前的行,例如,EDITOR="code -w" 會在 vs code 中開啟一個緩衝區。請注意,您需要將一個旗標傳遞給編輯器,以便在您關閉緩衝區時通知 shell。

  • redraw_line - 重新繪製目前的行。

  • scroll_expand_down - 在展開區域(例如,說明或 Tab 完成分頁器)中向下捲動五行。

  • scroll_expand_up - 在展開區域(例如,說明或 Tab 完成分頁器)中向上捲動五行。

  • search_cancel - 取消目前的搜尋。

  • search_found - 接受目前的搜尋結果並提交它。

  • search_quit - 接受目前的搜尋結果,但在提交之前編輯它。

  • search - 進入搜尋模式,搜尋歷史記錄。

  • skip_down - 跳到歷史記錄中與目前搜尋運算式相符的下一行。

  • skip_up - 跳到歷史記錄中與目前搜尋運算式相符的上一行。

  • tab_expand_full - 輸出所有可能的 Tab 完成。

  • tab_expand_quit - 返回一般模式。

  • tab_expand - 自動完成目前的單字,或顯示 5 行可能的完成。

  • transpose_char - 將游標後面的字元與前面的字元交換。

  • transpose_word - 將游標後面的單字與前面的單字交換。

  • yank - 在游標位置插入剪貼緩衝區的內容。

摘要

類型

一個由多個映射組成的映射,用於每個 shell 模式,其中包含按鍵、動作配對。

函數

取得 shell 中目前使用的按鍵映射。父映射中的每個鍵都代表一個shell 模式,例如 normalsearch。與shell 模式相關聯的每個映射都包含以字串表示的按鍵序列,並與一個動作配對,該動作是上面提到的有效動作之一。

類型

此類型的連結

keymap()

檢視原始碼 (未匯出) (自 OTP 26.1 起)
-type keymap() :: #{atom() => #{string() | default => atom()}}.

一個由多個映射組成的映射,用於每個 shell 模式,其中包含按鍵、動作配對。

函數

此函數的連結

keymap()

檢視原始碼 (自 OTP 26.1 起)
-spec keymap() -> keymap().

取得 shell 中目前使用的按鍵映射。父映射中的每個鍵都代表一個shell 模式,例如 normalsearch。與shell 模式相關聯的每個映射都包含以字串表示的按鍵序列,並與一個動作配對,該動作是上面提到的有效動作之一。