mirror of
https://github.com/mpv-player/mpv
synced 2024-12-19 13:21:13 +00:00
console.lua: define remaining emacs keybindings
This commit is contained in:
parent
c82ffb6670
commit
87c9eefb29
@ -14,50 +14,82 @@ Keybindings
|
||||
ESC
|
||||
Hide the console.
|
||||
|
||||
ENTER
|
||||
ENTER, Ctrl+J and Ctrl+M
|
||||
Run the typed command.
|
||||
|
||||
Shift+ENTER
|
||||
Type a literal newline character.
|
||||
|
||||
Ctrl+LEFT and Ctrl+RIGHT
|
||||
Move cursor to previous/next word.
|
||||
LEFT and Ctrl+B
|
||||
Move the cursor to the previous character.
|
||||
|
||||
UP and DOWN
|
||||
Navigate command history.
|
||||
RIGHT and Ctrl+F
|
||||
Move the cursor to the next character.
|
||||
|
||||
Ctrl+LEFT and Alt+B
|
||||
Move the cursor to the beginning of the current word, or if between words,
|
||||
to the beginning of the previous word.
|
||||
|
||||
Ctrl+RIGHT and Alt+F
|
||||
Move the cursor to the end of the current word, or if between words, to the
|
||||
end of the next word.
|
||||
|
||||
HOME and Ctrl+A
|
||||
Move the cursor to the start of the current line.
|
||||
|
||||
END and Ctrl+E
|
||||
Move the cursor to the end of the current line.
|
||||
|
||||
BACKSPACE and Ctrl+H
|
||||
Delete the previous character.
|
||||
|
||||
Ctrl+D
|
||||
Hide the console if the current line is empty, otherwise delete the next
|
||||
character.
|
||||
|
||||
Ctrl+BACKSPACE and Ctrl+W
|
||||
Delete text from the cursor to the beginning of the current word, or if
|
||||
between words, to the beginning of the previous word.
|
||||
|
||||
Ctrl+DEL and Alt+D
|
||||
Delete text from the cursor to the end of the current word, or if between
|
||||
words, to the end of the next word.
|
||||
|
||||
Ctrl+U
|
||||
Delete text from the cursor to the beginning of the current line.
|
||||
|
||||
Ctrl+K
|
||||
Delete text from the cursor to the end of the current line.
|
||||
|
||||
Ctrl+C
|
||||
Clear the current line.
|
||||
|
||||
UP and Ctrl+P
|
||||
Move back in the command history.
|
||||
|
||||
DOWN and Ctrl+N
|
||||
Move forward in the command history.
|
||||
|
||||
PGUP
|
||||
Go to the first command in the history.
|
||||
|
||||
PGDN
|
||||
Stop navigating command history.
|
||||
Stop navigating the command history.
|
||||
|
||||
INSERT
|
||||
Toggle insert mode.
|
||||
|
||||
Shift+INSERT
|
||||
Paste text (uses the primary selection on X11 and Wayland).
|
||||
|
||||
TAB
|
||||
Complete the command or property name at the cursor.
|
||||
|
||||
Ctrl+C
|
||||
Clear current line.
|
||||
|
||||
Ctrl+K
|
||||
Delete text from the cursor to the end of the line.
|
||||
|
||||
Ctrl+L
|
||||
Clear all log messages from the console.
|
||||
|
||||
Ctrl+U
|
||||
Delete text from the cursor to the beginning of the line.
|
||||
|
||||
Ctrl+V
|
||||
Paste text (uses the clipboard on X11 and Wayland).
|
||||
|
||||
Ctrl+W
|
||||
Delete text from the cursor to the beginning of the current word.
|
||||
Shift+INSERT
|
||||
Paste text (uses the primary selection on X11 and Wayland).
|
||||
|
||||
TAB and Ctrl+I
|
||||
Complete the command or property name at the cursor.
|
||||
|
||||
Ctrl+L
|
||||
Clear all log messages from the console.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
@ -260,7 +260,7 @@ function prev_utf8(str, pos)
|
||||
return pos
|
||||
end
|
||||
|
||||
-- Insert a character at the current cursor position (any_unicode, Shift+Enter)
|
||||
-- Insert a character at the current cursor position (any_unicode)
|
||||
function handle_char_input(c)
|
||||
if insert_mode then
|
||||
line = line:sub(1, cursor - 1) .. c .. line:sub(next_utf8(line, cursor))
|
||||
@ -313,10 +313,13 @@ function clear()
|
||||
update()
|
||||
end
|
||||
|
||||
-- Close the REPL if the current line is empty, otherwise do nothing (Ctrl+D)
|
||||
-- Close the REPL if the current line is empty, otherwise delete the next
|
||||
-- character (Ctrl+D)
|
||||
function maybe_exit()
|
||||
if line == '' then
|
||||
set_active(false)
|
||||
else
|
||||
handle_del()
|
||||
end
|
||||
end
|
||||
|
||||
@ -571,7 +574,7 @@ function go_end()
|
||||
update()
|
||||
end
|
||||
|
||||
-- Delete from the cursor to the end of the word (Ctrl+W)
|
||||
-- Delete from the cursor to the beginning of the word (Ctrl+Backspace)
|
||||
function del_word()
|
||||
local before_cur = line:sub(1, cursor - 1)
|
||||
local after_cur = line:sub(cursor)
|
||||
@ -582,6 +585,18 @@ function del_word()
|
||||
update()
|
||||
end
|
||||
|
||||
-- Delete from the cursor to the end of the word (Ctrl+Del)
|
||||
function del_next_word()
|
||||
if cursor > line:len() then return end
|
||||
|
||||
local before_cur = line:sub(1, cursor - 1)
|
||||
local after_cur = line:sub(cursor)
|
||||
|
||||
after_cur = after_cur:gsub('^%s*[^%s]+', '', 1)
|
||||
line = before_cur .. after_cur
|
||||
update()
|
||||
end
|
||||
|
||||
-- Delete from the cursor to the end of the line (Ctrl+K)
|
||||
function del_to_eol()
|
||||
line = line:sub(1, cursor - 1)
|
||||
@ -675,25 +690,37 @@ function get_bindings()
|
||||
{ 'enter', handle_enter },
|
||||
{ 'kp_enter', handle_enter },
|
||||
{ 'shift+enter', function() handle_char_input('\n') end },
|
||||
{ 'ctrl+j', handle_enter },
|
||||
{ 'ctrl+m', handle_enter },
|
||||
{ 'bs', handle_backspace },
|
||||
{ 'shift+bs', handle_backspace },
|
||||
{ 'ctrl+h', handle_backspace },
|
||||
{ 'del', handle_del },
|
||||
{ 'shift+del', handle_del },
|
||||
{ 'ins', handle_ins },
|
||||
{ 'shift+ins', function() paste(false) end },
|
||||
{ 'mbtn_mid', function() paste(false) end },
|
||||
{ 'left', function() prev_char() end },
|
||||
{ 'ctrl+b', function() prev_char() end },
|
||||
{ 'right', function() next_char() end },
|
||||
{ 'ctrl+f', function() next_char() end },
|
||||
{ 'up', function() move_history(-1) end },
|
||||
{ 'ctrl+p', function() move_history(-1) end },
|
||||
{ 'wheel_up', function() move_history(-1) end },
|
||||
{ 'down', function() move_history(1) end },
|
||||
{ 'ctrl+n', function() move_history(1) end },
|
||||
{ 'wheel_down', function() move_history(1) end },
|
||||
{ 'wheel_left', function() end },
|
||||
{ 'wheel_right', function() end },
|
||||
{ 'ctrl+left', prev_word },
|
||||
{ 'alt+b', prev_word },
|
||||
{ 'ctrl+right', next_word },
|
||||
{ 'alt+f', next_word },
|
||||
{ 'tab', complete },
|
||||
{ 'ctrl+i', complete },
|
||||
{ 'ctrl+a', go_home },
|
||||
{ 'home', go_home },
|
||||
{ 'ctrl+e', go_end },
|
||||
{ 'end', go_end },
|
||||
{ 'pgup', handle_pgup },
|
||||
{ 'pgdwn', handle_pgdown },
|
||||
@ -704,7 +731,10 @@ function get_bindings()
|
||||
{ 'ctrl+u', del_to_start },
|
||||
{ 'ctrl+v', function() paste(true) end },
|
||||
{ 'meta+v', function() paste(true) end },
|
||||
{ 'ctrl+bs', del_word },
|
||||
{ 'ctrl+w', del_word },
|
||||
{ 'ctrl+del', del_next_word },
|
||||
{ 'alt+d', del_next_word },
|
||||
{ 'kp_dec', function() handle_char_input('.') end },
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user