約 5,222,412 件
https://w.atwiki.jp/rffbl22/pages/34.html
ヒアドキュメント 標準入力に渡す、文字列をいくらでも、簡単にスクリプト中に記述できる。 GMTでは、ファイルから読むか、ファイルがなければ標準入力から読むという機能があるので ヒアドキュメントを使う機会は多分にある。 よくヒアドキュメントを使うコマンドとしては、psxy, pstext, makecptがある。 実際の例は、GMTの項目を参照。 ヒアドキュメントの書き方 [任意のコマンド] EOF hoge1 hoge2 hoge3 hoge4 hoge5 hoge6 EOF この例では、hoge1からhoge6までの3行で書かれた文字列がコマンドに渡される。 渡される文字列は、 の後でペアとなっている任意の文字列(この例ではEOF)の間の文字列である。
https://w.atwiki.jp/kobapan/pages/21.html
Emacs-Lisp Emacs-Lisp/buffer-listからファイルとディレクトリの一覧をフルパスで取得 (2015-02-24 21 31 08) Emacs-Lisp/setとsetfとsetqの違い (2015-03-05 20 31 12) Emacs-Lisp/mapcarとmapc (2015-03-10 07 56 33) Emacs-Lisp/ファイルパス関連 (2015-03-14 20 26 14) Emacs-Lisp/kill-other-buffers (2015-03-14 23 50 32) Emacs-Lisp/*scratch* の永続化 (2015-03-14 23 52 05) Emacs-Lisp/現在行をハイライト (2015-03-23 18 21 08) Emacs-Lisp/lambda関数にクォートはいるのか (2015-03-25 17 10 12) Emacs-Lisp/mapcar*で引数に複数のリストを取る (2015-03-25 17 50 30) Emacs-Lisp/前回終了時のフレームサイズで起動する (2015-06-28 17 40 40) Emacs-Lisp/diredでファイルをOSアプリケーションで開く (2015-06-28 19 48 18) Emacs-Lisp/trim Emacs-Lisp/文字列から文字列を検索する Emacs-Lisp/シェル の PATH と alias を、eshell に引き継ぐ Emacs-Lisp/書き込み権限のないファイル・ディレクトリをsudoで開く、sudo.el Emacs-Lisp/今開いているファイルの関数一覧をさっと見るkokopelli.el Emacs-Lisp/簡易なプロジェクト管理bookmark-buffers.el Emacs-Lisp/ウィンドウ間の移動 Macro Emacs-Lisp/defgroup (2009-01-04 07 57 23) Emacs-Lisp/Common Keywords (2009-01-04 08 14 58) Emacs-Lisp/font-lock-add-keywords (2009-01-04 16 11 26) Emacs-Lisp/defface (2009-01-04 16 22 42) Emacs-Lisp/defconst (2009-01-04 17 57 18) Emacs-Lisp/font-lock-fontify-buffer (2009-01-04 18 09 08) Emacs-Lisp/delq (2009-01-06 08 12 39) Emacs-Lisp/delete (2009-01-06 08 25 58) Emacs-Lisp/memq (2009-01-06 08 26 23) Emacs-Lisp/mapcar (2009-01-06 23 01 56) Emacs-Lisp/japanese-hankaku (2009-01-06 23 05 12) Emacs-Lisp/append (2009-01-08 07 58 47) Emacs-Lisp/concat (2009-01-08 07 59 40) Emacs-Lisp/case-fold-search (2009-01-09 06 03 20) Emacs-Lisp/case-replace (2009-01-09 06 07 00) Emacs-Lisp/nconc (2009-01-09 06 24 06) Emacs-Lisp/defsubst (2009-01-10 14 01 04) Emacs-Lisp/car-safe (2009-01-10 14 13 52) Emacs-Lisp/dolist (2014-05-26 17 44 58)
https://w.atwiki.jp/sevenlives/pages/2623.html
コンスセル? Lisp Emacs
https://w.atwiki.jp/hirono2021/pages/10.html
Emacs-Lisp read-string
https://w.atwiki.jp/rffbl22/pages/47.html
Perlヒアドキュメント ヒアドキュメントは、複数行にわたるような文字列を一度に渡すためのシステムである。 Bashの場合とほとんど同じで、違いは;(セミコロン)だけ Perlスクリプト例 #!/usr/bin/perl print EOT ; hogehoge foobar EOT 任意の文字列(ここではEOT)で挟まれたhogehogeとfoobarがprintに渡される。 文字列を (クオーテーション)で囲まないとエラーになる。 終わりの文字(ここではEOT)には、;(セミコロン)を付けない。
https://w.atwiki.jp/kobapan/pages/41.html
概要 Function delete OBJECT LIST この関数は、LISTからOBJECTに`equal であるすべての要素を破壊的に削除する。`member が`memeq に対応するように、Emacs-Lisp/delqに対応する。`member と同様に、要素とOBJECTとの比較には`equal を使う。一致する要素をみつけると、`delq と同様に要素を削除する。たとえば、つぎのとおり。 (delete (2) ((2) (1) (2))) = ((1)) Common Lispに関した注意:` GNU Emacs Lispの関数`member と関数 `delete はMaclispから受け継いだものであり、Common Lispからではない。 Common Lisp版では要素の比較には`equal を使わない。 呼出元 コメント 履歴 作者:kobapan 日付:2009/01/03 対象: 更新日 更新者 更新内容 コメント 名前 コメント
https://w.atwiki.jp/elisp/pages/12.html
文字列リファレンス その他 文字列を比較する 文字列の長さを得る 文字列を結合する 繰り返し文字列を生成する 大文字・小文字に揃える 先頭だけを大文字にする(キャピタライズ) 大文字と小文字の入れ替え コマンドの実行結果を文字列に設定する 複数行の文字列を作成する ヒアドキュメントの終端文字列をインデントする 複数行のコマンドの実行結果を文字列に設定する 部分文字列を取り出す 部分文字列を置き換える 文字列を指定されたパターンで分割する 文字列中の式を評価し値を展開する 文字列中の環境変数を展開する 文字列を1文字ずつ処理する 文字列を1行ずつ処理する 文字列の先頭と末尾の空白文字を削除する 文字列を数値に変換する (to_i) 数値を文字列に変換する (to_s) 文字列を浮動小数点に変換する (to_f) 8進文字列を整数に変換する (oct) 16進文字列を整数に変換する (hex) ASCII文字をコード値に(コード値をASCII文字に)変換する 文字列を中央寄せ・左詰・右詰する "次"の文字列を取得する 文字列を暗号化する 文字列中で指定したパターンにマッチする部分を置換する 文字列中に含まれている任意文字列の位置を求める 文字列の末端の改行を削除する カンマ区切りの文字列を扱う 任意のパターンにマッチするものを全て抜き出す 漢字コードを変換する マルチバイト文字の数を数える マルチバイト文字列の最後の1文字を削除する printf整形 文字列 リファレンス GNU Emacs Lispリファレンスマニュアル 文字列と文字 Strings and Characters - GNU Emacs Lisp Reference Manual Formatting Strings - GNU Emacs Lisp Reference Manual その他 Emacs Lisp の文字列操作まとめ s.el (文字列操作用ライブラリ) 文字列を比較する string-equal,string=関数を使います。 string=はstring-equalの別名として定義されているので、どちらも同じ機能です。 (string= "abc" "abc") ;= t (string= "abc" "ABC") ;= nil (string= "AB" "ABC") ;= nil 大文字小文字の区別を考慮する場合はcompare-strings関数を使います。 (compare-strings "ABC" nil nil "abc" nil nil t) ;= t 文字列の長さを得る (length "abcdefg") ;= 7 (length "日本語") ;= 3 文字列を結合する concat関数を使います。 ; 普通に結合 (concat "abc" "-def") ;= "abc-def" (concat "私は" "美味しく食べました") ;= "私は美味しく食べました" ; nilは無視 (concat "abc" nil "-def") ; 引数なしの場合は空文字列を返す (concat) ;= "" mapconcat関数を使えば各文字列の間に区切り文字を挿入することが出来ます。 (mapconcat # identity ("Hello" "Emacs" "Lisp") "-") ;= "Hello-Emacs-Lisp" 繰り返し文字列を生成する 一文字だけの繰り返しならばmake-string関数が使えます。 (make-string 10 ?X) ;= "XXXXXXXXXX" 文字列の繰り返しならば、文字列のシーケンスを作ってそれを結合するのが良いでしょう。 (apply # concat (make-list 5 "Hello")) ;= "HelloHelloHelloHelloHello" (mapconcat # identity (make-vector 5 "Hello") ",") ;= "Hello,Hello,Hello,Hello,Hello" 大文字・小文字に揃える upcase, downcase関数を使います (upcase "The cat in the hat") ;= "THE CAT IN THE HAT" (downcase "THE CAT IN THE HAT") ;= "the cat in the hat" 先頭だけを大文字にする(キャピタライズ) 他の言語に余り無くて便利な機能として、キャピタライズ(先頭だけを大文字にする)があります。 ;; 一文字目を大文字に、残りは全て小文字にする (capitalize "The cat in the hat") ;= "The Cat In The Hat" (capitalize "THE 77TH-HATTED CAT") ;= "The 77th-Hatted Cat" ;; 一文字目を大文字に、残りは何もしない (upcase-initials "The cat in the hat") ;= "The Cat In The Hat" (upcase-initials "THE 77TH-HATTED CAT") ;= "THE 77TH-HATTED CAT" 大文字と小文字の入れ替え (require cl) (let ((case-fold-search nil)) (map string # (lambda (c) (if (char-equal (upcase c) c) (downcase c) (upcase c))) "i lOVE eMACS.")) ;= "I Love Emacs." コマンドの実行結果を文字列に設定する (shell-command-to-string "file -ib /bin/bash") ;= "application/x-executable\n" 複数行の文字列を作成する ヒアドキュメントの終端文字列をインデントする 複数行のコマンドの実行結果を文字列に設定する 部分文字列を取り出す (substring string START optional END) substring関数を使います。 startは先頭の添え字、endは終端の添え字を表します(endは含めずにコピーする)。 ; 0(a)から、3(d)なので"abc"を生成 (substring "abcdefg" 0 3) ;= "abc" ; 負の添え字は逆から数える (substring "abcdefg" -3 -1) ;= "ef" ; 第2引数は省略可能で、終端までコピーを表す (substring "abcdefg" 2) ;= "cdefg" ; 先頭に0を渡すと文字列のコピーと等価になる (substring "abcdefg" 0) ;= "abcdefg" 部分文字列を置き換える CLライブラリのsetfマクロとsubstring関数を使います。この場合は変数の中身が破壊されます。 (require cl) (setq s "Apple Banana Orange") (setf (substring s 0 5) "Vine") ;= "Vine" s ;= "Vine Banana Orange" 文字列を指定されたパターンで分割する Rubyのsplitとほぼ同じように使えます、第2引数に渡すのは正規表現です。 デフォルトでは空白文字を区切り文字として扱います。 (split-string STRING optional SEPARATORS OMIT-NULLS) (split-string "Soup is good food" "o") ;= ("S" "up is g" "" "d f" "" "d") (split-string "Soup is good food" "o+") ;= ("S" "up is g" "d f" "d") (split-string "Soup is good food") ;= ("Soup" "is" "good" "food") 文字列中の式を評価し値を展開する 文字列中の環境変数を展開する (substitute-in-file-name "LANG=${LANG}") ;= "LANG=ja_JP.UTF-8" 文字列を1文字ずつ処理する 色々な方法があると思いますが、map関数を利用すると以下のように書けます。 以下のサンプルはstr変数の内容を1文字ずつ、*Messages*バッファに出力します。 (require cl) (setq str "a b c d\n** ** ** *\n123\n456\n") (map nil (lambda (x) (message x)) (split-string str "")) ;= *Messages* ;a ; ;b ; ;c ; ;d ; [2 times] ;* [7 times] ; [2 times] ;1 ;2 ;3 ; [2 times] ;4 ;5 ;6 ; [2 times] 文字列を1行ずつ処理する 色々な方法があると思いますが、map関数を利用すると以下のように書けます。 以下のサンプルはstr変数の内容を1行ずつ、*Messages*バッファに出力します。 (setq str "a b c d\n** ** ** *\n123\n456\n") (map nil (lambda (x) (message x)) (split-string str "\n")) ;= *Messages* ;a b c d ;** ** ** * ;123 ;456 文字列の先頭と末尾の空白文字を削除する もうちょっといい方法無いかなー。 (car (split-string (car (cdr (split-string " abcd " "^ +"))) " +$")) ;= "abcd" ; 正規表現を使ってみる (replace-regexp-in-string "^\\s-+\\|\\s-+$" "" " \t abc def \t ") ;= "abc def" 文字列を数値に変換する (to_i) string-to-number関数を使います。基数を指定することもできます。 (string-to-number STRING optional BASE) (string-to-number "256") ;= 256 (string-to-number "256.0") ;= 256.0 (string-to-number "-256.5") ;= -256.5 ;; 基数を指定する (string-to-number "110") ;= 110 (string-to-number "110" 8) ;= 72 (#o110) (string-to-number "110" 16) ;= 272 (#x110) 数値を文字列に変換する (to_s) string-to-numberの逆の関数、number-to-string関数を使います。 (number-to-string 256) ;= "256" (number-to-string -256.0) ;= "-256.0" (number-to-string -256.5) ;= "-256.5" 文字列を浮動小数点に変換する (to_f) number-to-string関数は浮動小数にも使えます。 (string-to-number "10.1") ;= 10.1 8進文字列を整数に変換する (oct) 16進文字列を整数に変換する (hex) ASCII文字をコード値に(コード値をASCII文字に)変換する 文字列を中央寄せ・左詰・右詰する ;; 左詰め (format "%10s" "foo") ;= " foo" (format "%10d" 1234) ;= " 1234" ;; 右詰め (format "%-10s" "foo") ;= "foo " (format "%-10d" 1234) ;= "1234 " "次"の文字列を取得する 文字列を暗号化する 文字列中で指定したパターンにマッチする部分を置換する (replace-regexp-in-string REGEXP REP STRING optional FIXEDCASE LITERAL SUBEXP START) (setq s "Apple Banana Apple Orange") (replace-regexp-in-string "Apple" "Pine" s) ;= "Pine Banana Pine Orange" 文字列中に含まれている任意文字列の位置を求める (setq s "Apple Banana Apple Orange") (string-match "Apple" s) ;= 0 (string-match "Banana" s) ;= 6 文字列の末端の改行を削除する replace-regexp-in-string "\n+$" "" STRING) カンマ区切りの文字列を扱う (split-string "001,TAKEUCHI Hitoshi,Yokohama" ",") ;= ("001" "TAKEUCHI Hitoshi" "Yokohama") 任意のパターンにマッチするものを全て抜き出す 漢字コードを変換する ; エンコード (encode-coding-string "漢字です" sjis) (encode-coding-string "漢字です" euc-jp) (encode-coding-string "漢字です" utf-8) (encode-coding-string "漢字です" emacs-mule) ; デコード (decode-coding-string (encode-coding-string "漢字です" utf-8) utf-8) ;= "漢字です" マルチバイト文字の数を数える マルチバイト文字列の最後の1文字を削除する printf整形 (format "このバッファは %s." (buffer-name)) ;= "このバッファは *scratch*." ;整数 %d (format "%d" 100) ;= "100" ;浮動小数点その1 %f (format "%f" 100.0) ;= "100.000000" ;浮動小数点その2 %g できるだけ短くなる出力にする (format "%g" 100.00) ;= "100" (format "%g" 100.05) ;= "100.05" (format "%g" 1000000000000000) ;= "1e+015" (format "%g" 0.00000000000000000001) ;= "1e-020" ;ダブルクォートなどをエスケープして出力 (format "この文字列 %S のダブルクォートなどはエスケープされる" "test") ;= "この文字列 \"test\" のダブルクォートなどはエスケープされる" (format "この文字列 %S のダブルクォートなどはエスケープされる" "\"test\"") ;= "この文字列 \"\\\"test\\\"\" のダブルクォートなどはエスケープされる"
https://w.atwiki.jp/elisp/
はじめに 逆引きEmacs LispはEmacs Lispを使ってやりたい事から、その方法を調べられる逆引きのリファレンスです。 ページの追加や編集、情報の追加等は自由に行って頂いて構いません。 今からEmacs Lispを書こうと思った時に一番ストレスを感じるのは、 RubyとかPerlとかで出来るあれはEmacs Lispでどうやるの? ってことだと思います(私自身が今現在そうだったりします)。 これからEmacs Lispを学ぼうという方々にとって、少しでも参考になれば幸いです。 ※ なおページ構成や内容については逆引きRubyを大分参考にさせて頂きました。 目次 文字列 数値 日付と時刻 ハッシュテーブル リスト 正規表現(パターンマッチ)
https://w.atwiki.jp/elisp/pages/17.html
リファレンス GNU Emacs Lispリファレンスマニュアル カレンダーと日誌のカスタマイズ Time of Day - GNU Emacs Lisp Reference Manual Time Conversion - GNU Emacs Lisp Reference Manual Parsing and Formatting Times - GNU Emacs Lisp Reference Manual その他 人類滅亡までのカウントダウンを Emacs に表示する Emacs Lisp Date/Time String 現在時刻を取得する 現在時刻を取得するにはcurrent-time関数かformat-time-string関数を使用します。 current-time関数の返り値はUNIX TIMEで (HIGH LOW MICROSECOND) という形式のリストになっています。 HIGHはUNIX TIMEの上位16bit、LOWはUNIX TIMEの下位16bitです。 (current-time) ;= (21307 9285 839000) (+ (* (car (current-time)) (expt 2.0 16)) (cadr (current-time))) ;= 1396384837.0 あるいは単に(format-time-string "%s")とすれば秒換算したUNIX TIMEの文字列が返ります。 (format-time-string "%s") ;= "1396384837"
https://w.atwiki.jp/cupnes/pages/28.html
Helmのインストール Anythingの無効化 .emacsからコメントアウト ;; ;; anything.elの設定 ;; (require anything-startup) Helmのダウンロード・ビルド $ cd ~/site-lisp/ $ git clone https //github.com/emacs-helm/helm.git $ cd helm/ $ make .emacsへ追加 以下を追加 ;; Helmの設定 (add-to-list load-path "~/site-lisp/helm") (require helm-config) 参考 https //github.com/emacs-helm/helm http //d.hatena.ne.jp/tomoya/20130519/1368942603 面白そうな記事のまとめ Software Design連載記事「Emacsのトラノマキ」の原稿 GNU GLOBALの設定 $ cp /usr/local/share/gtags/gtags.el ~/site-lisp/ 以下を~/.emacsに追記 ;; GNU GLOBAL(gtags.el)の設定(ここから) (add-to-list load-path "~/site-lisp") (autoload gtags-mode "gtags" "" t) (setq gtags-mode-hook (lambda () (local-set-key "\M-t" gtags-find-tag) (local-set-key "\M-r" gtags-find-rtag) (local-set-key "\M-s" gtags-find-symbol) (local-set-key "\C-t" gtags-pop-stack))) (add-hook gtags-select-mode-hook (lambda () (setq hl-line-face underline) (hl-line-mode 1))) (add-hook c-mode-hook (lambda () (gtags-mode 1) (gtags-make-complete-list))) ; Customization (setq gtags-suggested-key-mapping t) (setq gtags-auto-update t) ;; GNU GLOBAL(gtags.el)の設定(ここまで) 参考 http //d.hatena.ne.jp/higepon/20060107/1136628498 c-modeのタブ幅(インデント幅)設定 (setq c-default-style "linux" c-basic-offset 4) http //www.emacswiki.org/emacs/IndentingC auto-complete-mode.el http //cx4a.org/software/auto-complete/index.ja.html c-modeの自動インデント有効化/無効化 C-c C-lで切り替え デフォルトで無効化する場合は以下を.emacsに追加 (add-hook c-mode-hook (lambda () (c-toggle-electric-state -1))) 参考 http //d.hatena.ne.jp/syohex/20110624/1308871777 導入したいemacs設定 http //shibayu36.hatenablog.com/entry/2012/12/29/001418 auto-install.el 「〜.el」のスクリプトを追加する際の ダウンロード 保存 バイトコンパイル ロード を自動化する 1. auto-install.elをダウンロード、保存 http //www.emacswiki.org/emacs/download/auto-install.el からダウンロードして、load-pathの通った場所に配置し、バイトコンパイル コマンドライン上で行う場合は以下のように行える $ mkdir -p ~/.emacs.d/auto-install $ cd ~/.emacs.d/auto-install $ wget http //www.emacswiki.org/emacs/download/auto-install.el $ emacs --batch -Q -f batch-byte-compile auto-install.el 2. .emacsに設定を追加 (add-to-list load-path (expand-file-name "~/.emacs.d/auto-install")) (require auto-install) (auto-install-update-emacswiki-package-name t) (auto-install-compatibility-setup) (setq ediff-window-setup-function ediff-setup-windows-plain) Emacsでちょっとずつスクロールする http //hitode909.hatenablog.com/entry/20100525/1274771578 タブ幅を変更する 例)タブ幅を半角スペース4個分にする (setq-default tab-width 4) (setq default-tab-width 4) (setq tab-stop-list (4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120)) 参考: http //masutaka.net/chalow/2009-07-10-4.html ある特定の色設定を編集する 例えば、sh-modeのヒアドキュメントの色設定が見難いなどの場合 設定を変更したいモードをバッファに開いた状態で以下のコマンドを実行 M-x list-faces-display 編集したい色にカーソルを合わせてEnter そして、編集後は [Save for future sessions] を選択することで、設定ファイルに保存してくれる 必要に応じてColor Themeを変更する ~/site-lisp/color-theme-6.6.0/ にColor Themeが展開されているとする。 ロード M-x load-file Load file ~/site-lisp/color-theme-6.6.0/color-theme.el 初期化 M-x color-theme-initialize テーマ設定 (color-theme-dark-laptopのテーマを設定する場合) M-x color-theme-dark-laptop 参考 http //openlab.dino.co.jp/2008/07/04/222725288.html 文字サイズを変える 自分の環境では以下でできた。 文字を大きく C-x C-; 文字を小さく C-x C-- デフォルトのサイズに戻す C-x C-0 参考 http //tkmsaoi.hatenablog.com/entry/2012/09/05/232904 view-modeのキーバインド (require view) (define-key view-mode-map (kbd "N") View-search-last-regexp-backward) (define-key view-mode-map (kbd "?") View-search-regexp-backward) (define-key view-mode-map (kbd "G") View-goto-line-last) (define-key view-mode-map (kbd "b") View-scroll-page-backward) (define-key view-mode-map (kbd "f") View-scroll-page-forward) (define-key view-mode-map (kbd "h") backward-char) (define-key view-mode-map (kbd "j") next-line) (define-key view-mode-map (kbd "k") previous-line) (define-key view-mode-map (kbd "l") forward-char) (define-key view-mode-map (kbd "J") View-scroll-line-forward) (define-key view-mode-map (kbd "K") View-scroll-line-backward) 読み取り専用時には「view-mode」を使用する (setq view-read-only t)