タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

emacsとselfに関するtaraoのブックマーク (12)

  • Caskはもう古い、これからはEl-Get - いまどきのEmacsパッケージ管理 - 貳佰伍拾陸夜日記

    秘伝のタレとなったEmacsの設定をgitで管理するなどして, 複数の環境で同じ設定を使うようにするのはかなり一般的になってきました. ただ, 使っている非標準パッケージも含めてきちんと管理しようと思うとけっこう大変です. とくに, 以下のような点はぜひとも実現したいところですが, (これまでは)なかなか難しい部分もありました. 使っているパッケージのインストールを自動化したい いろいろな配布元(GitHub, Emacs Wiki, 個人Webサイト, etc.)からインストールしたい きちんと動くことがわかっているパッケージバージョンに固定したい 新しいパッケージを簡単に試したい パッケージと設定の対応をわかりやすくしたい この目的のために, 最近はCaskを使うのが流行っているようですが, 上に挙げたポイントをすべて解決しているわけではありません. 筆者のまわりでも, Caskを使っ

    Caskはもう古い、これからはEl-Get - いまどきのEmacsパッケージ管理 - 貳佰伍拾陸夜日記
  • Emacsでプレフィックスキーにもコマンドを割り当てる - 貳佰伍拾陸夜日記

    Emacsでは, たとえばC-c C-jにコマンドが割り当たっているとすると, C-cまで打った時点では入力待ちになる. 慣れてくるとC-c C-jは素早く打てて, C-cを押して次が何のキーだったか迷うようなことはなくなってくるので, C-cを押してしばらく(0.5秒とか)経った場合は続けて別のキーを入力するつもりはないものとして扱って, C-c単体に別のコマンドを割り当てられるようにしてもよいのではないか. もっと深刻な話としては, たとえばESC xというキー列はM-xと同等に解釈されてしまうので, ESCそのものにコマンドを割り当てることはできない. もしもM-xはAlt+xでしか打たないというのであれば, M-xのときにはESCとxが同時に入力されるはずなので, ESCの入力があってからほんの少しでも(0.01秒とか)入力待ちになったら, それはESC単体の入力とみなしても問題は

    Emacsでプレフィックスキーにもコマンドを割り当てる - 貳佰伍拾陸夜日記
  • Emacsで状態に応じてモードラインの色を変える - 貳佰伍拾陸夜日記

    モードラインの色を自動的に切り替えるためのマイナーモードをだいぶ前に作ってあったので, 使用例とともに紹介. マイナーモードのソースコードと基的な使い方 ソースコード https://raw.github.com/tarao/elisp/ed1af2b55f9ce0a6a4882cf23cbcca4f27567efb/mode-line-color.el 使い方 マイナーモードを有効にする (require 'mode-line-color) (mode-line-color-mode) 色切り替えの定義を追加する (defun my-set-mode-line-color (setter) (unless mode-line-color-color ;; この定義よりも優先して色設定している定義があったら何もしない (cond (条件1 (funcall setter 色1)) (条件

    Emacsで状態に応じてモードラインの色を変える - 貳佰伍拾陸夜日記
  • GNU screenのattach時に環境変数を自動的に引き継ぐ - 貳佰伍拾陸夜日記

    GNU screenを使っていれば, 作業の途中でログアウトするときにdetachしておいて, 作業を再開するときにattachすれば, 作業途中の端末の状態がそのまま維持されるのでとてもべんり. たとえば, 最初作業していたのとは別のホストからsshでログインしてattachなんてこともできる. ただし, 最初にscreenを立ち上げたのとは別の端末でattachすると, screenは最初に立ち上げた端末の環境変数のままになっていて, 別のホストから接続していることを認識できず面倒な思いをすることがある. 今回はこれをなんとかしたという話. 問題の詳細 話を簡単にするために, DISPLAY環境変数を例にとって説明しよう. DISPLAY環境変数は, 基的には現在ログイン中の環境で使うべきXサーバを指し示している*1. 最初はホストAに直接ログインしているとする. DISPLAY環境

    GNU screenのattach時に環境変数を自動的に引き継ぐ - 貳佰伍拾陸夜日記
  • 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 - 貳佰伍拾陸夜日記
  • オペレータが入力されたら相対行番号を表示 - 貳佰伍拾陸夜日記

    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

    オペレータが入力されたら相対行番号を表示 - 貳佰伍拾陸夜日記
    tarao
    tarao 2010/09/27
    早速できた
  • Emacs (Viper/Vimpulse)で日本語の文節を扱う - 貳佰伍拾陸夜日記

    というか、Emacsだとうまく文節ごとに削除してくれたりするんだろうか。それだったらすごいな。 http://twitter.com/tyru/status/19890157313 という話があったので, どうなっているか調べてみた. まず移動に関して, Emacsの単語移動コマンドforward-word/backward-word (M-f/M-b)は, 日語の場合は文節(のようなもの)に働くらしく, 動作を見る限りは, 漢字の連続+ひらがなの連続をひとまとまりと見なしている感じ. 完全な文節ではないけれど, カーソル移動の単位として用いるには問題ないレベル. 実際にどういう処理をしているのか調べようと思ったけれど, forward-wordはEmacs LispではなくCで書かれているようで, ソースコードを読むのは面倒なので諦めた. Emacs上に実装されたViエミュレータである

  • 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 - 貳佰伍拾陸夜日記
  • zshの履歴検索にanything.elを使う(ターミナル版) - 貳佰伍拾陸夜日記

    anything.elを使ってzshの履歴検索をする - http://rubikitch.com/に移転しましたを参考に, ポップアップせずにターミナル内で動くようにしてみた. デモ 使い方 anything.el一式をインストールする anything.el anything-config.el anything-match-plugin.el anything-complete.el shell-history.elをインストールする shell-history.el (setq shell-history-file "~/.zsh_history") しないとダメかも 下記のanything-zsh-history.elを.emacsで読み込むようにする 下記のanything-history.zshrcを.zshrcで読み込むようにする emacsやzshを終了 zshを実行 e

    zshの履歴検索にanything.elを使う(ターミナル版) - 貳佰伍拾陸夜日記
  • 複数のメジャーモードを文脈に応じて切り替え - 貳佰伍拾陸夜日記

    multi-mode.elを使うと, 一つのバッファ内で文脈に応じてメジャーモードを切り替えることができる. けれど, カーソル位置を受け取って, 切り替えるべきメジャーモードとその有効範囲を返す関数を定義しないといけなくて, 使い方が難しい. そこで, 開始・終了の正規表現と, その範囲内で有効になるメジャーモードを指定するとmulti-modeに渡すべき関数を作って登録してくれる関数を書いた. 例 まず, (multi-mode-init) すると, バッファ内でmulti-modeを使う準備ができる. さらに, (multi-mode-install-chunk-finder "^>|javascript|$" "^||<$" 'javascript-mode) とすると, ">|javascript|"だけが書かれた行と"||<"だけが書かれた行に挟まれたテキストにカーソルが移動し

    複数のメジャーモードを文脈に応じて切り替え - 貳佰伍拾陸夜日記
  • Emacsサーバを適切に終了する - 貳佰伍拾陸夜日記

    emacs --daemon でサーバを起動しておいて, 複数のターミナルウィンドウから emacsclient -nw することで, ターミナルモードでも単一のEmacsプロセスで複数フレームの編集ができる. これはとてもべんり. でもごく稀にサーバを再起動したいことがあって, killすればよいかと思ったら, ターミナルが崩れて悲惨なことになってしまった. emacsclient -e '(kill-emacs)' とすれば正常にサーバプロセスを停止できるけれど, これだといちいち The current server still has clients; delete them? (yes or no) と訊かれてしまう. 調べてみるとserver-kill-emacs-query-functionが呼ばれているせいらしいので, これをkill-emacs-query-functio

    Emacsサーバを適切に終了する - 貳佰伍拾陸夜日記
  • 1