Иметь Vim-like K в Screen для MySQL
Этот вопрос основан на этой теме.
Проблема: получить доступ к руководству MySQL, когда курсор находится в начале слова,
Ctrl-A Esc Ctrl-m
где m напоминает о M ysql.
Как вы можете создать Vim-подобный K в Screen для руководств MySQL?
3 ответа
Предполагая, что вы установили справочные страницы с сайта документации 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
Тогда ваше связывание клавиш должно работать. Если вы используете другую программу для отображения руководства, кроме man
, вам придется изменить скрипт соответственно.
man
страницы для mysql, которые я нашел по ссылке выше, содержат только документацию по следующим командам:
mysqlbug
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
, так что, если вы запустите руководство по термину, который он не распознает, экран автоматически не закроет окно (и не скроет сообщение об ошибке).
Я люблю перерабатывать свои страницы Man так, чтобы я мог легко читать руководства. Я предлагаю следующее улучшение команды Rampion.
колокольчик - рапунцель
screen /bin/sh -c 'man `cat /tmp/screen-copied-term` || read'
мне
screen /bin/sh -c 'man `cat /tmp/screen-copied-term` > /tmp/manual | less /tmp/manual'
Хотя я не уверен, как начать с создания оболочки для vim, которая будет делать именно то, что вы хотите, я могу предложить, как вы можете добиться аналогичного эффекта с помощью функции, встроенной в vim.
:! <command>
позволит вам запускать команды оболочки с интерфейсом, аналогичным команде K vim. Это может быть не самый чистый способ сделать это, но с помощью :!
Вы должны быть в состоянии быстро вызвать руководства MySQL для данного термина, не покидая vim.
Если вам действительно нужно написать собственный плагин для vim, эта статья может дать вам несколько советов и указание, с чего начать.
Надеюсь, это поможет!