くふんを狙え(vimグループ) このページをアンテナに追加 RSSフィード

くふんを狙え

 | 

2008-07-28

SKKをVimで使えるようにするプラグインskk.vim、を改悪してみた ( skk.vim 狙え版の公開と、ここまでの変更点のまとめ )

10:01 | SKKをVimで使えるようにするプラグインskk.vim、を改悪してみた ( skk.vim 狙え版の公開と、ここまでの変更点のまとめ ) - くふんを狙え(vimグループ) を含むブックマーク はてなブックマーク - SKKをVimで使えるようにするプラグインskk.vim、を改悪してみた ( skk.vim 狙え版の公開と、ここまでの変更点のまとめ ) - くふんを狙え(vimグループ) SKKをVimで使えるようにするプラグインskk.vim、を改悪してみた ( skk.vim 狙え版の公開と、ここまでの変更点のまとめ ) - くふんを狙え(vimグループ) のブックマークコメント

はじめに

SKKをVimで使えるようにする私的必須プラグインskk.vim、の改悪第二弾。

今回は、skk.vim 狙え版 ( 20080728 ) の公開と、これまでの変更点をまとめてみる。

SKK Manual: 事項索引を見ながら、簡単に実装できそうなものを追加してみた。

もう後方互換性はない。ただ気にならない程度の差異でおさまっていると思う。

変更点まとめ

以前からの変更も含めて、簡単にまとめると以下。

  • skk_sticky_keyの追加 ( sticky-shift )
  • skk_kakutei_keyの追加 ( 明示的確定 )
  • skk_use_color_cursor, skk_cursor_*_color の追加 ( モードごとのカーソル色付け )
  • skk_*_mode_string の追加 ( モードごとの文字列 )
  • 日付入力機能の追加 ( かな/カナで @ )
  • (重要)タブを\tに置換したら差分が大きくなって、はりつけられなくなった

ダウンロード

http://khkh.o0o0.jp/vim/skk.vim.patch.20080728

変更点の詳細説明

skk_sticky_keyの追加 ( sticky-shift )

以前も説明したと思うが、念のため。

SKK的な入力だと左手小指への負担が、それはもうEmacs並でかなりキてるので、sticky-shiftぽいものを実装した。sticky-shiftについてはGoogleさんでよろしく。簡単かつ、いいかげんに説明すると、Shiftと英字の同時押しではなく、任意のキーを押してから英字を押す。Shiftの位置変更と、同時押しの回避で、負担が減る。そういう機能。

使い方は以下のような感じ。

let g:skk_sticky_key = ';'

機能をオフにしたい場合はskk_sticky_keyを:unlet!してください。

skk_kakutei_keyの追加 ( 明示的確定 )

変換時の確定は通常、「<CR>」か「<C-j>」か「印字可能な文字」で行うが、印字可能な文字でない場合には、<C-j>を使うことが多い。左手小指が痛い。

そこでskk_kakutei_keyですよ。

確定キーを押した時点で変換が確定する。デフォルトでは<C-j>になっている。

使い方は以下のような感じ。

let g:skk_kakutei_key = '.'

意外と多い「間違って▽モードを開始してしまう」というシチュエーションで強制される<C-j>が減ることで、左手小指は苦痛からすこしは開放されるはず。

skk_use_color_cursor, skk_cursor_*_color の追加 ( モードごとのカーソル色付け )

注意:この機能はWin32環境でGUI版のみで有効です。

モードを表す文字列は、skk.vimデフォルトで使用していれば、'ruler'の一部として表示される。

でも、普通の人はずっと'ruler'を眺めているわけじゃない。普通はカーソル付近を見ているわけだ。じゃあ、モードを表すなら、どこに表示するのがいいか。そんなの、カーソルに決まってる。

というわけで、モードごとのカーソルの色付け機能です。

とりあえず、デフォルトの色で使ってみるといいでしょう。

let g:skk_use_color_cursor = 1

これで、カーソルが「かなモード」「カナモード」「アスキーモード」「全英モード」「SKK abbrevモード」で色付け/色分けされるはず。もし、それぞれの色を変えたい場合は、以下のように個々に指定してやるといい。

let g:skk_use_color_cursor = 1
let g:skk_cursor_hiragana_color = '#ff0000' " かなモード
let g:skk_cursor_katakana_color = '#00ff00' " カナモード
let g:skk_cursor_jisx0208_color = '#ffcc00' " 全英モード
let g:skk_cursor_latin_color    = '#000000' " アスキーモード
let g:skk_cursor_abbrev_color   = '#0000ff' " SKK abbrevモード

モードがすぐに分かれば、無駄なモード切替(<C-j>)が減り、負担が減るに違いない。

skk_*_mode_string の追加 ( モードごとの文字列 )

カーソルの色付けができれば、もうモード文字列なんてどうでもいい?いや、違う。モードの文字列文字列できっちり表示させたい。表示の仕方はやっぱり人それぞれ。

そこで、モードごとの文字列を指定できるようにした。

デフォルトを以前のskk.vimと変更した。ここで後方互換性を失った。代わりにddskkにすこし近づいたはずだ*1

使い方は以下。コメントにskk.vimの場合の設定例を示しておいた。その値に設定すればskk.vimと同じ表示になるはずだ。

let g:skk_latin_mode_string = 'SKK' " アスキーモード ( SKK:aA )
let g:skk_hiragana_mode_string = 'かな' " かなモード ( SKK:あ )
let g:skk_katakana_mode_string = 'カナ' " カナモード ( SKK:ア )
let g:skk_jisx0208_latin_mode_string = '全英' " 全英モード ( SKK:A )
let g:skk_abbrev_mode_string = 'aあ' " SKK abbrevモード ( SKK:aあ )

おまけとして、'statusline'を自分で変更している場合に'statusline'にSKKのモードを表示させる方法を書いておく。

function! StlFnc()
  return '[' . (&l:ft != '' ? &l:ft . ',' : '') . &l:ff[0] . ',' . (&l:fenc != '' ? &l:fenc : &enc) . ']'
endfunction
set statusline=%<%t\ %R%H%W%m%{StlFnc()}%{exists('*SkkGetModeStr')?SkkGetModeStr():''}%=%B,%c%V,%4l/%4L(%3p%%)
" %{exists('*SkkGetModeStr')?SkkGetModeStr():''} の部分がそう。自分の'statusline'に組み込めばOK
日付入力機能の追加 ( かな/カナで @ )

日付を入力したい場面というのはたくさんあると思う。ddskkにも日付を挿入する機能がデフォルトで備わっているようなので、

本来skk.vim自体を修正する必要はなかったが、skk.vimでもデフォルトで使用できるように組み込んでおいた。

かな/カナモードで@を押せば、日付が入力される。

ここでは、使い方ではなく無効にしたい場合(オリジナルのskk.vimに戻したい場合)を書いておく。以下の一行を加えれば良い。

let g:skk_user_rom_func_rules = "@\tkana . '@'\<NL>"

そうではなくて、日付のフォーマットが気に食わない。そういう場合は、以下のような要領で変更してやればいい。

let g:skk_user_rom_func_rules = "@\tkana . strftime('%Y-%m-%d %H:%M:%S')\<NL>"
(重要)タブを\tに置換したら差分が大きくなって、はりつけられなくなった

以上見てきたような修正は、差分としてはさほど大きくはない。せいぜい50行程度だと思う。

skk.vimを見ていて、イライラした部分として文字列の中のタブが直接タブで書かれていることだ。どうしても\tに直したかった。はじめに、自分のスタイルで読みたいと思い :retab を実行したら、動作しなくなった。信じられない。

そこで、skk_rom_kana_rules という巨大な変数(ローマ字の変換ルール)のタブを\tに置換した。その結果、差分が異常に大きくなった。

本来、ここにコードを直接はりつけるはずだったが、できなくなった。なので別にアップロードしてURLをはることにした。

最後に

これ、いまだに作者さんに連絡なしに編集してる。怒られないかとビクビクしてる。

もし使ってみた人が居たら感想ほしい。改善点しりたい。使われない、おれ、さみしい。

本家へのリンクを貼り忘れてたので修正

skk_use_color_cursorをskk_use_cursor_colorと間違えていたので修正

*1:ddskkを触ったことがないので、本当に近づいたかは分からない

tokuyamatokuyama2008/08/03 05:05すげえ便利に vim + skk + sticky 使ってますよ!
本当に役立ってます。 emacsから帰ってきました。

XadrianXadrian2011/07/07 16:05Big help, big help. And superlative news of cousre.

uxbgkocpjquxbgkocpjq2011/07/08 16:35pBbxvB <a href="http://qzjfigdlpkme.com/">qzjfigdlpkme</a>

zfuxdgxssddzfuxdgxssdd2011/07/10 19:21yKTefa <a href="http://jrarkcfbmiap.com/">jrarkcfbmiap</a>

tweiistweiis2011/07/11 23:37rFAJfR , [url=http://uomekbctonae.com/]uomekbctonae[/url], [link=http://kfkxwjaktyug.com/]kfkxwjaktyug[/link], http://evphwlojvhzt.com/

AncuAncu2012/09/11 16:54I had no idea how to approach this before-now I'm locked and loeadd.

advgplradvgplr2012/09/12 08:58rHtV0y <a href="http://tynidxpuiwxq.com/">tynidxpuiwxq</a>

qfilhpjqfilhpj2012/09/12 20:03Z3qxvy , [url=http://tozrlvlsfxdi.com/]tozrlvlsfxdi[/url], [link=http://kjeapoyuajxd.com/]kjeapoyuajxd[/link], http://xhatynfvlynd.com/

newhlnqljnewhlnqlj2012/09/13 08:56puTPzE <a href="http://lizwxnifbijx.com/">lizwxnifbijx</a>

krnfyvxpkrnfyvxp2012/09/14 07:40TnltV5 , [url=http://jgxhccdotuvt.com/]jgxhccdotuvt[/url], [link=http://olwhtlygabdn.com/]olwhtlygabdn[/link], http://bnmoodfpgktt.com/

StaalopStaalop2018/01/29 10:09Where To Purchase Stendra Avanafil <a href=http://cialicost.com>cialis</a> Is Suhagra Otc In Canada Tinnitus Propecia Generico

DiaBuroniDiaBuroni2018/04/19 18:51Cialis Normal Cephalexin 500 Mg Reviews <a href=http://cialiviag.com>buy cialis</a> Prix Officiel Cialis Belgique

DiaBuroniDiaBuroni2018/05/03 22:59Cialis Over The Counter <a href=http://cialviag.com>generic 5mg cialis best price</a> Levitra Sales In Usa Cephalexin Is

SEObemSEObem2018/05/08 21:45
http://seorussian.ru - оптимизация и продвижение сайта - http://seorussian.ru - seorussian.ru

JustinSlunkJustinSlunk2018/05/09 20:30Write My Paper - EssayErudite.com

Looking for an expert to <a href=https://essayerudite.com/write-my-paper/>write my paper</a> for you? You are at the right place.
Providing superior writing service appears to be our main specialization and passion.
Our website is the best destination for every English-speaking student who calls for assistance when handling his or her daily academic tasks.

<a href="https://essayerudite.com/write-my-paper/" />write my paper</a>

Write My Paper - https://essayerudite.com/write-my-paper/

WilliamtoomsWilliamtooms2018/05/09 20:45Buy Essay - EssayErudite.com

Where to <a href=https://essayerudite.com/buy-essay/>buy essay</a> online ? Our experienced writers can boast higher degrees in addition to exceptional writing skills.
You now have a great chance to buy essay papers online with only a couple of clicks.

<a href="https://essayerudite.com/buy-essay/" />Buy Essay</a>

Buy Essay Online - https://essayerudite.com/buy-essay/

HenryThimeHenryThime2018/05/09 21:30Paper Writing Service - EssayErudite.com

We value excellent academic writing and strive to provide outstanding <a href=https://essayerudite.com>paper writing services</a> each and every time you place an order. We write essays, research papers, term papers, course works, reviews, theses and more, so our primary mission is to help you succeed academically.

Don't waste your time and order our <a href="https://essayerudite.com/" />paper writing service</a> today!

Best Essay Paper Writing Service -https://essayerudite.com

TylerhaichTylerhaich2018/05/13 03:51Essay Writing Service - EssayErudite.com

Our <a href=https://essayerudite.com>essay writing service</a> provides a full-scale writing assistance accessible online 24/7.
Apart from many other writing companies, we are rather picky when forming a professional staff of experts.
Moreover, we try to make our every customer feel safe and pleased with the service.

<a href="https://essayerudite.com" />essay writing service</a>

Essay Writing Service - https://essayerudite.com

HaroldCoimiHaroldCoimi2018/05/13 04:35Write My Essay For Me - EssayErudite.com

Can You <a href=https://essayerudite.com/write-essay-for-me/>Write Essay For Me</a> ? How many times do students worldwide ask this question without finding an answer?
We'd rather not check the official statistics. At the same time, essays appear to be probably among the most popular academic assignments.
Students from various education establishments need to complete them constantly. If you are among those lucky ones, feel free to contact our customer service department and opt for an essay writing help.

<a href="https://essayerudite.com/write-essay-for-me/" />Write Essay For Me</a>

Write My Essay For Me - https://essayerudite.com/write-essay-for-me/

CharlesRerseCharlesRerse2018/05/13 05:13Thesis Writing Service - EssayErudite.com

If you look for a trustworthy <a href=https://essayerudite.com/thesis-writing-service/>thesis writing service</a> and want to benefit from a higher grade, your editors, proofreaders, and instructors are here to lend you a hand.
Some students afraid of hiring professional writers due to ethical issues. As a result, they fail the course due to various reasons not able to defend their degree.
You should note that there is nothing wrong with opting for a <a href="https://essayerudite.com/thesis-writing-service/" />thesis writing service</a>. EssayErudite is certainly the best place for that.

Thesis Writing Service https://essayerudite.com/thesis-writing-service/

GuestbuirmGuestbuirm2018/05/13 21:15guest test post
<a href=" http://temresults2018.com/ ">bbcode</a>
<a href="http://temresults2018.com/">html</a>
http://temresults2018.com/ simple

DennisBowDennisBow2018/05/14 11:02Do My Homework - EssayErudite.com

I can't <a href=https://essayerudite.com/do-my-homework/>do my homework</a> alone - that is not a problem anymore. EssayErudite.com will always be by your side whenever you call for writing help.
EssayErudite represents a pool of native-speaking editors, proofreaders, instructors and writers to handle any writing task by the deadline.

I need assistance to <a href="https://essayerudite.com/do-my-homework/" />do my homework</a>

Do My Homework - https://essayerudite.com/do-my-homework/

JosephneunkJosephneunk2018/05/14 18:37Write My Essay - EssayErudite.com

Fed up of typing "who can write my essay" in the search bar?
Would you like to have a reliable helper always by your side?
Our website will come as an excellent solution to <a href=https://essayerudite.com/write-my-essay/>write my essay</a> for everyone!

<a href="https://essayerudite.com/write-my-essay/" />write my essay</a>

Write My Essay - https://essayerudite.com/write-my-essay/

ArmandorumArmandorum2018/05/15 15:22<a href=http://xn----8sbnarqdju6ab8d8bj.xn--p1ai/>оформление дома в Одинцово</a>

hardlinuxxhardlinuxx2018/05/18 16:34adult porno hard_linux@mail.ru buy viagra

kuhninazakaz.infokuhninazakaz.info2018/05/19 05:09Шкаф купе под заказ цена Лосино Петровский

http://kuhninazakaz.info/page/shkaf-kupe-pod-zakaz-tsena-losino-petrovskij/
.

hardlinuxxhardlinuxx2018/05/19 06:43adult porno hard_linux@mail.ru buy viagra

hardlinuxhardlinux2018/05/19 19:58buy viagra hard_linux@mail.ru adult porno

 | 
最近のコメント
最近のトラックバック
カレンダー
<< 2008/07 >>
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
カウンター
99247