この記事はVim Advent Calendar 2012の198日目の記事です。 197日目はyonchuさんによるVim Advent Calendar 2012 に’はてブ数’を表示させるグリモンとブックマークレットを作ったよ!でした。 Vimで連番を入力するためのVim pluginについての記事です。 6/16 18:30 追記(operatorを本体に統合したので記載を修正) はじめに 文章で説明するより使用している様子を見たほうがわかりやすいと思うので、 まずは以下のGIFアニメをご覧ください。 これは、Vim scriptの配列の値として、 0〜99までを設定するために 今回ご紹介するVim pluginを使っている様子です。 0を100個入力するところまでは、本pluginは関係ありません。 その後のRengBangコマンドを実行して、連番に置き換えているところが 本pl
[2013/04/16 追記あり] fedora17は64bit版です。 vimのソース取得 Vim from Mercurial : vim online を参考に引っ張って来ます。 私は ~/okome/vim に取得しました。 lua関連のパッケージのインストール $ sudo yum install lua lua-devel luaは既にインストールされているかも。 static linkさせたい場合は lua-static もインストールします。 $ sudo yum install lua-static Vimのconfigure 毎回configureのオプションを指定するのは面倒くさいので以下のようなファイル(copt_lua.txt)を作成しときます。 luaに関係するのは最後の --enable-luainterp=dynamic ですね。dynamicをyesにする
この記事は Vim Advent Calendar 2012 の 130日目の記事になります。 129日目は @tyruさんの balloon-evalを使ってマウス位置を取得 でした。 いつまで続くのかドキドキですね。Vimmerにクリスマスはくるのか!? では、今回の記事はこちらになります。 ウロボロス - Wikipedia はい。自分を食べてますね。 では、Vimから Vimを Build & Installしてみます。(Linuxでしか試してません) ※良い子は真似しないでね。 プロローグ 週10件?は降ってくる Vimのパチラッシュ(※要出典)に対応して最新を使いたい。 でも、毎日更新を確認するのもめんどくさいなー あれ? NeoBundleのヘルプでこんなものが、 NeoBundle 'Shougo/vimproc', { \ 'build' : { \ 'windows'
12時を11分30秒ほど過ぎました所でこんばんは。 この記事はVim Advent Calendar 2012の5日目の記事です。 なおこの記事はAnthyとiPod touchとeskk.vimによって書きました。 今回色々書きたいネタはあったのですが、とりあえず迫りくる締切から逃れるために一番書きやすそうなネタを選びました。(余裕できたら2周目に書くんだ...) という訳で今年は「Vimらしい操作性」について書いてみようと思います。 また、Vimの操作性については前も書いてるので、そちらもよければ参照してください。 表題のことを考えたきっかけは、Sublime Textのmultiple cursorsという機能について、Twitter上でのある人(晒しっぽくなってしまうのが嫌なので仮にAさんとしておきます)とKoRoNさんの会話でした。 え、vim使い的にはmultiカーソルって一括
Vimをお使いの皆さん、こんにちわ。 Vimを使って日本語のコメントやドキュメントを書かなきゃいけな人をいつも悩ますのが、IMEのモードの問題です。 (IMEオン, IMEオフ) x (挿入モード, コマンドモード, ビジュアルモード) の、この全6パターンを意識しながら操作するのは非常に間違いやすいです。特に日本語を挿入モードで書いたあと、コマンドモードに抜けるとよくIMEがオンになっていて、あうぅ。。とよくなってしまう。 KaoriYaさんのMacVimやGVimを使っている方は幸せです。 set imdisable という設定をvimrcに書く手があります。これで挿入モードから抜ける際、入る際に必ずIMEがオフになります。 問題は、コンソールやiTermなどからSSHを介してサーバー上のVimを使っている場合です。この設定が効きません。そりゃ普通はサーバー上にIMEはありませんので仕
Vimが良くも悪くも「エディタだ」と言われる要因として「画像や異なるグリフのフォントを同時に出せない」ことを上げられます。つまりVimはHTMLやマークダウン等のプレビューを確認する為にいちいちブラウザを起動して確認し、ファイルを更新した際には読み込み直すという面倒な手間が掛かる事を意味しています。 まぁ専用ブラウザを作ればいいんだけど面倒で腰が重かったんだけど、ちょいと作ってみました。 mattn/mkdpreview-vim - GitHub MkdPreview Markdown previewer for vimmer https://github.com/mattn/mkdpreview-vim ファイルタイプがmarkdownなバッファで :MkdPreview! と実行するとプレビューワが起動します。 プレビューワが一度起動している状態なら、以後は他のVimからでも :Mkd
iOSにVimがやって来ました。 「ctrlキーが...」「ctrlキーが...」という声が聞こえてきますが、「Vimのヘルプがどこでも見れる&ちょこっと動作を試せる環境」と割り切るととっても最高なアプリです。 せっかくなのでヘルプを日本語で表示されるように設定してみましょう。 iPhone/iPod touch/iPadにVimをインストールする 今回はiPhoneにインストールします。 http://itunes.apple.com/jp/app/vim/id492668168?mt=8 Vim日本語ヘルプを用意する http://vim-jp.org/のWindows版(+kaoriya)をインストールしている場合は (Vimインストールフォルダ)\plugins\vimdoc-jaにすでにあります。 そうじゃない場合は https://github.com/vim-jp/vimdo
(Part1-1)、(Part1-2)、(Part1-3) さぁ、デバッガで動かして関連性を見てみましょう。デバッガは昔ながらのGDBを使います。GDBのフロントエンドはいくつか存在しますが、「昔ながら」でいきましょう。 man gdb GDBマニュアル ファイヤープロジェクト GDB ←わかりやすい!! デバッグ用バイナリの作成 GDBでCソースコードデバッグするにはデバッグ情報入りのバイナリを生成する必要があります。 bash $ cd vimソースをゲットしたディレクトリ # 再生成可能なファイルを削除 $ make distclean # デバッグ情報あり(-g)でconfigure (configureオプションはお好みで) $ ./configure CFLAGS="-g" --enable-multibyte --with-gnome --with-features=big
(Part1-1)、(Part1-2) 前回までのソースコード解析で「カーソル位置による相対行番号の描画データ設定処理」と「カーソル描画処理」をやっている部分が特定できました。 が、一つ忘れてましたorz。 「カーソル移動処理」。 Vimでカーソルを移動させる方法はいっぱいあるんですが、今回は j 押下時の処理を探しましょう。 " 「'j'」をgrep (:help :grep) :grep "'j'" .[Enter] " (grepが終わってから) " カレントウィンドウを次ウィンドウ(==Quickfixウィンドウ)に移動。 (:help ctrl-w_ctrl-w) <C-W><C-W> " Quickfixウィンドウの高さを可能な限り最大化 (:help ctrl-w__) <C-W>_ " 〜しばしgrep結果と戯れる(時おり <C-F> 押しながら)〜 Quickfixウィン
僕がサクラエディタからVimに乗り換えるまで - ITは芸術だ 僕がサクラエディタからVimに乗り換えるまで エディタ はじめに 恐怖のエディタ、Vim。 僕はこの間までずっとサクラエディタを愛用していましたが、最近 Vim を使うようになりました。 ええ、Vim... http://d.hatena.ne.jp/JunichiIto/20120101/1325420213 Vimテクニックバイブルの著者略歴でも書いたけど、僕は「生涯Vimを使う」と決めた。僕のブログを読んでくれている人なら、だいたいの人は僕がVimを使っているのは知ってると思うけど、今日は「なぜ僕がVimを選んでいるのか」を書こうと思う。 こんな僕だけど、Vim以外が使えない訳じゃない。PCにVim以外のテキストエディタが入ってない訳でもない。Emacsも一応は使える。もちろんEmacsもxyzzyもsakuraエディタ
(Part1-1)からの続きです。 (お知らせ) コマンドラインモードのエンターキー押下の表記を省略せずに [Enter] で表すようにします。 カーソル描画処理を探す NO PLANっす。とりあえず cursor でgrepしてみましょう。 " 「cursor」をgrep :grep cursor .[Enter] " (grepが終わってから) " カレントウィンドウを次ウィンドウ(==Quickfixウィンドウ)に移動。 <C-W><C-W> " Quickfixウィンドウの高さを可能な限り最大化 <C-W>_ " ウィンドウを1ページ前方(↓)スクロール <C-F> " 〜しばしgrep結果と戯れる(時おり <C-F> 押しながら)〜 戯れて感じたこと CUIのカーソル処理の話なのでおそらく gui*.c とか関係ないはず。 カーソル下の文字によってカーソル幅とか変わるからマルチバ
Vimはご存知の通りC言語で書かれています。 ちょっと解析してみましょう。 題材はvim-jpのIssue#94 相対行表示にするとカーソルの表示位置がずれるで。 現象はMacOSXで発生してますが、持ってないので作業はlinux(fedora)でやります。 (追記)本来は先ず現象の発生した環境(OS, Vim ver., etc...)で現象の再現手順を確立すべきです。今回のアプローチはイレギュラーです><。 Vimのソースコードの取得 Vim本家を参考にしてゲットします。(詳細は割愛) 下準備 .vimrc " <C-]>でタグジャンプ時にタグが複数あったらリスト表示。カーソルがウィンドウの中心行になるようにジャンプ nnoremap <C-]> g<C-]>zz " タグファイルはカレントファイルのパスを基準に上向き検索 set tags=./tags; " grepは再帰検索、行番
さあみなさんVim Advent Calendarも14日目ということで佳境にさしかかってきましたね! とか他のAdvent Calendarに参加してたなら言ってたかもしれないですが Vim Advent Calendarの場合1月5日ぐらいまで登録されてる状態とかどういうことですか... まぁ案の定Advent Calendar締切ギリギリになって急いで記事書いてますこんばんわ。*1 寝ずに記事を書いてるので勢いがついて変なこと口走ってないか心配ですが、 乗るしかない、このビッグウェーブに!ということで終始勢いだけですがそれなりに有用なことも含めたつもりです。たぶん。 いろいろネタがあって迷いましたが、Vimの正規表現について 他の正規表現エンジンにはない(と思われる)ニッチな機能を紹介していきたいと思います。 ちなみにVimの正規表現エンジンをマルチバイト文字に対応させたのはKoRo
この記事はsuginoy氏のブログ杉風呂2.0 - A Lifelog -の記事"あなたはJavaScriptを知らない"をパロったものです。suginoyさんの許可を得て公開します。原文は2011年11月17日にポストされました。私自身のVim scriptの学習は適当で、ネタ仕込みの指摘等はコメントを下さると助かります。 あなたはJavaScriptを知らない この記事はMichael Woloszynowicz氏のブログWeb 2.0 Development And Business Lessonsの記事"You Don’t Know JavaScript"を翻訳したものです。本人の許可を得て公開します。原文は2011年4月16日にポストされました。私自身のJavaScriptの学習が浅く、誤訳の指摘等はコメントを下さると助かります。 http://d.hatena.ne.jp/su
2011/09/01 レアケース対応 2011/09/04 レアケースでecho表示されない件修正。その他微修正 quickfixバッファのタイプ(Quickfix List か Location List)をVimスクリプトから判断する方法がないと言っている方が居たのでちょっと作ってみました。 Vim scriptは殆ど書いたこと無いので突っ込みどころ満載とは思いますが、これで判定できるんじゃないでしょうか? ウインドウ数を保存。 ウィンドウサイズ情報を保持 現在のウィンドウのビューを保存 lopen を実行。 Quickfix List (通常)だったら例外発生するので捕捉してreturn。 もしウインドウ数変わっていれば、Quickfix List (レアケース)なので lclose 実行。 カレントウィンドウをlopen前のものに復帰。 ウィンドウサイズを復元 ウィンドウのビューを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く