Hatena::Groupvim

bless {category => 'vim'}, shift

2010-02-15最近作った小物プラグイン

最近2つ小さなプラグインを作りました。

その2つのプラグインを紹介したいと思います。

追記:

ヘルプをそれぞれ更新した。

特にstickykey.vimの方はMacのコマンドキー*1について書き忘れてたので修正。


追記:

またヘルプを更新しました。

ここにあるヘルプはもう古いのでgithubの方を当たってください。


stickykey.vim

GitHub - tyru/stickykey.vim: Let meta keys get sticky

これはメタキーの入力を、メタキーを使わずにエミュレートするものです。

まだインサートモード(i), コマンドラインモード(c)、言語モード(l)でのみ動作します。


追記:

元ネタはShougoさんのgistから拝借しました。

Sticky shift in vim ? GitHub

(貼り忘れてた...申し訳ないです)


以下:helpからの引用です。

==============================================================================
概要					*stickykey-introduction*

このプラグインはスティッキーキーを実現するためのものです。
スティッキーキーとは、例えば<C-o>を押す場合に、
CtrlキーとOのキーを一緒に押すのではなく
「;o」と打つことで<C-o>の入力をエミュレートするものです。
(<Plug>(stickykey-ctrl)に「;」が割り当てられていた場合)

また例えばもしあなたがscreenを使っている場合、
screenのホットキーを入力するのはちょっと面倒です。
でもこのプラグインをインストールしていれば速く、
かつ確実にキー入力をVimに送ることができます。

なお、この文書では、キー入力をエミュレートするスティッキーキーのことを指す
場合には「スティッキーキー」と、このプラグイン自体のことを指す場合には
「stickykey」と表記します。


==============================================================================
インターフェース					*stickykey-interface*

==============================================================================
マッピング							*stickykey-mappings*

<Plug>(stickykey-ctrl)
<Plug>(stickykey-ctrl-remap)
	Ctrlキー用のスティッキーキーです。
	<Plug>(stickykey-ctrl-remap)は入力を再帰的に展開します。

<Plug>(stickykey-alt)
<Plug>(stickykey-alt-remap)
	Altキー用のスティッキーキーです。
	<Plug>(stickykey-alt-remap)は入力を再帰的に展開します。

<Plug>(stickykey-shift)
<Plug>(stickykey-shift-remap)
	Shiftキー用のスティッキーキーです。
	<Plug>(stickykey-shift-remap)は入力を再帰的に展開します。

<Plug>(stickykey-command)
<Plug>(stickykey-command-remap)
	MacのCommandキー用のスティッキーキーです。|<D-|
	<Plug>(stickykey-command-remap)は入力を再帰的に展開します。


==============================================================================
変数						*stickykey-variables*

g:stickykey_when_no_escaped_key			string (default: "thru")
	この変数はstickykeyがメタキーによってエスケープされた
	入力を見つけられなかった時の動作を定義するものです。
	例えば、<Plug>(stickykey-ctrl)が実行された後に
	<C-o>などのメタキーで修飾されたキーを受け取った場合などです。
	この変数のとる値は次のいずれかです。
		"nop":
			何も入力が無かったかの様に振る舞います。
		"thru":
			キーをメタキーで修飾せず実行します。
		"again":
			受け取ったキー入力を捨ててもう一回入力を受け付けます。

command-buffer.vim

GitHub - tyru/command-buffer.vim: small buffer for command-line ## THIS PLUGIN IS DEPRECATED. USE CMDWIN. (:help cmdwin)

以下:helpからの(ry

==============================================================================
概要					*cmdbuf-introduction*

コマンドラインはインサートモードほどは操作が自由ではありません。
omni補完のような強力な補完はありませんし、
何より<Esc>を押せばコマンドラインから離れてしまいます。
そこで考え方を変えて、編集しずらいコマンドラインで操作するのではなく、
一旦バッファでコマンドを組み立てて実行すればよいのです。
このプラグインはその一時バッファとそのためのインターフェースを提供します。


==============================================================================
インターフェース					*cmdbuf-interface*

==============================================================================
マッピング							*cmdbuf-default-mappings*

	nmap <buffer> <Esc> <Plug>(cmdbuf-close)

	nmap <buffer> <CR>      <Plug>(cmdbuf-execute-:)
	imap <buffer> <CR>      <Plug>(cmdbuf-execute-:)
	nmap <buffer> <C-CR>    <Plug>(cmdbuf-execute-/)
	imap <buffer> <C-CR>    <Plug>(cmdbuf-execute-/)
	nmap <buffer> <S-CR>    <Plug>(cmdbuf-execute-?)
	imap <buffer> <S-CR>    <Plug>(cmdbuf-execute-?)

	nmap <buffer> <C-g>:    <Plug>(cmdbuf-paste-to-cmdline-:)
	imap <buffer> <C-g>:    <Plug>(cmdbuf-paste-to-cmdline-:)
	nmap <buffer> <C-g>/    <Plug>(cmdbuf-paste-to-cmdline-/)
	imap <buffer> <C-g>/    <Plug>(cmdbuf-paste-to-cmdline-/)
	nmap <buffer> <C-g>?    <Plug>(cmdbuf-paste-to-cmdline-?)
	imap <buffer> <C-g>?    <Plug>(cmdbuf-paste-to-cmdline-?)


									*cmdbuf-customize-mappings*
これらのマッピングはデフォルトのものであり、
ユーザは自由に変えることができます。
変える場合は次のようにします。
<buffer>を付けないと他のバッファでも
マッピングされてしまうので気をつけてください。

	autocmd BufEnter __command_buffer__ call s:cmdbuf_mappings()

	func! s:cmdbuf_mappings()
		imap <buffer> <Esc> <Plug>(cmdbuf-close)
	endfunc

==============================================================================
<Plug>付きのマッピング				*cmdbuf-plug-mappings*

右の文字はモードを表しています。


<Plug>(cmdbuf-open)			(n)
	バッファを開きます。

<Plug>(cmdbuf-close)			(ni)
	バッファを閉じます。

<Plug>(cmdbuf-execute-:)		(ni)
<Plug>(cmdbuf-execute-/)
<Plug>(cmdbuf-execute-?)
	バッファの文字列をコマンドラインに挿入し、エンターを押します。

	最後の文字はコマンドラインのタイプを表していて、
		:はexコマンド
		/は前方検索コマンド
		?は後方検索コマンド
	をそれぞれ表しています。

<Plug>(cmdbuf-paste-to-cmdline-:)		(ni)
<Plug>(cmdbuf-paste-to-cmdline-/)
<Plug>(cmdbuf-paste-to-cmdline-?)
	バッファの文字列をコマンドラインに挿入します。
	エンターは押されず、各行の間にはg:cmdbuf_multiline_separator
	が挟まれて挿入されます。

<Plug>(cmdbuf-open-from-cmdline)		(c)
	コマンドラインの現在の文字列をバッファに挿入します。


==============================================================================
変数						*cmdbuf-variables*

g:cmdbuf_no_default_mappings				*g:cmdbuf_no_default_mappings*
									(デフォルト: 0)
	もしtrueならデフォルトのマッピングを用意しない。
	*cmdbuf-mappings* 参照。

g:cmdbuf_no_default_autocmd					*g:cmdbuf_no_default_autocmd*
									(デフォルト: 0)
	もしtrueならデフォルトのautocmd(BufEnter)を用意しない。
	*cmdbuf-autocmd* 参照。

g:cmdbuf_buffer_size						*g:cmdbuf_buffer_size*
									(デフォルト: 1)
	g:cmdbuf_open_commandの先頭に付けられる数値です。

g:cmdbuf_open_command						*g:cmdbuf_open_command*
									(デフォルト: "new")
	バッファを開くコマンドです。

g:cmdbuf_multiline_separator				*g:cmdbuf_multiline_separator*
									(デフォルト: " | ")
	<Plug>(cmdbuf-paste-to-cmdline-...)系のマッピングが
	複数行に渡る時にこの文字列が各行の間に挟まれて
	コマンドラインに挿入されます。


まとめ

どちらも数時間で作り上げたものですが、とても有用です。

しばらくしたらwww.vim.orgにもアップロードしたいと思います。

*1::help <D-

JennahJennah 2011/07/08 00:47 Big help, big help. And supertlaive news of course.

ivggpbvivggpbv 2011/07/08 16:33 8ldIo6 <a href="http://vnibrkwmewii.com/">vnibrkwmewii</a>

ozuspsozusps 2011/07/09 21:36 MKioKW , [url=http://iynavxcxuhuy.com/]iynavxcxuhuy[/url], [link=http://rbivnzpcrfcl.com/]rbivnzpcrfcl[/link], http://awfaeyjthyan.com/

tyrutyru 2011/07/09 21:37 thanks for spamming!!!

sfnxyqwjwxsfnxyqwjwx 2011/07/11 01:31 Sm7XKd <a href="http://ebzequycfzww.com/">ebzequycfzww</a>

euvtjvatezfeuvtjvatezf 2011/07/11 23:29 oZbUTI , [url=http://stvtwxpvzkka.com/]stvtwxpvzkka[/url], [link=http://ytbzqhuzyqwk.com/]ytbzqhuzyqwk[/link], http://qftzoybqdpag.com/

SantaSanta 2013/03/02 17:18 What's it take to bcemoe a sublime expounder of prose like yourself?

ゲスト



トラックバック - http://vim.g.hatena.ne.jp/tyru/20100215