タグ

VImに関するAmaiSaetaのブックマーク (196)

  • どうぶつの森で Vim 使いを飼おう!! - 地獄のネコブログ

    拝むと Vim プラグインを書いてくれるかも!! (実在の Vim 使いとは一切関係が)

    どうぶつの森で Vim 使いを飼おう!! - 地獄のネコブログ
  • Vim で一定時間ごとに処理を割り込む - C++でゲームプログラミング

    Vim で一定時間ごとに処理を呼びたい場合があると思います。 通常は autocmd に CursorHold や CursorHoldI に設定をすればいいのですが、この設定ではキー入力がない場合に続けてイベントが発生しません。 (一度 CursorHold が呼ばれてからキー入力がない場合は CursorHold が呼ばれない。 quickrun.vimunite.vim だとどうやって解決しているのかなーと思ってソースを見てみたら 処理が終わった後に feedkeys を呼べばいいみたいです。 と、いうことでこんな感じ。 [ソース] " 1秒毎に "homuN" を出力する set updatetime=1000 let s:count = 0 function! s:test() echom "homu".s:count let s:count += 1 call feedk

    Vim で一定時間ごとに処理を割り込む - C++でゲームプログラミング
  • スクリプトローカルな関数を手軽に呼び出す - 永遠に未完成

    この記事は Vim Advent Calendar 2011 の 28 日目の代打です。 急遽代打をやることになった*1けどネタが浮かばなかったので、適当に vimrc の中から便利かもしれない関数を晒すことにします。 スクリプトローカルな関数を呼び出したい Vim script を書いてると、スクリプトローカルな関数をコマンドラインモードから直接呼び出して挙動を確認したくなること、ないですか? デバッグで呼び出したい 既存プラグインを拡張したくなった 中身覗くの大好き なんか知らんけど急に呼び出したくなった まあそれなりにシチュエーションはあるかと思います。あることにします。 Vim script ではがんばればスクリプトローカルな関数を呼び出せますが、正直いちいちがんばりたくないです。 スクリプトローカルな関数を呼び出す関数 私の vimrc から抜粋した以下の関数を vimrc に書

    スクリプトローカルな関数を手軽に呼び出す - 永遠に未完成
  • ビジュアルモードの選択開始位置を、選択開始後に変更する — 名無しのvim使い

    ビジュアルモードで範囲を選択する際に選択開始位置を誤ってしまった時、 あるいは、選択開始位置より前方向に選択範囲を広げたい時、 「o」で選択範囲の反対側端へカーソルを移動すれば、 ビジュアルモードの範囲選択をはじめから選択し直す必要はなくなります。 (Windows, Mac) 概要 ビジュアルモードで範囲を選択する際に選択開始位置を誤ってしまった時、 あるいは、選択開始位置より前方向に選択範囲を広げたい時、 o で選択範囲の反対側端へカーソルを移動すれば、 ビジュアルモードの範囲選択をはじめから選択し直す必要はなくなります。

    AmaiSaeta
    AmaiSaeta 2012/11/07
    o でビジュアルモード時に逆の端へカーソル位置を移動、矩形ビジュアルモード時にOで水平方向移動。
  • neobundle.vimについて+おまけ

    ujihisa.vimで発表したスライドです。neobundle.vimの貴重な日語資料となります。 歌はありませんが、最後に……。

    neobundle.vimについて+おまけ
    AmaiSaeta
    AmaiSaeta 2012/11/05
    オマケが本編的な
  • キーボードマクロで遊ぼう: pla.log

    こんにちは。Vim Advent Calendar 2011 25日目の@plasterです。Vimって素敵なエディタですよね。 今日の記事のネタのメモをどこに保存していたか忘れてlocateとfindとgrepを重ねた挙句、 Vim起動して[CTRL-O]ですぐ見つかりました。知らなかったひとは今すぐ:h CTRL-Oしましょう。 エディタは生産性の源だと思います。 さて今日は、その生産性を効率的にむだづかいする方法の紹介です。いいんです、実用性などに縛られないからこその愛なのです。目指せ極北! というわけで、かんたんなアスキーアート生成と、数列の生成と、迷路ソルバやります。全部キーボードマクロで。 フィボなっち まずはアスキーアートの生成から。見出しの「フィボなっち」というのは (●´ー`●) (●´ー`●) (●´ー`●)(●´ー`●) (●´ー`●)(●´ー`●)(●´ー`●) (

    AmaiSaeta
    AmaiSaeta 2012/11/04
    やばい、あたまおかしい
  • #Vimmerかるた

    のーびむのーらいふ

    #Vimmerかるた
  • Vim で無名関数を扱うプラグインをつくった - C++でゲームプログラミング

    気がついたら結構格的になってしまっていたのでいっそのことプラグイン化してようかと。 まぁ使い道があるのかわからないけども。 だいたいやりたいことはできた。 ちなみにプラグイン名はでちまるさんに考えてもらいました。 [プラグイン] vim-reti - github [簡単な使い方] " 式を渡して、それを評価する関数の参照を返す let s:Func = reti#lambda("1 + 2") echo s:Func() " => 3 " 引数を評価する場合は a:{n} を使用する let s:Plus = reti#lambda("a:1 + 2") echo s:Plus(1) " => 3 " 二項演算子を受け取った場合はそれを評価する関数を返す let s:Minus = reti#lambda("-") echo s:Minus(3, 2) " => 1 [二項演算子を関数

    Vim で無名関数を扱うプラグインをつくった - C++でゲームプログラミング
  • Vim script で Assert - C++でゲームプログラミング

    っぽいことを使いやすく定義してみました。 まぁ Assert といっても処理が中断するわけではないのですが。 [使い方] function! s:plus(a, b) return a:a + a:b endfunction function! g:minus(a, b) return a:a - a:b endfunction function! s:test() let n = 10 let m = 7 " 基的な使い方 call g:assert(1) " => OK : call g:assert(0) " => Assert : " 偽の時のメッセージを指定 call g:assert_msg(s:plus(1, 3) == 5, "g:plus(1, 3) == 5") " => Assert : g:plus(1, 3) == 5 " 文字列で式を渡せば、そのまま式がメッセ

    Vim script で Assert - C++でゲームプログラミング
  • vimrc読書会

    次回予告 第605回 日時: 2024/02/10 (土) 23:00 場所: Gitter (Matrix #vim-jp_reading-vimrc:gitter.im) vimrc: garchomp-game さん (後編) init.lua lua/config/command.lua lua/config/init.lua lua/config/mappings.lua lua/config/option.lua lua/plugins/Comment.lua lua/plugins/actions-preview.lua lua/plugins/aerial.lua lua/plugins/codeium.lua lua/plugins/diffview.lua lua/plugins/lsp/lua_ls.lua lua/plugins/lua-guide-ja.lua l

    AmaiSaeta
    AmaiSaeta 2012/10/22
    "オンラインで集まり、毎回みんなで特定の誰かの vimrc を読んで、気になるところやわからないところ、感心するところなどを好き勝手に言いあう集まりです。" 毎週土曜23時から。ちょいちょい参加してる。
  • neocomplcache-snippets-complete は neosnippet になりました

    こんにちは。Shougoです。最近、またブログをさぼり気味ですが、今回は比較的大きな変更があったので ブログにまとめておこうと思います。 日、neocomplcache-snppets-complete は neosnippet にリネームされました。 https://github.com/Shougo/neosnippet それに伴ない、旧 neocomplcache-snippets-complete は一部仕様を変更した上で残されました。 https://github.com/Shougo/neocomplcache-snippets-complete まだ使用することはできますが、起動時にメッセージが表示されます。 リネームの理由: さて、皆さんが気になるのは、「なぜリネームしたか」ということでしょうから簡単に説明しておきます。 一番大きな理由としては、neocomplcache

    AmaiSaeta
    AmaiSaeta 2012/10/21
    昨日アップデートしたら警告出るようになってビックリした。なんでわざわざ変えたのかと思ってたが、neocomplcache非依存になってたとは。
  • dumper.vim 改め prettyprint.vim 作った。 - 永遠に未完成

    2009/06/26 追記: id:ka-nacht さんのアドバイスを受けて名称を変更しました。変えるなら早いうちに、と言うことで。 普通の人はまず必要ないだろう prettyprint.vim と言うプラグインを作った。 http://github.com/thinca/vim-prettyprint/tree/master prettyprint.vim とは Vim の変数を整形して出力するためのプラグインです。 見た方が早い 例えば QuickRun.vim をインストールしているときに*1、 PP g:QuickRunConfig などとすると、 { '*': { 'exec': '%c %s %a', 'output_encode': '&fenc:&enc', 'shebang': 1, 'split': '{winwidth(0) * 2 < winheight(0) *

    dumper.vim 改め prettyprint.vim 作った。 - 永遠に未完成
  • Vim の矩形選択の痒いところに手を届かせる | Webシステム開発/教育ソリューションのタイムインターメディア

    問題 Vim の矩形選択 は便利です。痒いところに手が届く感じの便利さです。 例えば以下のようなコードを編集していて、 一時的に真ん中のブロックをコメントアウトして無効化したくなったとしましょう。 やり方は色々あります。 対象が1行だけなら I# <Esc> で十分です。複数行あるなら最初の行を I# <Esc> でコメントアウトした後に j. を繰り返していけば良いですね。数が多くて j. の連打が難しい場合は vip で選択して :s/^/# /<Enter> という手もあるでしょう。 これ以外に矩形選択を使う方法もあります。 <C-v> で矩形選択を開始し、j 等を連打して適当な範囲を選択し、I# <Esc> こうすれば選択範囲の各行の頭にまとめてコメント文字を入力することが出来ます。 しかし、現実には「 j 等を連打する」といった優雅さに欠ける操作はしません。 ブロック単位でテキス

    Vim の矩形選択の痒いところに手を届かせる | Webシステム開発/教育ソリューションのタイムインターメディア
  • Big Sky :: vimmer必読!読み込みの遅いvimscriptを見つけ出す方法

    « git でバイナリを気軽に扱える、git-largefile の dropbox 版を作った。 | Main | gcc は副作用のある関数呼び出しを含む式評価順序を最適化する。 » vimに起動プロファイラが実装された。 Patch 7.2.269 Patch 7.2.269 Problem:    Many people struggle to find out why Vim startup is slow. Solution:   Add the --startuptime command line flag. Files:      runtime/doc/starting.txt, src/globals.h, src/feature.h, src/main.c, src/macros.h http://groups.google.co.jp/group/vim_dev/b

    Big Sky :: vimmer必読!読み込みの遅いvimscriptを見つけ出す方法
    AmaiSaeta
    AmaiSaeta 2012/10/02
    vim --startuptime foo して、開いたVimで :e foo → :7,$sort r /[0-9.]\+:/ すればよさげ。 | 自分のでやってみたら、neocomplcache,quickrun,unite.vim辺りが重いっぽい。
  • Vim-users.jp - Hack #8: 作業の履歴を辿る

    AmaiSaeta
    AmaiSaeta 2012/09/16
    undo branches; 一般的な、一方向のundo/redoではなく、木構造状のundo/redoを保持する機能
  • スパルタンVim 2.0のPDF公開 — KaoriYa

    C82 において頒布しました スパルタンVim 2.0 のPDFを公開します。 http://files.kaoriya.net/goto/c82pdf 周囲の期待をクルッと回って3回転半ほど裏切った衝撃作、ご堪能いただければ幸いです。夏の終わり、最後の週末の暇つぶしにピッタリかもしれません。

  • 'cursorline' を必要な時にだけ有効にする - 永遠に未完成

    問題 Vim には 'cursorline' というオプションがある。これを有効にすると、現在カーソルがある行がハイライト表示される。カーソルの位置を見失いにくくなるので便利なオプションだ。 しかし、デメリットがないわけではない。 微妙に重い。 背景色や一部の色が上書きされるので、カーソルのある行の背景色が見えなくなる。例えば、コメント内の TODO や 'list' で表示される文字など。 そもそも 'cursorline' は常に必要だろうか。編集中にカーソルを見失うことはそうそうないはず。見失うのはちょっと席を外したり別の作業に移って、戻ってきた時だ。必要な時だけ有効にすることはできないだろうか。 解決方法 以下のような設定を行うと、しばらく手を離した時だけ 'cursorline' が有効になる。 augroup vimrc-auto-cursorline autocmd! aut

    'cursorline' を必要な時にだけ有効にする - 永遠に未完成
  • Big Sky :: zencoding-vim に新しいフィルタを追加した。

    以前から、CSVを一気にtableに出来たらいいなーと思ってたので実装してみた。 例えば以下の様なカンマ区切りのデータ行をビジュアル選択して tokuhirom, geek, perl kazuho, geek, jsx hasegawayosuke, xss, javascript <c-y>, をタイプし、以下のクエリを入れる | はフィルタを開始する識別で、/というフィルタに続いて,\s*という分割する為の正規表現パラメータを渡す。フィルタは元々カンマで複数指定が可能なので、\,という風に誤爆しないようにエスケープしてる。 Tag: table>tr*>td|/\,\s* するとこうなる。 <table> <tr> <td>tokuhirom</td> <td>geek</td> <td>perl</td> </tr> <tr> <td>kazuho</td> <td>geek</t

    Big Sky :: zencoding-vim に新しいフィルタを追加した。
  • Big Sky :: 最近の zencoding.vim

    最近 zencoding.vim を大きく修正しました。とは言ってもこれまで単体テストを作ってきた事もあって、過去の動作を(なるべく)壊さずに大規模な修正が行えました。 これまでは一つのファイルに html, css, haml の処理が全て記述されていたのでとてもスパゲッティなコードになっていて、もう少し放っておくとカオスな状態になりかけていたので、ファイルを分割しインタフェースを揃える事にしました。 これにより、今後新しいフォーマットに対応する際にも、zencoding/lang にあるファイルの真似をして記述すれば実装出来る様になります。 haml に対応した 「えっ?前から対応してたんじゃないの?」と言われる方もいるかもしれませんが、これはあくまで expand abbreviation の haml フィルタとしてだけサポートしていました。 何が変わったかというと zen cod

    Big Sky :: 最近の zencoding.vim
    AmaiSaeta
    AmaiSaeta 2012/08/14
    というかexpand abbreviationのHAML対応自体今知った……
  • syntax/cpp.vim のメンテナンスを vim-jp で行う事になりました。

    コーディングする際、構文やキーワードが色付けされる事はプログラマに大きなアドバンテージを生みます。 先日、vim の開発者メーリングリスト vim-dev に「syntax/cpp.vimC++0x のサポートを追加して欲しい」との意見が投稿されました。 vim の作者 Bram Moolenaar 氏は「ここ10年程、syntax/cpp.vim のメンテナと連絡が取れていない。」と漏らしました。 そこで以前から、syntax/cpp.vim に手を入れようと議論していた vim-jp がメンテナを買って出る事にしました。 https://github.com/vim-jp/cpp-vim Bram Moolenaar 氏からも快い返事を頂きました。今後は C++ のノウハウを持った日vim ユーザー皆さんからのご意見を頂戴しながら syntax/cpp.vim のメンテナン

    syntax/cpp.vim のメンテナンスを vim-jp で行う事になりました。