.
なんだかやっぱり、漠然とした不安がある。
なんだかやっぱり、漠然とした不安がある。
いいかげんどうにかしたいので必死で調べてるんだけどうまくいかない。ちなみに使いにくいのであんまり補完使ってない。
という挙動にしたいだけなんだけど、なんでできないんだろ。ソロでマッチしている場合必ず確定してしまう。
だめだまったくだめだ。
<C-R>=Fun()<CR>
して自力で complete() よべばいいのかなぁとおもったけど、どうやって補完リストとってくればいいのかわからない。
なんでこんな素朴な挙動ができないのかなぁ……
てか complete() もソロマッチだと勝手に補完しやがるな
表示するだけってないのかなほんとに
ソロマッチの insert は諦めた。ほんとどうやってやるんだ……
補完のヒット率をあげるために dict を充実させるようにしようとおもった。で、これもずっと疑問だったんだけど、css とか、キーワードにハイフンを含めたりできるやつの補完ってどう書けばいいんだろう。emacs は記号として認識する範囲を指定する変数があったと思うけど、vim にはないのかな。ヘルプざっとみてるけど、なんか見つけかたが全くわからない。
iskeyword か。
CSS は ftplugin/css.vim で
set iskeyword+=-してみた
gem にしました。
sudo gem install resh
でインストールできます。--template resh のように書くことができるようになりますが、rubygems を読みこんでいないとテンプレート読みこみに失敗するので、RUBYOPT="-rubygems" をつける必要があります。ただし ~/.gemrc の rdoc: とか、RDocTask の書いたりするぶんには、既に rubygems が読みこみされたコンテキストで require が発生するので問題ないです。つまり直接 rdoc コマンドを叩かない限りだいたい大丈夫
人間ってだめすぎるな
-- この行以下は無視されます -- M .zshrc
ってでたとき、下の無視されますのところを削除するとそのファイルはこのチャンジセットではコミットしない、みたいな機能があった気がするんだけど、今日ためしてみたらできなかった (TortoiseSVN のコミット画面のチェックボックスみたいなイメージ)。なんだろ。
コメントをもらった。
http://subtech.g.hatena.ne.jp/cho45/20071009#c1191925480
できた! できた! 神すぎる!!!
でもってすこし変更して小文字入力時に常にメニュー出すように (word_complete.vim は捨てた)
set completeopt=menuone,preview function! CompleteWithoutInsert() return "¥<C-n>¥<C-r>=pumvisible() ? ¥"¥¥<C-P>¥¥<C-N>¥¥<C-P>¥": ¥"¥"¥<CR>" endfunction inoremap <expr> <C-n> pumvisible() ? "¥<C-n>" : CompleteWithoutInsert() " 小文字入力で常にメニューだす let letter = "a" while letter <=# "z" execute 'inoremap <expr> ' letter ' "' . letter . '" . (pumvisible() ? "" : CompleteWithoutInsert())' let letter = nr2char(char2nr(letter) + 1) endwhile inoremap <expr> <CR> pumvisible() ? "¥<C-Y>¥<CR>" : "¥<CR>" inoremap . .<ESC>a inoremap ( (<ESC>a inoremap [ [<ESC>a set lazyredraw
なんかこのコードははてなコード記法でハイライトおかしくなるみたいだ。vimcolor だからかな
たまに生で code block 書くときにめんどかった。TAB で移動はつかわないし
$X("//textarea").forEach(function (t) {
t.addEventListener("keypress", function (e) {
if (e.keyCode == 9) {
e.stopPropagation();
e.preventDefault();
var s = t.selectionStart;
var content = t.value;
var str = "\t";
var newstr = content.substring(0, s) + str + content.substring(s, content.length);
t.value = newstr;
var pos = s + str.length;
t.setSelectionRange(pos, pos);
}
}, true);
});