Чтобы иметь Vim-подобный K в Screen для MySQL

Этот вопрос основан на этой теме.

Проблема: для доступа к руководству MySQL, когда курсор находится в начале слова

Ctrl-A Esc Ctrl-m

где m напоминает о M ysql.

Как вы можете создавать руководства Vim-like K in Screen для MySQL?

Ответ 1

Предполагая, что вы установили man-страницы из сайт документации по MySQL:

Поместите следующее в /path/to/mysql-help.screen:

# mysql-help.screen

# prevent messages from slowing this down
msgminwait 0
# copy term starting at cursor
copy
stuff " e "
# write term to a file
writebuf /tmp/screen-copied-term
# open that file in man in a new screen window
# (use `read` to pause on error, so user can see error message)
screen /bin/sh -c 'man `cat /tmp/screen-copied-term` || read'
# turn message waiting back on
msgminwait 1

# vi: ft=screen

Затем добавьте это в свой ~/.screenrc

# Have CTRL-A ESC put you in a mode to accept commands in the 'escaped' class
bind \033 command -c escaped
# add CTRL-M as an 'escaped' class command to run the given screen script
bind -c escaped ^M source /path/to/mysql-help.screen

Тогда ваш keybinding должен работать. Если вы используете другую программу для отображения в руководстве, отличном от man, вам придется изменить script соответственно.

Страницы man для mysql, которые я нашел по ссылке выше, включают только документацию для следующих команд:

mysqlhotcopy perror mysqldump resolveip mysqltest_embedded mysql_setpermission mysql_client_test mysql_find_rows mysql_fix_privilege_tables mysql_waitpid mysql_config mysql_client_test_embedded myisampack replace msql2mysql make_win_bin_dist my_print_defaults mysql - stress - test. pl mysqlaccess mysql_secure_installation mysql. server mysql_convert_table_format mysql_zap mysql_fix_extensions myisamlog myisam_ftdump mysqlbinlog mysql_install_db resolve_stack_dump mysqlslap mysql - test - run. pl mysqld_safe mysqladmin mysqlshow mysql_tzinfo_to_sql mysqltest mysqlbackup mysqld_multi mysql mysqldumpslow mysqlcheck mysql_upgrade mysqlimport comp_err mysqld myisamchk innochecksum

Вы также можете рассмотреть возможность добавления

zombie kr

на ваш .screenrc, так что если вы запустите руководство по термину, который он не распознает, экран автоматически не закрывает окно (и скрывает сообщение об ошибке).

Ответ 2

Пока я не уверен, как начать создавать оболочку для vim, чтобы делать именно то, что вы хотите, я мог бы сделать предложение о том, как вы можете добиться подобного эффекта с помощью функции, встроенной в vim.

:! <command> позволит вам запускать команды оболочки с аналогичным интерфейсом с командой vim K. Это может быть не самый чистый способ сделать это, но, используя :!, вы сможете быстро называть руководства MySQL для данного термина без полного выхода из vim.

Если вам действительно нужно написать свой собственный плагин для vim, эта статья может дать вам несколько указателей и поручить, где для начала.

Надеюсь, это поможет!

Ответ 3

Мне нравится перерабатывать мои Man-страницы, чтобы я мог легко читать руководства. Я предлагаю следующее улучшение для команды Rampion.

Рэмпион

screen /bin/sh -c 'man `cat /tmp/screen-copied-term` || read'

Me

screen /bin/sh -c 'man `cat /tmp/screen-copied-term` > /tmp/manual | less /tmp/manual'

Мой код дает вам знак процента внизу руководства.