タグ

ブックマーク / tarao.hatenablog.com (11)

  • Evil: EmacsをVimのごとく使う - 付録 (カスタム変数一覧) - 貳佰伍拾陸夜日記

    Evilのカスタム変数の一覧です. 導入編 設定編 拡張編 付録 カスタム変数一覧 evil-auto-indent evil-shift-width evil-shift-round evil-cross-lines evil-move-cursor-back evil-repeat-move-cursor evil-kbd-macro-suppress-motion-error evil-track-eol evil-bigword evil-mouse-word evil-cjk-emacs-word-boundary evil-cjk-word-separating-categories evil-cjk-word-combining-categories evil-want-fine-undo evil-want-change-word-to-end evil-want-C-i-

    Evil: EmacsをVimのごとく使う - 付録 (カスタム変数一覧) - 貳佰伍拾陸夜日記
    hchbaw
    hchbaw 2013/03/04
  • Evil: EmacsをVimのごとく使う - 拡張編 - 貳佰伍拾陸夜日記

    Roads? Where we're going we don't need roads. Back to the Future Evilの真髄はその拡張性です. 稿では主にチュートリアルを通して, Evilを拡張する方法を解説します. 導入編 設定編 拡張編 Evilの拡張 例1: コメントアウトオペレータ 単純な選択範囲のコメントアウト 矩形選択範囲のコメントアウト キーマップ 例2: 次のシンボルへ移動するモーション モーションの定義 テキストオブジェクト キーマップ 例3: 同じ文字の間を表すオブジェクト 単純な実装 選択範囲の拡大 キーマップ 例4: かなステート ステートの定義 かな変換コマンド キーマップ リファレンス ステート コマンド オペレータ モーション テキストオブジェクト 補助関数 おわりに 付録 Evilの拡張Evilはもともと拡張性を考慮して設計されています

    Evil: EmacsをVimのごとく使う - 拡張編 - 貳佰伍拾陸夜日記
    hchbaw
    hchbaw 2013/03/04
  • Evil: EmacsをVimのごとく使う - 設定編 - 貳佰伍拾陸夜日記

    Then you will see, it is not the spoon that bends, it is only yourself. The Matrix EmacsあるいはVimに慣れ親しんでいれば, Evilを使うのにある程度は勝手がわかるものの, 逆にしっくりこない点も多いでしょう. EvilEmacsの機能との相互運用性を重視していることから, Vimユーザにとって不慣れな点が生じることは避けられず, EvilVimをエミュレートする以上, Emacsユーザにとって不慣れな点が生じることも避けられません. 稿では, どちらに慣れ親しんだユーザにとっても快適に使えるようにEvilをカスタマイズするためのヒントを紹介します. ただし, いくらカスタマイズしても完全なVimや完全なEmacsになることはありません. 使い勝手をよくして自分の好みに合わせながら, できるだけ

    Evil: EmacsをVimのごとく使う - 設定編 - 貳佰伍拾陸夜日記
    hchbaw
    hchbaw 2013/03/04
  • Evil: EmacsをVimのごとく使う - 導入編 - 貳佰伍拾陸夜日記

    You underestimate the power of the dark side. Star Wars: Episode VI - Return of the Jedi EmacsはLispで自由自在に拡張でき, エディタの枠におさまらず, コンピュータ上でのあらゆる創造的活動のための環境として発達してきました. しかし, 少なくともファイルを閲覧し編集するという操作に関しては, vi/Vimが非常に優れたインタフェースであることもまた事実です. 両者はそれぞれが根強いファンを抱え, 長らく宗教戦争を繰り返してきました. この対立が止揚された結果として生まれたのがEvilです. Emacsのなんでもありな環境の上でVimをエミュレートすることで, EmacsでありながらVimの操作性を実現したのです. 稿では, Evilとは何かということに始まり, 具体的な導入方法について解説し

    Evil: EmacsをVimのごとく使う - 導入編 - 貳佰伍拾陸夜日記
    hchbaw
    hchbaw 2013/03/04
  • Yet another icomplete - 貳佰伍拾陸夜日記

    icompleteの縮小版のようなものを作った. 動機 anything-find-fileもIdoも肌に合わないし, Iciclesなんてもう初期状態のインタフェースが見辛すぎてカスタマイズする気にもなれなかったので, http://d.hatena.ne.jp/mooz/20101003/p1は非常に素晴らしかった. さらにインクリメンタルに補完できれば, auto-fu.zshのようにできそう. ただ, icomplete-modeをそのまま有効にしたのではいろいろ競合してうまくいかなかった. そもそも別バッファに候補一覧を出したいのに, icompleteはミニバッファにすべてを詰め込もうとする. 候補一覧の表示方法は従来通りで, 表示のトリガだけ入力に連動して欲しい. そんなわけで, 新たにicompleteもどきを実装した. 機能 入力に応じて自動的に補完候補バッファを表示 曖

    Yet another icomplete - 貳佰伍拾陸夜日記
    hchbaw
    hchbaw 2010/10/11
    おおお、なるほど!すごいなあ。
  • ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記

    ラムダ計算は, 多くのプログラミング言語, とくに関数型言語の原形になっています. ラムダ計算について理解しておくことは, 多くのプログラミング言語の習得に役立つでしょう. ラムダ計算はチューリング完全で, 計算能力としてはふつうのプログラミング言語と同じです. ラムダ計算で計算を書く訓練をしておくことは, 任意の計算を関数のみを使って(他の制御構文を用いずに)書くときに役立ちます. ふつうに書いたら煩雑な処理を, 関数型言語のやり方で書くとすっきりすることが多々あり, コードを自由自在に書くためには必須の考え方と言えるでしょう. 項 ラムダ計算の式を項(term)と言います. 項は変数, 抽象, 適用のいずれかです. 変数 変数(variable)はふつう1文字で書きます. 変数には関数内の束縛変数(bound variable)か自由変数(free variable)かという区別があり

    ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記
  • オペレータが入力されたら相対行番号を表示 - 貳佰伍拾陸夜日記

    Yokohama.vimの行削除のスライドみてて、オペレータが入力されたら、その行から相対的行番号を一時的に左側に表示すればいいんではないかと思った。Vimスクリプトでそんなことできるかどうかは知らんけど。 https://twitter.com/m2ym/status/25606822787 という話があったので, Vimpulseでやってみた. 必要なもの Emacs 22以上(動作確認は24.0.50) Vimpulse Gitリポジトリの最新版推奨 linum.el (Emacs 23からは標準で入っているので不要) linum+.el (相対行番号表示のためのマイナーモードを提供) 設定 .emacsのどこかで以下のようにする. (require 'vimpulse) (require 'linum+) (add-hook 'vimpulse-operator-state-hoo

    オペレータが入力されたら相対行番号を表示 - 貳佰伍拾陸夜日記
  • auto-fu.zshでコマンドを確定するときに不完全な補完サフィックスを無視する - 貳佰伍拾陸夜日記

    auto-fu.zshのちょっとした改善. 動機 auto-fu.zshを使っていると, TABを押さなくても自明な補完候補はカーソルの後ろに表示される. たとえば, directory-with-very-long-nameというディレクトリの中身を見たいときに $ ls -l dir まで打てば(他にdirではじまるディレクトリが無ければ), $ ls -l directory-with-very-long-name/ という感じに補完されて, このままEnterを押せば目的のディレクトリがlsされる. これはとてもべんり. ただ, 個人的にはEnterを押さずにTABを押してしまうことがよくある. たとえば, directory-with-very-long-nameの中に01, 02というファイルがあり, 他には何もなかったとすると, TABを押したときには次のようになる. $ l

    auto-fu.zshでコマンドを確定するときに不完全な補完サフィックスを無視する - 貳佰伍拾陸夜日記
    hchbaw
    hchbaw 2010/08/23
    vimperatorもこんな具合の動作になりますよね〜/したいですよね〜のまちがえ orz
  • Emacs (Vimpulse)でtextobj-between - 貳佰伍拾陸夜日記

    textobj-between 書いた - 永遠に未完成のtextobj-betweenをEmacs+Vimpulseでも使えるようにしてみた. i"やa"がvimpulse-quote-rangeとして実装されていて, クォート文字を任意に指定できるようになっていたので, 1文字read-charしてそれをvimpulse-quote-rangeに渡すようにするだけでできた. ただし, vimpulse-quote-rangeは内部でscan-sexpsを呼んでいて, どうやらこれがクォート文字が特定の記号の場合に動作を妨げるようなので, 一時的にadviceで無効化している点があまりイケてない. .emacsに以下のように書いておくと, ciF,で「,」に挟まれた範囲を変更したり, viF|で「|」に挟まれた範囲を選択したりできる. (defadvice scan-sexps (aro

    Emacs (Vimpulse)でtextobj-between - 貳佰伍拾陸夜日記
  • Emacs (Vimpulse)でtext-objectでも使えるコメントアウトoperator - 貳佰伍拾陸夜日記

    EmacsでviをエミュレートするViperを強化してVimをエミュレートするようにしたのがVimpulse. ここ最近開発が活発で, 設計もかなりスマートになって, ゆくゆくは家Viperを置き換えることを目指すまでになっている. 入れる場合は最新版をgit cloneする. ぼちぼち散歩 Vimでoperator-userを使って他のプラグインをoperatorとして使えるようにしてみたを見て, Vimpulseでもコメントアウト/アンコメントするoperatorがあったら便利そうなので作ってみた. 実はVimpulseの中のvimpulse-operator.elに道具は揃っている. リージョンに対してなにかするコマンドがあれば, それをvimpulse-convert-to-operatorマクロに渡すだけでoperatorが出来上がる. たとえば.emacsで以下のようにしてお

    Emacs (Vimpulse)でtext-objectでも使えるコメントアウトoperator - 貳佰伍拾陸夜日記
  • auto-fu.zshを使う+キャンセルできるようにする - 貳佰伍拾陸夜日記

    はてなブログを使ってみた. これはすごい! まず, デモで補完候補がグループ別にメニュー表示されているのがカッコよかったので真似してみた. setopt auto_list auto_param_slash list_packed rec_exact unsetopt list_beep zstyle ':completion:*' menu select zstyle ':completion:*' format '%F{white}%d%f' zstyle ':completion:*' group-name '' zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' zstyle ':completion:*' keep-prefix zstyle ':completion:*' completer _oldlist _complet

    auto-fu.zshを使う+キャンセルできるようにする - 貳佰伍拾陸夜日記
    hchbaw
    hchbaw 2010/06/01
    おおおキャンセルできるようになる!ありがとうございます!精進します。
  • 1