タグ

ブックマーク / guyon.hatenablog.jp (34)

  • git.vimの便利な機能に気づいた - Guyon Diary

    git.vimでaddする時に、選択してaddできたらいいのになぁと思っていたら、偶然その機能を発見してしまった。 後でdocを再確認したらしっかりと === In git-status buffer [] :GitAdd 記載されていました。 「おぉ!!実装されていた!!ヘルプきちんと読もうぜ俺。」という心の叫びが体の内から聞こえてきました。 どんな風に操作できるのかというと :GitStatus で表示したステータス表示画面で操作を行います。 操作方法 ファイル名の上にカーソルを合わせる Enter:コミットを予定する マイナス(-):コミット予定から降ろす addするファイルや編集したファイルをコミット予定に入れたり降ろしたりする事ができて、最後にまとめてcommitすることができます。 操作のgifアニメーションを作ってみました。*1 いいなぁ。この機能。 Life Changin

    git.vimの便利な機能に気づいた - Guyon Diary
    sankaseki
    sankaseki 2008/11/24
    git.vimの便利な機能に気づいた - Guyon Diary
  • gitで管理しているvimrcをrakeで一発デプロイできるようにした - Guyon Diary

    前々からだらしなく管理されていたvimrcを始めとするconfigsですが、中途半端にsubversionにコミットしていたり、どこかの環境だけ新しかったりしたので、なんとかしたくてconfigsを整理していました。 この機にgitに乗り換えるのは先日書いた通りなのですが、gitに乗り換えただけでは中途半端な状態は解消されないので、どうしたら良いか考えました。 問題だった事 vimrcを書き換えで「ちょっと試してみよう」「一時的な設定」が多すぎた commitがおざなりになっていた。 HOMEディレクトリのvimrcやpluginを編集してしまっていて、リポジトリとの整合性確認が面倒だった なにがどの状態だったか記憶できていない。 デプロイ or シンボリックリンク 皆さんconfigsの管理ってどうしているのかな??と気になって http://www.lingr.com/room/vim

    gitで管理しているvimrcをrakeで一発デプロイできるようにした - Guyon Diary
    sankaseki
    sankaseki 2008/10/23
    gitで管理しているvimrcをrakeで一発Buildできるようにした - Guyon Diary
  • 基本的な色々 - Guyon Diary

    vim完全バイブルを141ページまで読んだ。 その中で基的な色々な設定や使い方が載っていました。 これも分類が難しい。 単語の補完 :abbreviate hg hogehoge hgを入力してタブとかスペースを押すとhogehogeが入力される。 インサートモードだけでなくコマンドラインモード等でも有効になる。 試しに使ってみたけど、自分の性格に合わないなぁ。 絶対に補完分より間違って入力してしまった分を削除している回数の方が多そうw キーマッピング これは! vimの一番の醍醐味じゃないですか。 と思ったら掲載量、、、約1ページ。後でもっと詳しく出てくる事を祈る。 環境設定の保存 設定されている情報をファイルに書き出しできるらしい。 :mkvimrc filename 出力したら大変なことになった。300行もあった。 ほとんどvimrcで設定した内容なので、後から変更した分とかわから

    基本的な色々 - Guyon Diary
    sankaseki
    sankaseki 2008/10/23
    基本的な色々 - Guyon Diary
  • プログラマ向けのコマンド - Guyon Diary

    第7章。 色々とごった煮な印象。 引き続きメモ。 カラーシンタックス ターミナルの背景色に合わせてdarkとlightを使い分ける。 背景黒で青とかちょっと見にくいもんなぁ。 syntaxに格納されているcolortest.vimを読み込めば(:source %)スクリプトが実行されて、色サンプルが見れる。 colorscheme 以前はeveningを使っていたけど、なんかまぶしい事に気付いて今はdesertつかっています。 インデント インデントの種類は3つ cindent smartindent autoindent { で終わる行で新しい行を作ったときにインデントを合わせてくれます。 smartindent使ってます。 Cファイル用にvimrcにコードを追加するとautocmdで設定できるという解説があるけど「autocmdとsetの行は1行にしなくてよいの?」と思いました。 :f

    プログラマ向けのコマンド - Guyon Diary
    sankaseki
    sankaseki 2008/10/18
    プログラマ向けのコマンド - Guyon Diary
  • ウインドウとバッファ - Guyon Diary

    vim完全バイブルを102Pまで読みました。 新しく覚えた事 :[count]splitで初期高さを指定できる こちらの方がよく使いそう。3CTRL-W_s newとvnew vnewがいい感じ。 今まで:badd hoge→:blとかやってた。 bmodfied 修正されたバッファへ移る メモ lsはbuffersは同じ機能。 #が表す代替バッファの正確な意味がよくわからない。 前回編集(表示)していたバッファという意味でよいのかなぁ? 発見。 h CTRL-^ CTRL-^ 代替ファイルを編集する(コマンド ":e #" と同じ)。 たいていの場合、代替ファイルは前に編集したファイルであ る。これを使うと2つのファイル間を素早く切り替えること ができる。 よし。ウインドウとバッファは完了!!*1 *1:vim完全バイブルの章であって、helpは氷山の一角

    ウインドウとバッファ - Guyon Diary
    sankaseki
    sankaseki 2008/10/18
    ウインドウとバッファ - Guyon Diary
  • Stringの空判定 - Guyon Diary

    変数が空文字でないかどうかを判定する場合、何通りか方法があるみたい。 variablesのヘルプで空文字判定にstrlenの記載がある。 :h variables 先頭の0によって8進数とみなされるのを防いだり、異なる基数を使うには|str2nr()|を 使う。 ブール(真理値)演算には数値が使われる。0は偽を意味し、非0は真を表す。 Note 次のコマンドをみると > :if "foo" "foo"は0に変換され、それは偽を意味する。文字列が空ではないか調べるためには strlen()を使用して次のようにする。 > :if strlen("foo") 他のヘルプでは if foo != "" で判定されている事が多い。 自分的には「!=」で判定だな。 それは、さておきvariablesヘルプに載っていた「文字列を数値として評価するには?」には気を付けねば。 文字列を強制的に数値に変換する

    Stringの空判定 - Guyon Diary
    sankaseki
    sankaseki 2008/10/18
    Stringの空判定 - Guyon Diary
  • g- - Guyon Diary

    vim7 undo branch - undo を使いこなす - bonar note 通常の無限undoだけで問題ないようにも思いますが、たまに困ることもあります。例えば、ある文章やコードを書いていて途中undoでいくつか履歴を戻り修正していたものの、よく考えるとさっきまで書いていたもののほうが良かったのでそっちに戻りたい、みたいな場合です。 vim7 ではそういったundo/redoの行き来を管理する機能「undo branch」がつきました。 知らなかったー。 こういうシチュエーション「あるある」*1と頷きながら読みました。 そういう時は :earlier hoge_time で感覚的に戻っていたけど、今度から紹介されていた g- g+ を使います。 基的な操作だけど効果絶大だー。 Let's :h undo-branches *1: いやかなりある。

    g- - Guyon Diary
    sankaseki
    sankaseki 2008/10/14
    g- - Guyon Diary
  • イケてない自分に消沈そして初心戻る - Guyon Diary

    最近VimMの影響で自分でもvimscriptを書いてみたくて取り組み始めたのですが、きちんとしたものが書けていません。エラーのハンドリングもできていなければ、適切なスコープも使えていなくて、処理もいまいち。 処理がいまいちなのは自分の実力がないからとしても*1、 エラーのハンドリング 適切なスコープ の2つはもっとデバッグをしたり、きちんとhelpを見ていれば防ぐ事もできたのでは?と・・・ ソースを見てもらう以前にやるべき事ができていなかったのが一番駄目だったと猛反省。実装方法以前の問題。 このままではいけないと思い、vim完全バイブル*2を1ページから読み直し始めました。 ViIMproved‐Vim完全バイブル 作者: Steve Oualline,高橋 則利出版社/メーカー: 技術評論社発売日: 2004/05メディア: 単行購入: 5人 クリック: 417回この商品を含むブログ

    イケてない自分に消沈そして初心戻る - Guyon Diary
    sankaseki
    sankaseki 2008/10/10
    イケてない自分に消沈そして初心戻る - Guyon Diary
  • システムコマンドの使い方を勘違いしていた。 - Guyon Diary

    vim完全バイブルの第7章まで進んだ。 システムコマンドの利用 を読んでいる時に理解ができなかった事があった。実際にやってみたら、「なんだ。そっか。」って内容でした。 :!10Gsort として例があるのですがどうしてフィルタできるのか? どうやって、rangeとコマンドを区別するのか? 実行してみると「10Gsortってコマンドありませんよ。」的なメッセージが表示されます。 そう、例題のシステムコマンドの「!」はコマンドラインモードではなくノーマルモードで行う事が前提だったようです。 ノーマルモードで、!10Gsortをタイプすると見事に実行したコマンドsortでフィルタされました。 ノーマルモードで!2jsortと入力するとコマンドラインモードに移ってこんな表示なりました。 :.,.+2! この状態で!のあとにsortを入力しエンターを押下します。 :.,.+2!sort《エンター押

    システムコマンドの使い方を勘違いしていた。 - Guyon Diary
    sankaseki
    sankaseki 2008/10/10
    システムコマンドの使い方を勘違いしていた。 - Guyon Diary
  • cpoptionsのオプション値 - Guyon Diary

    helpを見た。 compatible-optionsの略。 デフォルトのオプション値は「"aABceFs"」で、文字列を使ってフラグをあらわす。 オプション値は山盛りあるなぁ。 バッファ固有のオプションからの参照で辿ってきたので、sとSフラグに注目してみる。 *cpo-s* s バッファが初めてアクティブになる時点でバッファのオプショ ンが設定される。これは Vim version 3.0 と同じ動作であ る。そして既定ではこの動作を行う。これが含まれないと、 オプションはバッファが作られた時点で設定される。 *cpo-S* S バッファのオプションを常にバッファに移動する時点で設定 する ('readonly', 'fileformat', 'filetype' と 'syntax' 以外)。これは (ほとんど) Vi互換の設定である。 オプションの値は元のカレントバッファでの値になる

    cpoptionsのオプション値 - Guyon Diary
    sankaseki
    sankaseki 2008/10/10
    cpoptionsのオプション値 - Guyon Diary
  • オプションの種類について - Guyon Diary

    vimバイブルの1〜40Pまでのメモ。 compatible vi互換モードにするかどうか。 helpより vimrcがあればこのオプションはオフ(nocmpatible)になる。 uで指定されるファイルとは関係がない。 このの一番最初に書いてある事。 オプションに関して helpでオプションを探したい場合はシングルクォートで囲む。 P19で 'number'オプションは、ブーリアンオプションです。つまりonでもoffでもかまわない numberを始めとするnonumberと対になるオプション名があって、bangをつけることによってフラグを切り替えられることは知っていたが、ブーリアンオプションと言うんですね。options helpの一番最初に載っていた。 :h options ブーリアンオプションは必ず対となるnooptionnameが存在するのでしょうか? この文書内では、切替オプシ

    オプションの種類について - Guyon Diary
    sankaseki
    sankaseki 2008/10/10
    オプションの種類について - Guyon Diary
  • vimrcを読み込まずに起動する方法 - Guyon Diary

    忘れないようにメモ。 :h -u パラメータに「NONE」を渡す事でvimrcを読み込まずに起動できる。 gvimrc用は-Uが同等オプション。 :h --noplugin プラグインを読み込まないようにするオプション。 この3つのオプションを組み合わせて素のgvimを起動できる。 -u NONE -U NONE --noplugin 様々な機能がOFFになっていて、操作ミスを連発できる。 補完もOFFられているので、タイポもたくさんできる。 これでvimって便利だなって再認識できる事まちがいなし!! 当の目的はデフォルトの動作を確認する時に使ったという事実。

    vimrcを読み込まずに起動する方法 - Guyon Diary
    sankaseki
    sankaseki 2008/10/04
    vimrcを読み込まずに起動する方法 - Guyon Diary
  • コマンドラインモードでの履歴 - Guyon Diary

    最近追加したkeymapping。 cnoremap <C-K> <Up> cnoremap <C-J> <Down> これをすると何がうれしいのかといいますと :h 《ここでC-P》 とするとコマンドの履歴を表示する事ができるのですが、今までの履歴が順に呼び出されるので :echo "hogehoge" など:hで始まる履歴以外も表示されます。 :hで始まる履歴のみを表示するにはどうしたらいいかというと :h c_<Up> UpとDownキーで可能なのですが、無意識のうちにいつもキーボードの矢印キーを押してしまっていました。 ふと気付きmappingの設定をしたのが最近です。 特に意識をしなければなんの疑問ももたなかったと思います。ここ2年くらいずっとそうでしたし。 でも、最近は暫く試して良いと思った設定の感触を信じて微調整をよく行っています。 小さい事でも『ちりもつもればなんとやら』と

    コマンドラインモードでの履歴 - Guyon Diary
    sankaseki
    sankaseki 2008/10/04
    コマンドラインモードでの履歴 - Guyon Diary
  • mzschemeインタプリタオプションをつけたvimのビルドがうまくできない - Guyon Diary

    Macvimからmzschemeインタフェースを使いと思ってvimの再ビルドをしていますが、かなり手こずっています。 手順としては MacPortsのvimのPortfileをカスタマイズ 最低限のビルドをできるようにする mzschemeオプションをつけてビルドをする という感じで進めました。 メモ・記録として残します。 この手順が間違っている可能性がある事も明記しておきます。 Macportsでvimのビルド準備 まずは下記サイトから、Portfileをダウンロードし 【MacPorts WikiJP】 http://lapangan.net/darwinports/index.php?cmd=read&page=PrivatePortfile%2FVim&word=vim Portfileとfilesを差し替える。 【差し替えるファイルパス】 /opt/local/var/macp

    mzschemeインタプリタオプションをつけたvimのビルドがうまくできない - Guyon Diary
    sankaseki
    sankaseki 2008/08/17
    mzschemeインタプリタオプションをつけたvimのビルドがうまくできない - Guyon Diary
  • 今だからこそYankRing.vimを再入門 - Guyon Diary

    vimを使い出したら最初に「これ便利だよ」と見かける事の多いYankRing.vim。 【YankRing.vim】 http://www.vim.org/scripts/script.php?script_id=1234 今までYankRing2.0を使っていてCtrl-vで巡回ペーストの機能しか使っていなかったのですが、今日YankRing4.0がリリースされていたので試してhelpも見たんですけどすごいたくさんの機能が実装されているんですね。 こんな時こそ、YankRing.vimを再入門すべきだと思いました。 【名無しのVIM使い】-YankRing.vim : ヤンクの履歴を管理し、順々に参照、出力できるようにする- http://nanasi.jp/articles/vim/yankring_vim.html 英語は得意ではないけど、名無しさんの解説とhelp見ながらYankR

    今だからこそYankRing.vimを再入門 - Guyon Diary
    sankaseki
    sankaseki 2008/06/29
    今だからこそYankRing.vimを再入門 - Guyon Diary
  • 第2回:超!Gauche入門に取り組んだ - Guyon Diary

    Gauche入門の第2回が公開されたようですので、取り組んでみました。 なにはともあれ、実際にやってみよう!!というノリで(^^; 【第2回:超!Gauche入門】 http://www.thinkit.co.jp/article/74/2/ サンプルコードから文法の解説をしていくという形で進んでいく形でした。 まずはじゃんけんを表示するプログラムでJavaとSchemeのコードを比較するというものです。 [じゃんけんコードサンプルの引用] ;;; じゃんけんプログラム (use srfi-27) (define (guu-choki-pa r) (cond ((< r 0.33) "Guu") ((< r 0.66) "Choki") (else "Pa"))) (define (jyanken) (print (guu-choki-pa (random-real)))) (dotime

    第2回:超!Gauche入門に取り組んだ - Guyon Diary
    sankaseki
    sankaseki 2008/05/31
    第2回:超!Gauche入門に取り組んだ - Guyon Diary
  • vimScriptでIMEの状態を取得できる関数を書いた - Guyon Diary

    Schemeの学習メモを書いている時に、autocomplpop.vimで日語まで補完されるのでSchemeから脱線してvimScriptをぱっと書きました。 前から気になっていた事なのですが、vimはCursorIMというIMEの状態でカーソル色を変更するオプションはあるのに、状態を取得する関数が存在しません。IMEの状態でフックできればどれだけ便利だろうなーと思った事か・・・*1 Macでもやりたいところですが、まずはWindows専用で。 Win32APIRubyvimのコラボでインタフェース利用の嵐です。 "----------------------------- " IMEの状態を取得する " Return 1:ON 0:OFF "----------------------------- function! ImeStatus() if has('win32') rub

    vimScriptでIMEの状態を取得できる関数を書いた - Guyon Diary
    sankaseki
    sankaseki 2008/05/17
    vimScriptでIMEの状態を取得できる関数を書いた - Guyon Diary
  • 例外処理 - Guyon Diary

    vimscriptで例外処理が書ける事を知りました。 try catch finally だそうです。catchの省略形はcat。 知らなかったら間違ってしまいそう。 buffersとlsは同じ機能。 なるほど。

    例外処理 - Guyon Diary
    sankaseki
    sankaseki 2008/05/11
    例外処理 - Guyon Diary
  • fuzzyfinder.vimにmigemo検索が実装された! - Guyon Diary

    最近リリースされたプラグインの中でLife Changeポイントが100を超えている2つのプラグインを紹介します。*1 LustyExplorer fuzzyfinder どちらもExplorer系の役割をし、ふたつともインクリメンタルサーチでファイル検索をできます。 LustyExplorerの方が少し早くリリースされ、Rubyを駆使しているのに対してfuzzyfinderはvim7の vimscriptのみで構成されています。二つとも頻繁にバージョンアップが繰り返されています。 そして、私がもっとも期待していた機能が今日実装されました。 まずは、簡単ですが、二つを比較してみました。 できること・できないこと 【できること】 fuzzyFinder ファイルシステムから検索 最近使った履歴から検索(MRU.vimを利用) お気に入りから検索(IEのお気に入りとは別物) バッファから検索

    fuzzyfinder.vimにmigemo検索が実装された! - Guyon Diary
    sankaseki
    sankaseki 2008/05/04
    fuzzyfinder.vimにmigemo検索が実装された! - Guyon Diary
  • vimの中だけでRubyのirbっぽい事して完結させる - Guyon Diary

    前回の日記でvimExplorer事を次回書くと言いながらも、今回は違うことを書いてすいません。 vimExplorerは近々きっと・・・ 今日のお題もvimです。 スクリプト言語ではとてもPerlが好きなのですが、最近はRubyに心を奪われて自由な時間があれば そちらに時間を費やすようになっています。 まえおき ちょっとしたRubyのスクリプトの挙動を対話的に確認できるirbがとても便利です。 コンソールアプリなので基的には、 irb と叩き、irbのモードに入って irb(main):001:0> と表示された後、色々試したいことを入力していきます。今回はハッシュの例です。 例題の色は各言語の参考書によく使われていると思った色を入れてみました。*1 irb(main):001:0>lngColor = { :perl => 'blue', :ruby => 'red' } ここで返さ

    vimの中だけでRubyのirbっぽい事して完結させる - Guyon Diary
    sankaseki
    sankaseki 2008/05/04
    vimの中だけでRubyのirbっぽい事して完結させる - Guyon Diaryq