awful: add some shortcut keys in prompt

Ctrl + b - Move back a char
Ctrl + c - Cancel
Ctrl + d - Delete from under the cursor
Ctrl + f - Move forward a char
Ctrl + j - Enter
Ctrl + h - BackSpace
Ctrl + k - Delete to EOL
Ctrl + m - Enter
Ctrl + u - Delete backward from cursor

Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
MATSUU Takuto 2008-08-03 11:37:48 +02:00 committed by Julien Danjou
parent 4f87935cd4
commit e7b4d96ab3
1 changed files with 27 additions and 1 deletions

View File

@ -796,9 +796,13 @@ function P.prompt(args, textbox, exe_callback, completion_callback)
-- Get out cases
if has_ctrl then
if key == "g" then
if key == "c" or key == "g" then
textbox.text = ""
return false
elseif key == "j" or key == "m" then
textbox.text = ""
exec_callback(command)
return false
end
else
if key == "Return" then
@ -815,8 +819,30 @@ function P.prompt(args, textbox, exe_callback, completion_callback)
if has_ctrl then
if key == "a" then
cur_pos = 1
elseif key == "b" then
if cur_pos > 1 then
cur_pos = cur_pos - 1
end
elseif key == "d" then
if cur_pos <= #command then
command = command:sub(1, cur_pos - 1) .. command:sub(cur_pos + 1)
end
elseif key == "e" then
cur_pos = #command + 1
elseif key == "f" then
if cur_pos <= #command then
cur_pos = cur_pos + 1
end
elseif key == "h" then
if cur_pos > 1 then
command = command:sub(1, cur_pos - 2) .. command:sub(cur_pos)
cur_pos = cur_pos - 1
end
elseif key == "k" then
command = command:sub(1, cur_pos - 1)
elseif key == "u" then
command = command:sub(cur_pos, #command)
cur_pos = 1
elseif key == "w" then
local wstart = 1
local wend = 1