2015/11/27


注意: まだ Vim Advent Calendar 2015 は始まっていません。

ctrlp.vimのエクステンションの作り方 - koturnの日記

はじめに この記事は ctrlpvim/ctrlp.vim のエクステンションの作り方についての記事であり, ctrlpの公式リポジトリのextensionsブランチ に書かれているエクステンションの...

http://koturn.hatenablog.com/entry/2015/11/19/200000

とても良い記事ですね。みんな CtrlP 拡張書いたらいいと思います。そして Vimmer おじさんから1点だけ。

let s:sample_var = {
      \ 'init': s:sid_prefix . 'init()',
      \ 'accept': s:sid_prefix . 'accept',
      \ 'lname''sample extension',
      \ 'sname''sample',
      \ 'type''path',
      \ 'nolim'1
      \}
if exists('g:ctrlp_ext_vars') && !empty(g:ctrlp_ext_vars)
  call add(g:ctrlp_ext_vars, s:sample_var)
else
  let g:ctrlp_ext_vars = [s:sample_var]
endif
unlet s:sample_var

こういう時の if 文、出来れば1行で書きたくないですか。そういう時に使えるのが get です。get は第一引数(辞書もしくは配列)から第二引数のキーで値を取得し、もしキーが存在しなければ第三引数を返すという関数です。また Vim script では g: (: の後何も付けない)という辞書変数でグローバル変数が参照出来ます。s: でスクリプトスコープ、b: でバッファスコープです。ここテストに出ます。なので

if exists('g:ctrlp_ext_vars') && !empty(g:ctrlp_ext_vars)
  call add(g:ctrlp_ext_vars, s:sample_var)
else
  let g:ctrlp_ext_vars = [s:sample_var]
endif

これは

let g:ctrlp_ext_vars = get(g:, 'ctrlp_ext_vars', []) + [s:sample_var]

と書くことができ、さらには

let g:ctrlp_ext_vars = get(g:, 'ctrlp_ext_vars', []) + [{
      \ 'init': s:sid_prefix . 'init()',
      \ 'accept': s:sid_prefix . 'accept',
      \ 'lname''sample extension',
      \ 'sname''sample',
      \ 'type''path',
      \ 'nolim'1
\}]

とすれば sample_var の代入と破棄も必要なくなります。この技、GitHub で pull-request を送ると上級者 Vimmer に見られるので要チェックです。

えっ?見られたくない?そうですか。

Posted at by



2015/11/17


Ruby - マイナンバーのチェックデジットを計算する - Qiita

## そもそもマイナンバーってどういう数字なのでしょうか? これは法律を読みます。調べると「[行政手続における特定の個人を識別するための番号の利用等に関する法律施行令](http://law.e-go...

http://qiita.com/qube81/items/fa6ef94d3c8615b0ce64

もうすぐウチにも届くだろうから何時でも検証出来る準備をしないといけない。という事で書きました。ロジックは KoRoN さんのをパクった。

mattn/vim-mynumber · GitHub

Validate your MyNumber

https://github.com/mattn/vim-mynumber

どうぞ、お役立て下さい。

Posted at by



2015/09/04


Vimのウィンドウが勝手にびよんびよんなってたのしいやつができたぞ!!!

let s:i = 0
let s:s = 10

functions:byonbyon()
  let &columns = s:w + float2nr(cos(3.141592*(0.0 + s:i * s:s)/180.0) * 10)
  let &lines = s:h + float2nr(sin(3.141592*(0.0 + s:i * s:s)/180.0) * 5)
  let s:i += 1
  call feedkeys(mode() ==# "i" ? "\<C-g>\<ESC>" : "g\<ESC>""n")
endfunction

functions:stop_byonbyon()
  augroup ByonByon
    autocmd!
  augroup END
endfunction

functions:start_byonbyon()
  let s:w = &columns
  let s:h = &lines
  set lazyredraw updatetime=10
  augroup ByonByon
    autocmd!
    autocmd CursorHold,CursorHoldI * call s:byonbyon()
  augroup END
  commandStopByonByon call <SID>stop_byonbyon()
endfunction

commandStartByonByon call <SID>start_byonbyon()

:StartByonByon を実行するとびよんびよんなってたのしい。まったく仕事できない。止めるには:StopByonByonを実行する。

びょんびょん

参考資料: Emacsのウィンドウが勝手にびよんびよんなってたのしいやつ - hitode909の日記



/ (1970年01月01日)
 
発送可能時間:

Posted at by