somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

Emacs

【Emacs】リージョンの大文字小文字変換とコマンドの無効

リージョン内の大文字小文字変換と、コマンドの無効についてのメモです。 変換 リージョン選択後、以下のコマンドで変換できます。 ;; 小文字変換 ;; キーバインド:C-x C-l M-x downcase-region. ;; 大文字変換 ;; キーバインド:C-x C-u M-x upcase-region…

【Emacs】現在桁のハイライト

インデントが合っているかが不安になるときがあるので導入しました。 col-highligt.el 名前のとおり、桁をハイライトするためのelispです。以下の設定を加え、インストール部分を評価後、設定を評価します。 ;; 現在桁をハイライトする ;; (auto-install-bat…

【Emacs】ウィンドウ幅と高さの変更

Emacsでウィンドウの幅と高さを変更する方法についてのメモです。 幅 幅を変更するには以下のコマンドを実行します。 ;; キーバインド:C-x { M-x shrink-window-horizontally ;; キーバインド:C-x } M-x enlarge-window-horizontally それぞれ括弧の閉じて…

【Emacs】バッファを閉じてもUndo

バッファを閉じてしまうとUndoできなくなってしまいます。それを解決するelispを発見したのでメモしておきます。 インストール ;;; 閉じたバッファも Undo できるようにする ;; (install-elisp "http://cx4a.org/pub/undohist.el") (require 'undohist) (und…

【Emacs】キーの入れ替え

emacs内部で、あるキーを別のキーにする方法のメモです。 キーのいれかえ 下記のようにして入れかえることができます。 (keyboard-translate ?\C-h ?\C-?) C-?はバックスペースです。つまり、C-hにelispの関数を実行するように割り当てるのではなく、単純に…

【Emacs】起動しているEmacsにアクセスする

Emacsを再びたちあげずに、起動しているEmacsにアクセスする方法についてのメモです(NTEmacs)。 Firefox(KeySnail)から KeySnailには、テキストを入力できるフォームに対して直接入力するのではなく、外部エディタを用いて入力することができます。他のアド…

【Emacs】自動改行の制御

Emacsでは、一行に記述している文字が多くなると自動で改行されます。これを制御する方法をメモしておきます。 自動改行 下記のような設定が行われているようです。 (setq fill-column 80) (setq text-mode-hook 'turn-on-auto-fill) (setq default-major-mo…

【Emacs】編集中のファイルをブラウザで開く

編集中のファイルをブラウザで開く方法についてです。 browse-url-* まず、指定したURLをブラウザで見るコマンドbrowse-urlがあります。このコマンドを拡張しているのが今回紹介する以下のコマンドです。 browse-url-of-file ;; または ;; C-c C-v browse-ur…

【Emacs】yasnippetの設定

略語から定型文を入力する機能を提供するyasnippetの設定に関するメモです。設定に関する情報は存在するが、まとまっていなかったので苦労しました。特に、anythingとの連携部分は大変でした。 ダウンロード ここが一番大変でした。まずは、以下の手順でyasn…

【Emacs】前置引数とinteractiveの関係

前置引数とinteractiveの関係について調べました。 前置引数 前置引数とは、C-uによって指定される繰り返しの回数です。 interactive 前置引数を利用するには、関数内でinteractiveのpを使用します。pは、小文字だけでなく大文字も存在しそれぞれ…

【Emacs】同じキーを連続して入力したときの動作を変更する2

前回とは違って、既存コマンドの振る舞いを変更します。 設定とインストール 下記設定を追加し、インストール部分を評価します。 ;; 同じコマンドを連続して実行したときの振る舞いを変更する ;; (auto-install-batch "sequential-command") (require 'seque…

【Emacs】同じキーを連続して入力したときの動作を変更する

同じキーを連続して入力したときの動作を変更します。たとえば、左括弧を入力したときの次の行動は、ほぼ右括弧を入力します。この動作を省略するためのelispがあったので導入しました。 インストールと設定 下記設定を加え、コメントのインストール部分を評…

【Emacs】メニューを日本語化してみた

いまさらですが、メニューバーを日本語化してみました。 menu-tree 下記設定を加えることで日本語化できます。 ;; メニューを日本語化 ;; (install-elisp-from-emacswiki "menu-tree.el") (require 'menu-tree nil t) 今回この設定を追加した理由は、メニュ…

【Emacs】zencodingのインストール

emacsにzencodingを導入します。 ダウンロード https://github.com/rooney/zencodingからダウンロードできます。ダウンロードしたファイルをloadパスを通している場所に格納しておきます。 設定 下記のように設定しました。 ;;; zen-coding ;; https://githu…

【Emacs】キルリングの履歴を見る

コピペを複数回したいときや、間違って再度コピーしてしまったときなどにとても役立つelispです。 anything-show-kill-ring anythingをインストールしている前提です。設定もとても簡単です。 ;; killringの履歴を表示する (global-set-key (kbd "M-y") 'any…

【Emacs】文字コードと改行コードの設定

文字コードや改行に関するメモです。 確認方法 モードラインの一番左に記述されています。 入力モード 文字コード 改行コード 書き込み可能状況 編集有無状況 文字コードは各文字コードの先頭大文字、改行コードはOSの種類が表示されます。 文字コードおよび…

【Emacs】ファイル末尾を分かりやすくする

ファイル末尾を分かりやすくする方法についてのメモです。 indicate-* 色々調べてみると、組み込み関数を使ってよくある[EOF]と表示するような方法もあったのですが、シンプルにできる方法がありました。以下の設定を追加することで分かりやすくなります。 ;…

【Emacs】空白系文字の表示と末尾の半角スペースの削除

開発していて見えていないと困るスペース系の文字を表示するようにしました。 空白系文字の表示 2通りの方法がありました。 http://openlab.dino.co.jp/wp-content/uploads/2008/07/dotemacs-show-white-spaces.txt http://homepage3.nifty.com/satomii/soft…

【Emacs】置換と制御文字

Emacsに表示された^Mという文字を削除したときのメモです。 置換 対象となる文字がたくさんあったので置換することにしました。置換方法は以下のコマンドで行えます。 M-% とても押しにくいです。このコマンドを入力後、yまたはSPCで置換してから次に進みま…

【Emacs】バージョン管理

バージョン管理についてのメモです。 VC.el いろいろあるバージョン管理のコマンドをEmacsで代わりに実行することができるようになります。また、各バージョン管理システムごとにキーバインドを設定する必要はなく、統一されます。VC.elは、NTEmacsの場合デ…

【Emacs】DDSKKで日本語入力

DDSKKという日本語入力システムの導入メモです。 DDSKK 単語とその送り仮名の区切りを各個人が好きなように指定して辞書に登録し、辞書を用いて日本語を入力していきます。存在しない単語や区切りをスムーズに辞書に登録できるようになっています。なれない…

【Emacs】日本語入力と辞書登録

shiftキーを押すのが面倒になってきたので、代わりになるキーを割り当て、離していても機能するようにしました。 sticky.el 下記設定を追加して、コメント部分を評価してインストールします。その後、コメントの下にある2行を評価します。 ;; (install-elisp…

【Emacs】リモートサーバにsshでアクセスしてファイル操作【putty】

Emacsからputtyを用いてsshでアクセスし、ファイルを操作しました。 PATH Emacsからputtyを用いるために環境変数PATHをEmacs内で設定します。使用しているputtyはごった煮版です。 (setenv "PATH" (concat "C:\\putty" ";" (getenv "PATH"))) C-x C-f 操作す…

【Emacs】M-xが効かない

M-xが効かなくなった時のメモです。 Windowsでは M(Alt)を使う代表的なタスク切替で試したところ問題なく動きました。 Emacsでは M-vやM-fなどで試したところ問題なく動きました。 キーの優先度 「Emacs M-x 効かない」でググったら、先日からデフォで動かし…

【Emacs】使い捨てファイル

使い捨てファイルについてのメモです。 インストール/設定 open-junk-file.elをEmacsWikiからインストールして、読み込みとファイルを格納するディレクトリおよびファイル名を設定しています。 ;; 使い捨てファイル ;; (install-elisp-from-emacswiki "open-…

【Emacs】矩形(くけい)選択

矩形(くけい)選択を便利にする設定のメモです。今まで「たんけい」だと思ってました。もしかして「短形」⇒「矩形」とさようならできそうです。 emacsの矩形の扱いにくさ emacsはデフォルトで矩形表現をできないようです。また、矩形に対するコピーや切り取り…

【Emacs】php開発の設定

emacsでphpのソースを書けるようにします。がっつり書くときはテストのためにもEclipseを使うと思いますが、簡単なものを書くときは、サクラエディタを使わないようにします。 インストール phpファイルを開いた時にphp専用モードで開くようにします。これで…

【Emacs】anythingのインストール

anythingのインストールをしたので、メモしました。wgetで引っかかってたときはちまちま一つずつインストールなので大変でした。 インストール anything一式をインストールするために下記コマンドを実行します。 M-x auto-install-batch RET anything 設定 …

【Emacs】undoとredo

編集の取り消し(undo)、取り消しの取り消し(redo)の設定を行います。 問題点 undoとredoは、C-/で行えます。つまりemacsのundoとredoは同じキーで動作します。しかも、undoとredoを行き来することがあるので厄介です。これを解決するためにredo+をインストー…

【Emacs】cmigemo

emacsでcimgemoを使ってインクリメンタルサーチを便利にします。まだ完全じゃないけどメモ・・・ ダウンロード Meadow/Emacs memo: インクリメンタルサーチと置換からコンパイル済みバイナリを入手します。 設定 ;; cmigemoでインクリメンタルサーチを便利に…

【Emacs】背景色の変更

init.elで設定する方法があるようですが、起動オプションだけでいつもブログで書いているsyntaxhirighterの色にすることもできるようです。 reverse 以下のように起動することで実現できます。 (run)emacs.exe --reverse これで背景色が白から黒に変更できま…

【Emacs】カーソルの位置を元に戻す

カーソルの位置を元に戻すためのelsp導入メモです。 インストール ;; 現在より1つ前にいた位置にカーソルを戻す M-x auto-install-from-emacswiki point-undo.el ;; 最後に修正した位置にカーソルを戻す M-x auto-install-from-emacswiki goto-chg.el 設定 …

【Emacs】ツールバーとスタートページの非表示

必要ないものを表示しないようにしてみました。設定は以下のとおりです。 ;; ツールバーの非表示 (tool-bar-mode -1) ;; スタートアップページを表示しない (setq inhibit-startup-message t) ツールバーの非表示により、縦に二行分くらい広がりました。スタ…

【Emacs】補完 オートコンプリート

コードの自動補完を行ってくれるauto-completeのメモです。 インストール auto-install-from-emacswiki ; RET auto-complete.el 設定 下記設定を追加し、評価しておきます。 ;; オートコンプリートモードON (require 'auto-complete) (global-auto-complete-…

【Emacs】最近使ったファイル一覧

最近使ったファイル一覧をバッファに表示するrecentf-ext.elのインストールをしました。インストールした理由は、init.elを毎回開いては設定を追加する日々なので、これを解消するためです。 インストール いつもどおり、auto-install経由でインストールしま…

【Emacs】行番号と色付けに関する設定

行番号と色付けに関する設定を追加しました。設定は以下のとおりです。 ;; 現在行のハイライト (global-hl-line-mode 1) ;; 対応する括弧に色をつける (show-paren-mode 1) ;; 行番号と横方向の桁数(半角ベース)をバーに表示する (line-number-mode 1) (colu…

【Emacs】auto-install用のwget【ツール】

auto-installでwgetを用いてダウンロードすると、SYSTEM_WGETRC関連の文字列が付加される問題がありました。これが(とりあえず)解決したので、メモしておきます。その文字列とは、以下のようなものです。 SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswg…

【Emacs】関数の引数について

引数に&がついていたものがあったので、それについてのメモです。 &なし必須 &optional省略可能(それぞれの変数に割り当てられる) &rest省略可能(可変でリストにまとめられる) &optionalのあとの引数はすべて省略可能です。つまり下のような関数があった場合…

【Emacs】スペシャルフォームcondによる条件分岐

Elispでの複数条件分岐についてのメモです。 cond condは関数じゃなくてスペシャルフォームだそうです。 実行したい処理ごとに条件文を詳細に決めることができます。 (defun my-cond-test (test1 test2) (cond ; 同値の場合 ((eq test1 test2) (format "test…

【Emacs】interactiveの用途と使い方

タイトルどおりinteractiveについてのメモです。 用途 interactiveの用途は2つです。 関数をコマンドとして使用できるようにするため コマンドとして実行した関数に、引数を対話的に渡すため コード interactive用の関数をinit.elに追加しました。 (defun my…

【Emacs】Windowsアプリに関連付けて実行

Emacsからディレクトリやテキスト、WordやExcelなどのWindowsアプリを実行すると、Emacs内で処理されます。 ディレクトリやテキストはEmacsで処理したほうが便利ですが、WordやExcelなどはバイナリの中身が表示されるだけで本来の用途できません。これを実現…

【Emacs】エラー発生

急にエラーが発生して、おかしくなりました・・・デバッグ方法を試したら書きます。 簡易エラー内容 普通にEmacsを起動したときに、下記内容が表示されました。 Warning (initialization): An error occurred while loading `c:/usr/home/_emacs': To ensure…

【Emacs】S式の評価

設定ファイルに新しい設定を追加したあとに、再起動するのが面倒なのでS式を評価する方法をメモしておきます。 直前のS式を評価する eval-last-sexp(C-x C-e)で評価できます。 このコマンドのすばらしいところは、全てのバッファで使用できます。つまり、設…

【Emacs】バッファの切り替えを部分一致(正規表現込み)にする

今回はバッファの切り替えを楽する設定についてのメモです。 問題点 タイトルの部分一致からも分かるとおり、バッファの指定はバッファ名の先頭から入力しないといけません。とくに面倒なのが、*を含むバッファです。 iswitchb.el そこで、設定ファイルに以…

【Emacs】パッケージマネージャー

Emacs Lispのインストールを簡略化してくれるパッケージマネージャーELPAをインストールします。 インストール 下記コマンドを実行します。 M-x install-elisp http://tromey.com/elpa/package-install.el コマンド実行後、インストールする場合には、C-c C-…

【Emacs】バックスペースショートカットの割り当て

ヘルプ関連に割り当てられているC-hをBackSpaceに変更します。C-hである理由は、Linux端末と同じにするためだそうです。 emacs.dに下記設定を追加します。 ;; C-hをバックスペースにする (global-set-key "\C-h" 'delete-backward-char) これで右小指の負担…

【Emacs】バイトコンパイルと自動化

今回は、Emacs Lispファイルのバイトコンパイルについてです。 バイトコンパイル Emacs Lispのコンパイルとは、機械語ではなくバイトコードという独自の形式のコンパイルをするようです。バイトコンパイルにより、実行速度が上がります。バイトコンパイルさ…

【Emacs】Emacs Lispのインストール自動化

Emacs Lispを手動でインストールする手間をなくすために、自動でインストールするためのEmacs Lisp「auto-install.el」をインストールします。 注意:OSがWindowsの場合は、wgetを使用できる環境にしておいてください。 auto-install.elのインストール auto-…

【Emacs】ホームディレクトリの確認と設定

Emacsの設定ファイルを置く場所である/~(ホームディレクトリ)の場所の確認方法と設定です。 確認方法 C-x C-fを実行し、ミニバッファ内で「/~」を入力し、RETを押下すると「/~」の名前が表示されます。自分の場合は、以下のとおりでした。 C:\Documents and …

【Emacs】ディレクトリ作成

Emacsでディレクトリを作成する方法のメモです。 ファイルリストの表示 まず、ディレクトリを作成する場所を表示します。 c-x d を入力する ミニバッファにDired (directory): ディレクトリ名と表示される ここでディレクトリを選択し、RET(Enterキー)を押下…