Break up nushell config
parent
925fcd8025
commit
e8bce9f6b2
@ -0,0 +1,566 @@
|
|||||||
|
export const bindings = [
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
modifier: none
|
||||||
|
keycode: tab
|
||||||
|
mode: [emacs vi_normal vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menu name: completion_menu }
|
||||||
|
{ send: menunext }
|
||||||
|
{ edit: complete }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: completion_previous_menu
|
||||||
|
modifier: shift
|
||||||
|
keycode: backtab
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: menuprevious }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: ide_completion_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: space
|
||||||
|
mode: [emacs vi_normal vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menu name: ide_completion_menu }
|
||||||
|
{ send: menunext }
|
||||||
|
{ edit: complete }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_r
|
||||||
|
mode: [emacs, vi_insert, vi_normal]
|
||||||
|
event: { send: menu name: history_menu }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: help_menu
|
||||||
|
modifier: none
|
||||||
|
keycode: f1
|
||||||
|
mode: [emacs, vi_insert, vi_normal]
|
||||||
|
event: { send: menu name: help_menu }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: next_page_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_x
|
||||||
|
mode: emacs
|
||||||
|
event: { send: menupagenext }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: undo_or_previous_page_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_z
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menupageprevious }
|
||||||
|
{ edit: undo }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: escape
|
||||||
|
modifier: none
|
||||||
|
keycode: escape
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
# NOTE: does not appear to work
|
||||||
|
event: { send: esc }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: cancel_command
|
||||||
|
modifier: control
|
||||||
|
keycode: char_c
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: ctrlc }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: quit_shell
|
||||||
|
modifier: control
|
||||||
|
keycode: char_d
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: ctrld }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: clear_screen
|
||||||
|
modifier: control
|
||||||
|
keycode: char_l
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: clearscreen }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: search_history
|
||||||
|
modifier: control
|
||||||
|
keycode: char_q
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: searchhistory }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: open_command_editor
|
||||||
|
modifier: control
|
||||||
|
keycode: char_o
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: openeditor }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_up
|
||||||
|
modifier: none
|
||||||
|
keycode: up
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuup }
|
||||||
|
{ send: up }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_down
|
||||||
|
modifier: none
|
||||||
|
keycode: down
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menudown }
|
||||||
|
{ send: down }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: none
|
||||||
|
keycode: left
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuleft }
|
||||||
|
{ send: left }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_right_or_take_history_hint
|
||||||
|
modifier: none
|
||||||
|
keycode: right
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ send: menuright }
|
||||||
|
{ send: right }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: control
|
||||||
|
keycode: left
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: right
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: none
|
||||||
|
keycode: home
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: control
|
||||||
|
keycode: char_a
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_to_line_end_or_take_history_hint
|
||||||
|
modifier: none
|
||||||
|
keycode: end
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ edit: movetolineend }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_to_line_end_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: char_e
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ edit: movetolineend }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: control
|
||||||
|
keycode: home
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_to_line_end
|
||||||
|
modifier: control
|
||||||
|
keycode: end
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolineend }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_down
|
||||||
|
modifier: control
|
||||||
|
keycode: char_n
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menudown }
|
||||||
|
{ send: down }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_up
|
||||||
|
modifier: control
|
||||||
|
keycode: char_p
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuup }
|
||||||
|
{ send: up }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: delete_one_character_backward
|
||||||
|
modifier: none
|
||||||
|
keycode: backspace
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspace }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: backspace
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: delete_one_character_forward
|
||||||
|
modifier: none
|
||||||
|
keycode: delete
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: delete }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: delete_one_character_forward
|
||||||
|
modifier: control
|
||||||
|
keycode: delete
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: delete }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: delete_one_character_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: char_h
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspace }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: char_w
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: none
|
||||||
|
keycode: backspace
|
||||||
|
mode: vi_normal
|
||||||
|
event: { edit: moveleft }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: newline_or_run_command
|
||||||
|
modifier: none
|
||||||
|
keycode: enter
|
||||||
|
mode: emacs
|
||||||
|
event: { send: enter }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: control
|
||||||
|
keycode: char_b
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuleft }
|
||||||
|
{ send: left }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_right_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: char_f
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ send: menuright }
|
||||||
|
{ send: right }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: redo_change
|
||||||
|
modifier: control
|
||||||
|
keycode: char_g
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: redo }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: undo_change
|
||||||
|
modifier: control
|
||||||
|
keycode: char_z
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: undo }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: paste_before
|
||||||
|
modifier: control
|
||||||
|
keycode: char_y
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: pastecutbufferbefore }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: cut_word_left
|
||||||
|
modifier: control
|
||||||
|
keycode: char_w
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutwordleft }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: cut_line_to_end
|
||||||
|
modifier: control
|
||||||
|
keycode: char_k
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cuttolineend }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: cut_line_from_start
|
||||||
|
modifier: control
|
||||||
|
keycode: char_u
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutfromstart }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: swap_graphemes
|
||||||
|
modifier: control
|
||||||
|
keycode: char_t
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: swapgraphemes }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: alt
|
||||||
|
keycode: left
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: alt
|
||||||
|
keycode: right
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_b
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_f
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: delete_one_word_forward
|
||||||
|
modifier: alt
|
||||||
|
keycode: delete
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: deleteword }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: alt
|
||||||
|
keycode: backspace
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_m
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: cut_word_to_right
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_d
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutwordright }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: upper_case_word
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_u
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: uppercaseword }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: lower_case_word
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_l
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: lowercaseword }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: capitalize_char
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_c
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: capitalizechar }
|
||||||
|
}
|
||||||
|
|
||||||
|
# The following bindings with `*system` events require that Nushell has
|
||||||
|
# been compiled with the `system-clipboard` feature.
|
||||||
|
# If you want to use the system clipboard for visual selection or to
|
||||||
|
# paste directly, uncomment the respective lines and replace the version
|
||||||
|
# using the internal clipboard.
|
||||||
|
|
||||||
|
{
|
||||||
|
name: copy_selection
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_c
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: copyselection }
|
||||||
|
# event: { edit: copyselectionsystem }
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: cut_selection
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_x
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutselection }
|
||||||
|
# event: { edit: cutselectionsystem }
|
||||||
|
}
|
||||||
|
|
||||||
|
# {
|
||||||
|
# name: paste_system
|
||||||
|
# modifier: control_shift
|
||||||
|
# keycode: char_v
|
||||||
|
# mode: emacs
|
||||||
|
# event: { edit: pastesystem }
|
||||||
|
# }
|
||||||
|
|
||||||
|
{
|
||||||
|
name: select_all
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_a
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: selectall }
|
||||||
|
}
|
||||||
|
]
|
@ -1,10 +0,0 @@
|
|||||||
let xdg = $env
|
|
||||||
| transpose name value
|
|
||||||
| each {|e| if $e.name =~ 'XDG_' {{
|
|
||||||
name: ($e.name | str replace 'XDG_' '' | str downcase),
|
|
||||||
value: $e.value
|
|
||||||
}} else { null }}
|
|
||||||
| reduce --fold {} {|e, memo| {
|
|
||||||
...$memo,
|
|
||||||
$e.name: $e.value
|
|
||||||
}}
|
|
@ -0,0 +1,94 @@
|
|||||||
|
export const menus = [
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
only_buffer_difference: false
|
||||||
|
marker: "| "
|
||||||
|
type: {
|
||||||
|
layout: columnar
|
||||||
|
columns: 4
|
||||||
|
# Optional value.
|
||||||
|
# If missing all the screen width is used to calculate column width
|
||||||
|
col_width: 20
|
||||||
|
col_padding: 2
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: { attr: r }
|
||||||
|
description_text: yellow
|
||||||
|
match_text: { attr: u }
|
||||||
|
selected_match_text: { attr: ur }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: ide_completion_menu
|
||||||
|
only_buffer_difference: false
|
||||||
|
marker: "| "
|
||||||
|
type: {
|
||||||
|
layout: ide
|
||||||
|
min_completion_width: 0,
|
||||||
|
max_completion_width: 50,
|
||||||
|
# will be limited by the available lines in the terminal
|
||||||
|
max_completion_height: 10,
|
||||||
|
padding: 0,
|
||||||
|
border: true,
|
||||||
|
cursor_offset: 0,
|
||||||
|
description_mode: prefer_right
|
||||||
|
min_description_width: 0
|
||||||
|
max_description_width: 50
|
||||||
|
max_description_height: 10
|
||||||
|
description_offset: 1
|
||||||
|
# If true, the cursor pos will be corrected, so the
|
||||||
|
# suggestions match up with the typed text
|
||||||
|
#
|
||||||
|
# C:\> str
|
||||||
|
# str join
|
||||||
|
# str trim
|
||||||
|
# str split
|
||||||
|
correct_cursor_pos: false
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: { attr: r }
|
||||||
|
description_text: yellow
|
||||||
|
match_text: { attr: u }
|
||||||
|
selected_match_text: { attr: ur }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: list
|
||||||
|
page_size: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: help_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: description
|
||||||
|
columns: 4
|
||||||
|
# Optional value. If missing all the screen width is used to
|
||||||
|
# calculate column width
|
||||||
|
col_width: 20
|
||||||
|
col_padding: 2
|
||||||
|
selection_rows: 4
|
||||||
|
description_rows: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
Loading…
Reference in New Issue