2009-07-04 9 views
0

この質問はthis threadに基づいています。MySQL用にVimのようなKを画面に表示する

問題:カーソルが

メートル、約 M YSQLを思い出させる
Ctrl-A Esc Ctrl-m 

によって単語の先頭にあるときにMySQLのマニュアルにアクセスします。

MySQLのマニュアルのスクリーンにVimのようなKを構築するにはどうすればいいですか?

+0

MySQLマニュアルのインストールに関するスレッドをhttp://stackoverflow.com/questions/1104536/unable-to-install-mysql-manuals-to-mac –

答えて

3

あなたはMySQL's documentation siteからのmanページをインストールしていると仮定:

/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以外の マニュアルを表示するために別のプログラムを使用している場合は、それに応じてスクリプトを変更する必要があります。

mysqlbugmysqlhotcopyperrormysqldumpresolveipmysqltest_embeddedmysql_setpermissionmysql_client_testmysql_find_rowsmysql_fix_privilege_tablesmysql_waitpidmysql_configmysql_client_test_embeddedmyisampackreplacemsql2mysqlmake_win_bin_distmy_print_defaults

私は上記のリンクで見つけるMySQLのmanページには、次のコマンドのドキュメント を含めます- stress - testplmysqlaccessmysql_secure_installationmysqlrunからservermysql_convert_table_formatmysql_zapmysql_fix_extensionsmyisamlogmyisam_ftdumpmysqlbinlogmysql_install_dbresolve_stack_dumpmysqlslapmysqlは - testplmysqld_safemysqladminmysqlshowmysql_tzinfo_to_sqlmysqltestmysqlbackupmysqld_multimysqlmysqldumpslowmysqlcheckmysql_upgrademysqlimportcomp_errmysqldmyisamchkinnochecksum

あなたがマニュアルを実行する場合ように、あなたはまた、あなたの.screenrc

zombie kr 

を追加することを検討することをお勧めしますそれが認識されないという言葉では、画面は自動的にウィンドウを閉じない(そしてエラーメッセージを隠す)わけではない。

+0

@rampion:バインドコマンドラインの 'bind -c ... -c escpaped'にバグがあるようです。私はそれを 'bindkey -m^m source/Users/masi/bin/screen/mysql-help.screen'でうまく修正しようとしました。 –

+0

@ rampion:どの画面を使用しますか?私は4.00.03(OS X)を使用しており、defzombieコマンドを持っていないようです。 –

+0

よく、エスケープされたスペルが間違っています。それは2つのコマンドであるため、2つのコマンドになっています。 – rampion

0

私はあなたが望むものを正確に実行するためにvimのラッパーを作成する方法を理解していませんが、vimに組み込まれている関数を使って同様の効果を得る方法を提案しているかもしれません。

:! <command>は、vimのKコマンドと同様のインターフェイスでシェルコマンドを実行できるようになります。それを行う最もクリーンな方法ではないかもしれませんが、:!を使用すると、vimを完全に離れることなく、特定の用語のMySQLマニュアルを素早く呼び出すことができます。

実際にvim用の独自のプラグインを作成する必要がある場合は、this articleがいくつかのポインタと、どこから開始するのかについての手助けをすることができます。

こちらがお役に立てば幸いです。

+0

に公開しました。問題は、このようなコンポーネントをScreenにビルドすることですターミナルのMySQLエラーメッセージがどこにあっても、それらのマニュアルを使用することができます。 ---このようなコンポーネントをVimにビルドすると、エディタに依存することになりますが、これは良いことではありません。 –

+0

ああ、あなたはvim用のプラグインを作るつもりはなく、あなたはScreen用のプラグインを作りたいと思っています。申し訳ありませんが、それはかなり明確ではありませんでした。 –

+0

私はVimのマッピングを書く前に、画面の代わりになる必要があることに気付きました。 –

0

私は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' 

My code gives you the percent sign to the bottom of a manual

+2

ここに私が実際に使っているものは次のとおりです:http://gist.github.com/139318 – rampion

+0

@rampion:あなたのコマンドについてこのスレッドを見てください。http://stackoverflow.com/questions/1120756/unable-to-understand-a-code-in-screenrc –

関連する問題