newononeが作るネットサービス更新記録

2017-01-02

伏字検索をメンテナンス

| 22:32


1年5か月ぶりに伏字検索をメンテナンスしました。

データベース更新 214万語をインデックス

2016-03-20

Vimで編集中のRubyスクリプトを実行する

| 20:45

Vimで編集中のテキストの中にRubyスクリプトを書いて実行する

こんな感じでスクリプトを書いて

10.times{|i|
  print "array[#{i}] = ;\n"
}

↑の文字列をVisualモードで選択し、eval.rbを呼び出すと

:'<,'>!ruby c:\tools\vim74-kaoriya-win64\eval.rb

選択した文字列Rubyスクリプトとして実行されて結果が埋め込
まれる。

array[0] = ;
array[1] = ;
array[2] = ;
array[3] = ;
array[4] = ;
array[5] = ;
array[6] = ;
array[7] = ;
array[8] = ;
array[9] = ;

eval.rbの内容

#!/usr/bin/ruby -Ks

body = $stdin.read
eval body


標準入力をevalするだけなので、
ちょいっとRubyスクリプトを書いていつでも実行できる。
あら便利。

Vimで一発Grep

| 20:33

Vimは超強力なエディタだけどgrepするのが辛いと思ってた。

:vimgrep hogehoge *.[ch]

やっぱり辛い。

$VIM/vimrc

" grでカーソル下のキーワードをvimgrep

nnoremap <expr> gr ':vimgrep ;\<' . expand('<cword>') . '\>; **/*.[ch] \| cw <CR>'
nnoremap <f2> :cprevious<CR>
nnoremap <f3> :cnext<CR>

今のところ対象は.cと.hだけ。
これでいつでもgrでgrepできる。

grepしたら F3で次を検索、F2で前を検索

上位のフォルダで検索かけちゃったとき延々とgrepし続けちゃうのは嫌だなぁ..

2016-03-19

VimからRubyを呼び出して電卓代わりにする

| 19:37

Vim上で計算をしたいけど
電卓を立ち上げるのが面倒くさい。

4+2=

というテキストがあったら、数式とみなして

4+2=6

となってほしい。

Rubyスクリプトを書いてみました。

#!/usr/bin/ruby -Ks
body = $stdin.read body.each_line{|line| line.chomp! line.gsub!(/=(.*)/,"") if line.length > 0 print "#{line}=" ans = eval line if line.match(/0x/) printf "0x%x",ans elsif line.match(/0b/) printf "0b%b",ans else print "#{ans}" end end print "\n" }


VimのVisualモードで

4+2=
4-2=
4*2=
4%2=
0x48+0x72=


を選択して

:'<,'>!ruby c:\tools\vim74-kaoriya-win64\calc.rb 

をすると

4+2=6
4-2=2
4*2=8
4%2=0
0x48+0x72=0xba


となり、電卓要らず。
Vim単体でも: C-r = 4 + 2 で計算できるけど
これだと複数の計算も一気にできて便利。

しくみ。

Visualモードで選択した行が、calc.rbの
標準入力に入るのでevalして結果を標準出力するだけ。
シンプルな仕組みなので、ほかにもいろいろできそう。

2016-03-15

秀丸からgvimに乗り換えたときの個人的なメモ

| 22:05

本体とmigemoとctagsとneocomplcacheまで。

ダウンロード

本体
http://www.kaoriya.net/software/
Windows 32bit版 ダウンロード

ctags
http://hp.vector.co.jp/authors/VA025040/

C/Migemo for windows 32bit
http://www.kaoriya.net/software/cmigemo/

プラグイン neocomplcache
https://github.com/Shougo/neocomplcache.vim
neocomplcache.vim-master.zip

インストール

vim74-kaoriya-win64-20160305.zip
ec58j2w32bin.zip
cmigemo-default-win64-20110227.zip

展開してどこかに置く

vim74-kaoriya-win64-20160305.zip
→ C:\tools\vim74-kaoriya-win64

ec58j2w32bin.zip
→ C:\tools\vim74-kaoriya-win64

cmigemo-default-win64-20110227.zip
→ C:\tools\vim74-kaoriya-win64
C:\tools\vim74-kaoriya-win64_\dict\cp932\ の内容を
C:\tools\vim74-kaoriya-win64_\dict\ にコピー

neocomplcache.vim-master.zip
→ $VIM/runtime/

gvimrc
$VIM/gvimrcに追記

set number
set nowrap
syntax off

set tabstop=4
set shiftwidth=4
set noexpandtab

set listchars=eol:$,tab:>\

set migemo
set migemodict=C:\tools\vim74-kaoriya-win64\dict\migemo-dict
set clipboard+=unnamed

set showtabline=2

nnoremap / g/


vimrc
$VIM/vimrcに追記

set runtimepath+=$VIM/runtime
set runtimepath+=$VIM/runtime/plugin/

" neocomplcache
let g:neocomplcache_enable_at_startup = 1

"挿入モード終了時にIME状態を保存しない
inoremap <silent> <ESC> <ESC>
inoremap <silent> <C-[> <ESC>

"IMEモード固定
inoremap <silent> <C-j> <C-^>

autocmd QuickfixCmdPost * copen
set backupdir=$VIM/backup

set autochdir
set wrapscan

"nnoremap <f5> :!ctags -R<CR>
nnoremap <f5> :!start ctags -R<CR>

" grでカーソル下のキーワードをvimgrep
nnoremap <expr> gr ':vimgrep ;\<' . expand('<cword>') . '\>; **/*.[ch] \| cw <CR>'

nnoremap <f2> :cprevious<CR>
nnoremap <f3> :cnext<CR>

" Vim終了時に現在のセッションを保存する
au VimLeave * mks! c:\temp\Session.vim

source c:\temp\Session.vim


ハマったところ

Migemoが動かない。
辞書のパス指定が間違っていた!migemo-dictがファイル名だと思っていなかった。

neocomplcachが動かない。
gvimrcに設定をしていた。vimrcに設定する必要があった。

2015-08-01 伏字検索をメンテナンス

伏字検索をメンテナンスしました。

データベース更新 199万語をインデックス