mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-22 20:36:50 +03:00
fix: main.c keys handler
add more keys into mc.keymap fix: CK_SingleDirsizeCmd event add default keys (alt-'.', alt-'+') mc.keymap Signed-off-by: Ilia Maslakov <il.smind@google.com> Added alt-shift-h hotkey Add some documentation about keymap file. Replace some symbols into names '.' to 'dot', '?' to question, etc. Signed-off-by: Slava Zanko <slavazanko@gmail.com>
This commit is contained in:
parent
23b81fac46
commit
87102cc7e8
@ -59,6 +59,9 @@ Display the compiled\-in search paths for Midnight Commander files.
|
||||
Reset softkeys to their default from the termcap/terminfo
|
||||
database. Only useful on HP terminals when the function keys don't work.
|
||||
.TP
|
||||
.I \-K файл
|
||||
Specify a name of keymap file in the command line.
|
||||
.TP
|
||||
.I \-l file, \-\-ftplog=file
|
||||
Save the ftpfs dialog with the server in file.
|
||||
.TP
|
||||
@ -268,7 +271,16 @@ release it, then type the character <chr>.
|
||||
means hold the Shift key down while typing <chr>.
|
||||
.PP
|
||||
All input lines in the Midnight Commander use an approximation to
|
||||
the GNU Emacs editor's key bindings.
|
||||
the GNU Emacs editor's key bindings (default).
|
||||
.PP
|
||||
You may redefine key bindings. See
|
||||
.\"LINK2"
|
||||
.I redefine hotkey bindings
|
||||
.\"Keys_redefine"
|
||||
.PP
|
||||
for more info. All other key bindings (described in this manual) relative
|
||||
to default behavior.
|
||||
|
||||
.PP
|
||||
There are many sections which tell about the keys. The following are
|
||||
the most important.
|
||||
@ -304,6 +316,52 @@ Input Line Keys
|
||||
.\"Input Line Keys"
|
||||
are used for editing input lines. This means both the command line and
|
||||
the input lines in the query dialogs.
|
||||
|
||||
.\"NODE " Keys_redefine"
|
||||
.SH " Redefine hotkey bindings"
|
||||
Hotkey bindings may be readed from external file (keymap\-file).
|
||||
A keymap\-file is searched on the following algorithm (to the first one found):
|
||||
.IP
|
||||
.br
|
||||
1) command line option
|
||||
.BR \-K
|
||||
.BR \<keymap\>
|
||||
or
|
||||
.BR \-\-keymap=\<keymap\>
|
||||
.br
|
||||
2) Environment variable
|
||||
.BR MC_KEYMAP
|
||||
.br
|
||||
3) In config file parameter
|
||||
.BR keymap
|
||||
in section
|
||||
.BR \[Midhight
|
||||
.BR Commander\]
|
||||
.br
|
||||
4) File
|
||||
.BR ~/.mc/mc.keymap
|
||||
.br
|
||||
5) File
|
||||
.BR /etc/mc/mc.keymap
|
||||
.br
|
||||
6) File
|
||||
.BR @prefix@/share/mc/mc.keymap
|
||||
|
||||
.PP
|
||||
Command line option, environment variable and parameter in config file may
|
||||
contain the absolute path to the keymap\-file (with the extension \.keymap
|
||||
or without it). Search of keymap\-file will occur in (to the first one found):
|
||||
.IP
|
||||
1)
|
||||
.BR ~/.mc/
|
||||
.br
|
||||
2)
|
||||
.BR /etc/mc/
|
||||
.br
|
||||
3)
|
||||
.BR @prefix@/share/mc/
|
||||
.br
|
||||
|
||||
.\"NODE " Miscellaneous Keys"
|
||||
.SH " Miscellaneous Keys"
|
||||
Here are some keys which don't fall into any of the other categories:
|
||||
|
@ -72,6 +72,10 @@ UNIX\-подобных операционных системах.
|
||||
termcap/terminfo. Этот ключ используется только на терминалах HP, где
|
||||
функциональные клавиши не работают.
|
||||
.TP
|
||||
.I \-K файл
|
||||
Задаёт файл клавиатурных команд для переопределения привязки хоткеев
|
||||
к действиям.
|
||||
.TP
|
||||
.I \-l файл
|
||||
Сохранить диалог с ftp\-сервером, а также отладочную информацию smbfs в
|
||||
файл file.
|
||||
@ -259,8 +263,18 @@ Control и, удерживая ее, нажмите (коротким щелчк
|
||||
S\-<символ> означает, что нужно держать в нажатом состоянии клавишу Shift
|
||||
во время удара по клавише <символ>.
|
||||
.PP
|
||||
Все строки ввода в Midnight Commander поддерживают соглашения об
|
||||
использовании "горячих" клавиш, принятые в редакторе GNU Emacs.
|
||||
Все строки ввода в Midnight Commander по умолчанию поддерживают соглашения
|
||||
об использовании "горячих" клавиш, принятые в редакторе GNU Emacs.
|
||||
.PP
|
||||
Вы можете переопределить клавиатурные привязки хоткеев к командам, как
|
||||
это описано в разделе
|
||||
.\"LINK2"
|
||||
.I переопределение клавиатурных команд
|
||||
.\"Keys_redefine"
|
||||
.PP
|
||||
Все последующие описания клавиатурных команд относятся к поведению по
|
||||
умолчанию.
|
||||
|
||||
.PP
|
||||
Описания клавиатурных команд даются в нескольких разделах помощи.
|
||||
Наиболее важными являются следующие разделы:
|
||||
@ -299,6 +313,54 @@ S\-<символ> означает, что нужно держать в нажа
|
||||
.\"Input Line Keys"
|
||||
используются как при редактировании командной строки, так и других строк
|
||||
ввода, появляющихся в различных запросах программы.
|
||||
|
||||
.\"NODE " Keys_redefine"
|
||||
.SH " Переопределение клавиатурных команд"
|
||||
Клавиатурные команды могут быть прочитаны из внешнего файла.
|
||||
Поиск файла клавиатурных команд производится по следующему алгоритму
|
||||
(до первого нахождения файла):
|
||||
.IP
|
||||
.br
|
||||
1) параметр командной строки
|
||||
.BR \-K
|
||||
.BR \<файл\>
|
||||
или
|
||||
.BR \-\-keymap=\<файл\>
|
||||
.br
|
||||
2) Переменная окружения
|
||||
.BR MC_KEYMAP
|
||||
.br
|
||||
3) В конфигурационном файле параметр
|
||||
.BR keymap
|
||||
в секции
|
||||
.BR \[Midhight
|
||||
.BR Commander\]
|
||||
.br
|
||||
4) Файл
|
||||
.BR ~/.mc/mc.keymap
|
||||
.br
|
||||
5) Файл
|
||||
.BR /etc/mc/mc.keymap
|
||||
.br
|
||||
6) Файл
|
||||
.BR @prefix@/share/mc/mc.keymap
|
||||
|
||||
.PP
|
||||
Параметры в трёх первых случаях могут содержать абсолютный путь к файлу
|
||||
клавиатурных команд либо просто название схемы привязки (с расширением
|
||||
\.keymap либо без него). В данном случае поиск файла клавиатурных команд
|
||||
будет происходить по следующим каталогам (до первого нахождения):
|
||||
.IP
|
||||
1)
|
||||
.BR ~/.mc/
|
||||
.br
|
||||
2)
|
||||
.BR /etc/mc/
|
||||
.br
|
||||
3)
|
||||
.BR @prefix@/share/mc/
|
||||
.br
|
||||
|
||||
.\"NODE " Miscellaneous Keys"
|
||||
.SH " Разные команды"
|
||||
Имеется несколько действий, ассоциированных с некоторыми комбинациями
|
||||
|
@ -723,10 +723,8 @@ static void
|
||||
edit_set_keymap (WEdit *edit)
|
||||
{
|
||||
edit->user_map = default_editor_keymap;
|
||||
if (editor_keymap && editor_keymap->len > 0) {
|
||||
if (editor_keymap && editor_keymap->len > 0)
|
||||
edit->user_map = (global_key_map_t *) editor_keymap->data;
|
||||
mc_log ("edit->user_map");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -156,7 +156,7 @@ ViewMoveUp = k; y; up
|
||||
ViewMoveDown = j; delete; down
|
||||
|
||||
[viewer]
|
||||
ViewSearch = ?; /; f7
|
||||
ViewSearch = question; slash; f7
|
||||
ViewContinueSearch = ctrl-r; ctrl-s; f17
|
||||
ViewMoveToBol = home
|
||||
ViewMoveToEol = end
|
||||
@ -180,18 +180,19 @@ ViewToggleRuler = alt-r
|
||||
[main]
|
||||
CmdMenuLastSelected = f19
|
||||
CmdQuietQuit = f20
|
||||
CmdSingleDirsize = ctrl-@
|
||||
CmdSingleDirsize = ctrl-space
|
||||
CmdCopyCurrentPathname = alt-a
|
||||
CmdCopyOtherPathname = alt-A
|
||||
CmdQuickCd = alt-c
|
||||
CmdQuickChdir = ctrl-\\
|
||||
CmdQuickChdir = ctrl-backslash
|
||||
CmdSuspend = ctrl-z
|
||||
CmdFilteredView = alt-!
|
||||
CmdFind = alt-?
|
||||
CmdFilteredView = alt-exclamation
|
||||
CmdFind = alt-question
|
||||
CmdReread = ctrl-r
|
||||
CmdToggleListing = alt-t
|
||||
CmdSwapPanel = ctrl-u
|
||||
ShowCommandLine = ctrl-o
|
||||
CmdToggleShowHidden = alt-dot
|
||||
|
||||
ExtMap1 = ctrl-x
|
||||
[main:xmap]
|
||||
@ -214,12 +215,12 @@ PanelEditNew = F14
|
||||
PanelCopyLocal = F15
|
||||
PanelRenameLocal = F16
|
||||
PanelDeleteLocal = F18
|
||||
PanelReverseSelection = alt-*
|
||||
PanelSelect = plus
|
||||
PanelUnselect = minus
|
||||
PanelReverseSelection = alt-asterisk
|
||||
PanelSelect = alt-plus
|
||||
PanelUnselect = alt-minus
|
||||
PanelCtrlNextPage = ctrl-pgdn
|
||||
PanelCtrlPrevPage = ctrl-pgup
|
||||
PanelDirectoryHistoryList = alt-H
|
||||
PanelDirectoryHistoryList = alt-shift-h
|
||||
PanelDirectoryHistoryNext = alt-u
|
||||
PanelDirectoryHistoryPrev = alt-y
|
||||
PanelGotoBottomFile = alt-j
|
||||
@ -227,15 +228,14 @@ PanelGotoMiddleFile = alt-r
|
||||
PanelSyncOtherPanel = alt-i
|
||||
PanelGotoTopFile = alt-g
|
||||
PanelSetPanelEncoding = ctrl-t
|
||||
PanelMoveHome = home
|
||||
PanelMoveEnd = end
|
||||
|
||||
PanelMoveHome = alt-lt; home
|
||||
PanelMoveEnd = alt-gt; end
|
||||
|
||||
[panel:xmap]
|
||||
|
||||
[input]
|
||||
InputBol = ctrl-a; alt-<; home
|
||||
InputEol = ctrl-e; alt->; end
|
||||
InputBol = ctrl-a; alt-lt; home
|
||||
InputEol = ctrl-e; alt-gt; end
|
||||
InputMoveLeft = left; alt-left
|
||||
InputWordLeft = ctrl-left
|
||||
InputBackwardChar = ctrl-b
|
||||
|
@ -304,7 +304,7 @@
|
||||
#define CK_AddHotlist 7062
|
||||
#define CK_QuitCmd 7064
|
||||
#define CK_CopyOtherTarget 7065
|
||||
#define CK_CopyOthertReadlink 7066
|
||||
#define CK_ToggleShowHidden 7066
|
||||
|
||||
/* panels */
|
||||
#define CK_PanelChdirOtherPanel 8001
|
||||
|
@ -274,12 +274,12 @@ static const name_key_map_t command_names[] = {
|
||||
{ "CmdUserFileMenu", CK_UserFileMenuCmd },
|
||||
{ "CmdView", CK_ViewCmd },
|
||||
{ "CmdViewFile", CK_ViewFileCmd },
|
||||
{ "CmdCmdCopyCurrentReadlink", CK_CopyCurrentReadlink },
|
||||
{ "CmdCopyCurrentReadlink", CK_CopyCurrentReadlink },
|
||||
{ "CmdCopyOtherReadlink", CK_CopyOtherReadlink },
|
||||
{ "CmdAddHotlist", CK_AddHotlist },
|
||||
{ "CmdQuit", CK_QuitCmd },
|
||||
{ "CmdCopyOtherTarget", CK_CopyOtherTarget },
|
||||
{ "CmdCopyOthertReadlink", CK_CopyOthertReadlink },
|
||||
{ "CmdToggleShowHidden", CK_ToggleShowHidden },
|
||||
|
||||
/* panel */
|
||||
{ "PanelChdirOtherPanel", CK_PanelChdirOtherPanel },
|
||||
@ -611,6 +611,7 @@ const global_key_map_t default_main_map[] = {
|
||||
{XCTRL ('u'), CK_SwapCmd},
|
||||
/* View output */
|
||||
{XCTRL ('o'), CK_ShowCommandLine},
|
||||
{ALT ('.'), CK_ToggleShowHidden},
|
||||
{XCTRL ('x'), CK_StartExtMap1 },
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
@ -47,4 +47,4 @@ extern const global_key_map_t default_input_keymap[];
|
||||
extern const global_key_map_t default_main_map[];
|
||||
extern const global_key_map_t default_main_x_map[];
|
||||
|
||||
const global_key_map_t default_input_keymap[];
|
||||
extern const global_key_map_t default_input_keymap[];
|
||||
|
10
src/main.c
10
src/main.c
@ -1215,7 +1215,7 @@ midnight_execute_cmd(int command)
|
||||
quiet_quit_cmd ();
|
||||
break;
|
||||
case CK_SingleDirsizeCmd:
|
||||
single_dirsize_cmd ();
|
||||
smart_dirsize_cmd ();
|
||||
break;
|
||||
case CK_CopyCurrentPathname:
|
||||
copy_current_pathname ();
|
||||
@ -1251,10 +1251,13 @@ midnight_execute_cmd(int command)
|
||||
view_other_cmd ();
|
||||
break;
|
||||
case CK_QuitCmd:
|
||||
quit_cmd ();
|
||||
break;
|
||||
case CK_CompareDirsCmd:
|
||||
compare_dirs_cmd ();
|
||||
break;
|
||||
case CK_ReselectVfs:
|
||||
reselect_vfs ();
|
||||
break;
|
||||
case CK_CopyCurrentTagged:
|
||||
copy_current_tagged ();
|
||||
@ -1265,7 +1268,7 @@ midnight_execute_cmd(int command)
|
||||
case CK_CopyCurrentReadlink:
|
||||
copy_current_readlink ();
|
||||
break;
|
||||
case CK_CopyOthertReadlink:
|
||||
case CK_CopyOtherReadlink:
|
||||
copy_other_readlink ();
|
||||
break;
|
||||
case CK_ChmodCmd:
|
||||
@ -1300,6 +1303,9 @@ midnight_execute_cmd(int command)
|
||||
jobs_cmd ();
|
||||
break;
|
||||
#endif
|
||||
case CK_ToggleShowHidden:
|
||||
toggle_show_hidden ();
|
||||
break;
|
||||
case CK_StartExtMap1:
|
||||
ctl_x_cmd ();
|
||||
break;
|
||||
|
@ -152,12 +152,31 @@ key_code_name_t key_name_conv_tab[] = {
|
||||
{(int) '+', "plus", N_("Plus")},
|
||||
{(int) '-', "minus", N_("Minus")},
|
||||
{(int) '*', "asterisk", N_("Asterisk")},
|
||||
{(int) '.', "dot", N_("Dot")},
|
||||
{(int) '<', "lt", N_("Less than")},
|
||||
{(int) '>', "gt", N_("Great than")},
|
||||
{(int) '=', "equal", N_("Equal")},
|
||||
{(int) ',', "comma", N_("Comma")},
|
||||
{(int) '\'', "apostrophe", N_("Apostrophe")},
|
||||
{(int) ':', "colon", N_("Colon")},
|
||||
{(int) '!', "exclamation", N_("Exclamation mark")},
|
||||
{(int) '?', "question", N_("Question mark")},
|
||||
{(int) '&', "ampersand", N_("Ampersand")},
|
||||
{(int) '$', "dollar", N_("Dollar sign")},
|
||||
{(int) '"', "quota", N_("Quotation mark")},
|
||||
{(int) '^', "caret", N_("Caret")},
|
||||
{(int) '~', "tilda", N_("Tilda")},
|
||||
{(int) '`', "prime", N_("Prime")},
|
||||
{(int) '_', "underline", N_("Underline")},
|
||||
{(int) '_', "understrike", N_("Understrike")},
|
||||
{(int) '|', "pipe", N_("Pipe")},
|
||||
{(int) '\n', "enter", N_("Enter")},
|
||||
{(int) '\t', "tab", N_("Tab key")},
|
||||
{(int) ' ', "space", N_("Space key")},
|
||||
{(int) '/', "slash", N_("Slash key")},
|
||||
{(int) '\\', "backslash", N_("Backslash key")},
|
||||
{(int) '#', "number", N_("Number sign #")},
|
||||
{(int) '#', "hash", N_("Number sign #")},
|
||||
|
||||
/* meta keys */
|
||||
{KEY_M_CTRL, "control", N_("Ctrl")},
|
||||
|
Loading…
Reference in New Issue
Block a user