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

くふんを狙え

 | 

2008-07-26

「skk.vimにsticky-shiftぽい機能を追加してみた」の続き( 連続押下や「ん」への対応 )

12:27 | 「skk.vimにsticky-shiftぽい機能を追加してみた」の続き( 連続押下や「ん」への対応 ) - くふんを狙え(vimグループ) を含むブックマーク はてなブックマーク - 「skk.vimにsticky-shiftぽい機能を追加してみた」の続き( 連続押下や「ん」への対応 ) - くふんを狙え(vimグループ) 「skk.vimにsticky-shiftぽい機能を追加してみた」の続き( 連続押下や「ん」への対応 ) - くふんを狙え(vimグループ) のブックマークコメント

skk.vimを改良しようという、skk.vimにsticky-shiftぽい機能を追加してみた - くふんを狙え(vimグループ) - vimグループ の続き。

  • 連続押下した場合にskk_sticky_key自体が入力されなかった点
  • 「n」のあとに「ん」に展開する処理ができていなかった点

以上の二点を考慮して、修正した。差分は、オリジナルとの差分なので使用する際には注意!

--- skk.vim	Sat Jul 26 12:17:43 2008
+++ skk.vim.new	Sat Jul 26 12:18:28 2008
@@ -4,7 +4,7 @@
 "
 " Author: Noriaki Yagi <no_yag@yahoo.co.jp>
 " Version: $Id: skk.vim,v 0.22 2006/10/11 09:26:53 noriaki Exp noriaki $
-" Last Change: 11-Oct-2006.
+" Last Change: 26-Jul-2008.
 "
 " 使い方:
 " skk_jisyo および skk_large_jisyo を適宜変更する。
@@ -1451,6 +1451,34 @@
     try
       if b:skk_henkan_mode == 3
 	return SkkHenkan(a:char)
+      elseif exists('g:skk_sticky_key') && b:skk_henkan_mode == 0
+	    \ && a:char == g:skk_sticky_key
+	" krogue-sticky: ■→▽
+	return SkkSetHenkanPoint('')
+      elseif exists('g:skk_sticky_key') && b:skk_henkan_mode == 1
+	    \ && a:char == g:skk_sticky_key
+	" krogue-sticky: ▽→▽(送り)
+	if !s:SkkCheckMarker(g:skk_marker_white, b:skk_hstart)
+	  let b:skk_henkan_mode = 0
+	  throw "skk cannot find " . g:skk_marker_white . " mark"
+	endif
+	" g:skk_sticky_key 連続押下で g:skk_sticky_key 自体を返す
+	" ;; で ▽* 、;k; で ▽* ではなく、; になるように
+	let kana = s:SkkCleanRom() " kana は n の場合に ん になる
+	if kana == '' && s:SkkCursorCol() == b:skk_hstart +
+	      \ strlen(g:skk_marker_white)
+	  call s:SkkKakutei() " ▽の削除 ( 確定 )
+	  return g:skk_sticky_key
+	endif
+	if b:skk_rstart == 0 || b:skk_line != s:SkkCursorLine()
+	  let b:skk_line = s:SkkCursorLine()
+	  let b:skk_rstart = s:SkkCursorCol()
+	endif
+	let b:skk_ostart = strlen(kana) + b:skk_rstart
+	let b:skk_rstart = strlen(kana) + b:skk_rstart +
+	      \ strlen(g:skk_marker_okuri)
+	let b:skk_henkan_mode = 2
+	return kana . g:skk_marker_okuri
       elseif stridx(g:skk_henkan_point_keys, a:char) != -1 && b:skk_abbrev_mode_on == 0
 	return SkkSetHenkanPoint(a:char)
       elseif b:skk_henkan_mode == 1 && a:char ==# g:skk_start_henkan_key

CelinaCelina2013/05/02 20:01You write so honestly about this. Thanks for shainrg!

tlvqyssqztlvqyssqz2013/05/05 00:03SaFbDJ <a href="http://mfxjsdrifjud.com/">mfxjsdrifjud</a>

qavlchuzqtqavlchuzqt2013/05/05 13:01Zyu1bq , [url=http://lrwlygetcaqw.com/]lrwlygetcaqw[/url], [link=http://irvnvbutwjvv.com/]irvnvbutwjvv[/link], http://xfborhevpodu.com/

 | 
最近のコメント
最近のトラックバック
カレンダー
<< 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
カウンター
94935