忍者ブログ
日々の研究生活のメモ書きなど
再帰的にファイルの全文検索をしたいディレクトリに移動してgrep-findを実行する
C-x C-f hoge
M-x grep-find

下のような表示がミニバーに出るので、そのまま検索したい言葉を入力する(この例ではsomething)
Run find (like this): find . -type f -exec grep -nH -e something {} +

たぶんこれは新しい機能ではなくて、findとgrepを組み合わせたコマンドのエイリアスみたいなものか
それにしても便利・・・
findとgrepの組み合わせは覚えられなくて毎回調べてたので











PR
これまではc-x h で全体選択をして
M-x replace-stringで文字の置換をやってた

これだと一気に全部の文字置換をできて便利だけど、逐一確認しながら置換をやりたいときが出てきた
(9年くらいやっててこれが初めてだったらしい、というのもアナログな人間なので、手で全部やればええんちゃん? って思って実際やってみてそれが原因でバグるという。それが私です)


■ 参考 : 文字列検索・置換

調べてみたらめちゃくちゃ簡単で M-% でいける
自分の場合Metaはoptionキーで%はシフトキーと5を同時押し (すぐに忘れそう・・・)

置換モードに入ったら
Query-replace:
と下のミニバーに表示されるので、置換元を入力してエンター
Query-replace int with:
と表示されるので、置換先を入力してエンター

これで最初の候補に移動するので、そこで
y か space: 置換する
n : 置換しない
enter : 終了






(記事を書いた後で)

2013年にすでにこのコマンドを使った形跡があったw
やっぱり記憶から消えてるやん・・・


■ 過去記事 : 【Emacs】文字の置換










control+fでファイルを開こうとする
/sudo::/home/hoge/hoge.txt
って感じで、頭に /sudo:: をつければいい




黒背景にしたときに青の文字が見にくいというトラブルに遭遇する・・・
いちいち個別に文字の色を調整するのがめんどくさくなってきたので、
デフォルトで入ってるthemaを使ってみる

■ 参考 : Emacs:背景色を変更する方法
M-x customize-themes
M-xってのはmeta-key(大概はエスケープキーとかoptionキーになってるはず)を押してぱなっしにしながらxを押せばOK
その後にcustomize-themasと入力する
ちょっと打ってtabを押せば勝手に入力してくれるはず

自分の環境だと13種類themaが入ってた

気に入ったthemaがあったら
[ Save Theme Settings ]
という上の方にある項目を選択して、保存する







(2018/04/19 追記)

ちなみに自分は
[X][ manoj-dark] -- Very high contrast faces with a black background.
というのが好みだった





Macにデフォルトで入っているemacsにはthemaが入っていなかった
なので、portでemacs 25.3をインストールしてみた

themaを直接編集する場合は
/opt/local/share/emacs/25.3/etc/themes/manoj-dark-theme.el









5521bdb4


なので、自分で用意する

一応
M-x revert-buffer
ってのでもファイルを読み込み直すことはできるけど、
リターン -> yes -> リターンと手間がかかる・・・
(自分の場合は(defalias 'yes-or-no-p 'y-or-n-p)としているのでyでいけるけど、やっぱりめんどくさい)


ググったら色々と出てくる

■ 参考 : Emacsで現在開いてるバッファを再読込する
(defun revert-buffer-no-confirm (&optional force-reverting)
"Interactive call to revert-buffer. Ignoring the auto-save
file and not requesting for confirmation. When the current buffer is modified, the command refuses to revert it, unless you spec\
ify
the optional argument: force-reverting to true."
(interactive "P")
;;(message "force-reverting value is %s" force-reverting)
(if (or force-reverting (not (buffer-modified-p)))
(revert-buffer :ignore-auto :noconfirm)
(error "The buffer has been modified")))

;; reload buffer
(global-set-key (kbd "<f5>") 'revert-buffer-no-confirm)
って感じでF5に割り当てておいた
C-c C-rとかにしてるサイトもあって、それにしようとしたけどなんかうまくいかない・・・・


注意することは、このrevert-bufferというのは今やってる編集を捨てて、ファイルを開き直すことになるので
今やってる修正を残しておきたいときは別に保存しておかないといけない

そういうことまでケアしてるショートカットも一応用意できるらしい

■ 参考 : RevertBuffer











一つ前の記事
■ 過去記事 : 【シェルコマンド】デフォルトのdiffでは見にくいのでオプションとcolordiffを試し見た
と少し関係がある

emacsで2つの画面を同時に閲覧することがある
2画面で開いたソースコードを比較しながら、同時にスクロールできたら便利だろうなぁ〜と思って調べてみたらそんな機能があった
C-x 3
M-x scroll-all-mode

解除したいときはもう一度、
M-x scroll-all-mode

■ 参考 :Scroll two opened buffers in a split window at the same time










黒い背景のterminalでemacsを起動すると青色の文字がとても見にくい・・・
そういうときは設定で色を変更する
.emacs にそれぞれ書き加えても良いが、色合いを見ながら変更する方法があったのでメモ
■ 参考 : minttyとemacsで、黒背景で青が見にくい場合の対策
M-x list-faces-display
これで見えにくいと思う色のところで(青色なところ)、Enterを押して代わりの色を選べばOK

あとはそれが.emacsに書き加えられるはず














emacsには便利な置換コマンド replace-string というのがある
■ 参考 : 【Emacs】文字の置換

この置換の際に、改行をいれたい場合・・・
C-q C-j
でOK








キーバインドを表示するには
M-x describe-bindings

特定のキーにバインドがあるかないかを知りたいときは
M-x describe-key
としたあとにそのキーを押せばいい




キーバインドを無効にするには以下のような一部を.emacsに追加すればよい
(global-unset-key "\C-a")

tmuxのprefixをcontrol+aにするつもりでこの設定をしたけど、結局やめた・・・・








まずmarkdown-mode.elを落とす
これを~/.emacs.d/elisp
とかに置いておく(ロードパスの通っているところ?)
curl http://jblevins.org/projects/markdown-mode/markdown-mode.el > markdown-mode.el

次にemacsの設定をする
次のことを.emacsに書き加えておく
;; markdown mode
(autoload 'markdown-mode "markdown-mode.el" "Major mode for editing Markdown files" t)
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))

しかしうまく機能していないらしい
M-x markdown-mode
とかしてみると
call-interactively: Cannot open load file: markdown-mode.el
とエラーメッセージが出ていた

よくわからんが、なんか足りないのかも
調べてみたら、そもそもコマンドラインでmarkdownというコマンドが使えないといけないらしい(そんなのインストールしていない・・・)

ここでめんどくさくなったので止めておく



近いうちに、Macのアップデートをしようと思っているので、その後でやる・・・
今10.8なので、これを一気に10.11まで上げるぜ










ご無沙汰してます。元気です


M-x list-colors-display
■ 参考
Emacsのカーソル行をハイライトする
(画像の文字が小さくてすいません)

emacsで何か作業中↓



突然、普段使わないコマンドを誤って押してしまい、画面が2分割され、さらにそちらがactiveになってしまった↓



すごく困ります・・・
手元のマシンの場合はマウスでクリックすればいいんですが、
sshとかで遠方のマシンに接続して作業しているときはそうはいきません

そういうときは
c-x o
でactiveな画面を切り替えれるらしい
メモメモ





【emacs】org-modeについて の関連記事です




org-modeで上の方にこれを書いておくといろいろと便利

#+TITLE:hoge_title
#+AUTHOR:hoge_name
#+DATE:today

hogeなんとか、todayを変えるとそのまま出力される


下のようなソースを書いてみる

#+TITLE:new title
#+AUTHOR:coffee_pote
#+DATE:today

* section hoge1

** section hoge2



C-c C-e a
で出力したら
次のようなtxtができる。










使ってみるといろいろと便利だった

議事録を取るもよし、
ToDoリストとして使ってもよし、
高機能なメモ帳としても使えるかも





■ org-modeの起動

拡張子.org のファイルを開く
もしくは
M-x org-mode

で起動できる





■ 使い方メモ

M-Return:章立てできる

M- → or ←:章の深さを変える

C-c C-e:出力する 形式は表示されるので、それを入力
例えば [a]ならtxt(ANSII)形式






他にもいろいろとできるらしいけど、まだこれしか使ってない・・・・

そのうち追記して可能性が微レ存


gnuplotのバイナリ版を取りにいったらハッケソ

■ リンク
Emacs.app の設定



ただ、mountain lionにはここのバイナリ版gnuplotで駄目かも

明日以降 mac portでインストールを試みます
無理ならほかの方法で

Xくおーつってのが必要らしい
X11の代わり?


設定してないと、initialと同じサイズのものができる
つまり、前のウィンドウと重なってしまって見えない・・・・

そこで新しいウィンドウは少しずらすことにする
(といっても3つめのウィンドウは2つめと被ってしまう・・・)


(setq initial-frame-alist
(append (list
'(width . 100) ;; ウィンドウ幅
'(height . 44) ;; ウィンドウ高さ
'(top . 0) ;; 表示位置
'(left . 640) ;; 表示位置
)
initial-frame-alist))

(setq default-frame-alist
(append (list
'(width . 100) ;; ウィンドウ幅
'(height . 44) ;; ウィンドウ高さ
'(top . 0) ;; 表示位置
'(left . 560) ;; 表示位置
)
default-frame-alist))


これを.emacsに書いておけばよい
便利なものを発見してしまった



;;; 最終更新日の自動挿入
;;; ファイルの先頭から 8 行以内に Time-stamp: <> または
;;; Time-stamp: " " と書いてあれば、セーブ時に自動的に日付が挿入されます
(require 'time-stamp)
(if (not (memq 'time-stamp write-file-functions))
(setq write-file-functions
(cons 'time-stamp write-file-functions)))

と.emacsに書いておきます

あとはソースにTime-stamp: " "と書いておくだけ(コメントアウトしててもおーけー)
ソースの中身をどこか変更して、保存されたときにタイムスタンプが押されます

こりゃ便利だ

注意:
time-stanp:とダブルコーテーション""の間に半角スペースが必要


■ 参考
13.1 dot.emacs




実は初めて使ってみた

意外と簡単で、便利ですねこれは



c-x h
m-x replace-string
[before word]
[after word]
って打てば置換できる。

control + hで全体を選択
m-xのmはメタキー、おそらくエスケープでおーけー
replace-stringは適時tabを押せば候補を表示してくれる

■ 参考
Emacsで文字置換






■ 追記

もっと簡単な方法を見つけてしまった・・・・

c-x h
m-%
[before word]
[after word]
!
最後の!がないと、HITした単語のところで毎回止まる
!を押すと全部置換することになる


■ 参考
Emacsで文字列を置換するコマンド



;; F5で日付と時間を挿入
(defun my-get-date-gen (form) (insert (format-time-string form)))
(defun my-get-dtime () (interactive) (my-get-date-gen "%Y/%m/%d %H:%M:%S"))
(global-set-key [f5] 'my-get-dtime)
と設定ファイルに書いておけばおーけー

last modifiedとか書くときに使えそう

■参考
Emacsで日付を入力するショートカットキー

■背景
Emacsで c-x c-f hoge.c とかで新しいファイルを作ると、普通は何も書かれていないまっさらなファイルができる

しかしEmacsは拡張子からファイルをどんなmodeで開くか自動で決めてくれるので、
ついでにテンプレートを挿入すると便利

例えばc言語なら
#includeやらmain関数あたりはそんなにいじる事はないのでデフォルトで挿入してくれるとありがたい

自分は今までTemplateというフォルダにTemplate.cを作っていて、それを毎回開いてコピーしていた
c-x c-wに出会ってからさらに便利になったとはいえ、テンプレートがあるならそっちを利用するに越した事はない





■auto-insertの使い方
;;auto-insert
(require 'autoinsert)
;; テンプレート格納用ディレクトリ
(setq auto-insert-directory "~/Dropbox/Template/")
;; ファイル拡張子とテンプレートの対応
(setq auto-insert-alist
(append '(
("\\.c$" . ["Template.c"])
("\\.sh" . ["Template.sh"])
) auto-insert-alist))
(add-hook 'find-file-hooks 'auto-insert)
と ~/.emacsに書いておけばいい

テンプレートのあるディレクトリとか、開くテンプレートは自分でいじってください


■参考
雛形設定

autoinsert(高度なテンプレート挿入)



ちなみに開くときにさらに変数を受け取って、テンプレートの中身を置き換えることも可能らしい
が、そこまでする必要はあんまりないかなー・・・・

あ、でもヘッダーに書くファイル名をそれで編集できたら便利かなー
昔は対応する括弧が、下のミニバッファに表示された気がするけど今はされない・・・・

もしかして設定?
と思って、調べてみたら全然違ういいものを見つけた


■参考サイト
Emacs でよく使うショートカット集


C-M-p、C-M-n:対応する括弧へ移動
c-M-\でできるらしい

こりゃー便利だ
ずっとやりたかったので、やってみた


探してみたら以下のlispプログラムをインストールすればいいらしい
・linum.el
・line-num.el
・wb-line-number.el

■参考サイト
[Emacs] linum.el で左側に行番号を表示する

■wb-line-numberの参考サイト
Emacsの左側に行番号を表示する

最初はline-num.elを入れてみたけど、うまく動かなくてよくわからんかったので
linum.elに変更。

特に問題なくすんなり動いた・・・・
スクショ↓




■「lispプログラムってどうやって使うの?」って方は
【Emacs】Emacs Lispを使ってみたい

Mac Portを使ってX11で越しに使えるemacsをインストールした
これでsshで接続したときも使えるようになる。


port search emacs | grep "emacs"
でどんなのがあるか探す
emacs23とemacs(version24)をインストールして試してみた。

インストールするときは +x11を忘れずに

今まで使っていた設定ファイルがそのまま使えないっぽい。
mac-key-mode ってのがないらしい
あとは自分で入れたものがそのまま使えなかったり



初期設定を読み込まずにEmacsを起動するには
emacs --no-init-file
でおーけー

これを使おうかと思ったけど挫折。
c-x 2 で縦に画面を2分割



c-x 3 で横に画面を2分割


これを上手いこと使った
M-x follow-delete-other-windows-and-split
というコマンドがある

画面を横に2分割した状態でこれを使うと・・・・
下のようになる。



「左の画面の下」と「右の画面の上」が繋がっており、ワイドディスプレイをうまいこと活用できる。
プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞、登山
出身:大阪府の南の田舎
自己紹介:
import MyProfile
import coffee_pote from TWITTER
import amazonのほしい物リスト from WISH_LIST

print "生きてます"
print "コロナのせいで15万くらい損失出してますが、生きてます"

# 最終更新 2020/03/15
カウンター
カウンター カウンター
ブログ内検索
ツイートするボタン
リンク
相互リンク募集中です (Twitterにてお知らせください)

Demo scripts for gnuplot version 5
(gnuplotのさまざまなデモ画像と作り方がまとめられている、眺めているだけでできるようになった気分になれる)

gnuplotスクリプトの解説
(米澤進吾さんの個人ページ、gnuplotと言えばこのかた)

gnuplot のページ
(Takeno Lab、うちのブログがリンクされていたのでリンク返し)

とある物理の院生日誌~院生は社会へ旅立った~
(研究室の先輩の個人ブログ)

英語例文を見て自然に英語・英会話を学ぶ
(楠本慶ニさんの個人ページ、様々な情報の密度の高さに感動)

Twitterから映画の評価が分かる & 映画の鑑賞記録が残せる coco
(映画の感想をまとめられるサイト、いつもお世話になっています)

Astronomy Picture of the Day Archive
(天文や宇宙関連の最新の話題について画像とともにNASAが説明しているページ)

今日のほしぞら
(任意の時刻の空で見える星を表示してくれる、国立天文台が管理している)

GNUPLOTとアニメーション
(応用の項目の「見せてあげよう!ラピュタの雷を!!」あたりからすごすぎる)

読書メーター
(読んだ本をリストできる便利なサイト)

flickr難民の写真置き場
(20XX年、flickrは有料化の炎に包まれた。あらゆるflickr無料ユーザーは絶滅したかに見えた。 しかし、tumblr移住民は死に絶えてはいなかった。)

教授でもできるMac OS X へのLaTeX, X11, gccのインストレーションと環境設定
(阪大の山中卓さんのwebページ、タイトルにセンスが溢れている、内容は超充実してる、特にTeX関連、学振DCとかPDの申請書類作成時にはお世話になっております)

英語論文執筆用の例文検索サービス
(とんでもないものを見つけてしまった・・・・ arXivに収録されている 811,761報の 英語論文から,例文を検索するための検索エンジン)


Template "simple02" by Emile*Emilie
忍者ブログ [PR]