X



Emacs Part 50 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
0864名無しさん@お腹いっぱい。
垢版 |
2017/12/03(日) 22:16:06.56
>>862
「ターミナル版」←この表現はとても奇異に感じる
ターミナルというアプリを使わなくても、君のいうターミナル版のEmacsは使えるよ
なぜなら、ターミナルとは直接関係がないから。
とりあえず、ターミナルを使用しなければならない理由がないなら、
iTerm2とか別の高機能ターミナルエミュレータを勧めるよ。
0865名無しさん@お腹いっぱい。
垢版 |
2017/12/04(月) 00:02:04.79
ターミナルでできない事はいくつかある。特に キーバインドが制限されるのは個人的には大きい。

+ ターミナルの仕様上送れないキーが存在するので使えないキーバインドか出てくる。
+ 画像が表示できない

ただ一方でターミナルのメリットもあってリモートにtmuxなんかで繋げば作業ぎ継続しやすい。場合によっては誰かと画面共有できる。

ローカルで使うならGUIの方がいいよ
0866名無しさん@お腹いっぱい。
垢版 |
2017/12/04(月) 00:26:20.85
>>863
ターミナルで動かしたemacsについてはメニューバー等は使えないです。
>>864
ありがとう。iterm2をダウンロードして使ってみました。
これからはこれを使います。
0867名無しさん@お腹いっぱい。
垢版 |
2017/12/04(月) 00:38:31.79
>>865
ありがとう。
僕はそれくらいの違いならしばらく
iterm2を使います。それで
キーバインド等で問題が起こったら
guiに変えます。シェルを使って
いきたいとおもって、勉強をだいぶ前
からちょこっとやっています。
0869名無しさん@お腹いっぱい。
垢版 |
2017/12/04(月) 00:44:46.40
使いたい方を使えば良いさ

追記するとMacの場合はGUIならライブ変換なんかも使いたければ使えるけど、ターミナルの中だとnacOSのIMEが制御できないので難しい。
日本語入力部分は確認した方がいいよ

カーソルの色とか形状もターミナル側の設定に依存するので例えばview-mode時にカーソル形状を変えるといった事ができない

ターミナルの制限との兼ね合いだね
0875名無しさん@お腹いっぱい。
垢版 |
2017/12/06(水) 01:01:00.42
前に、インストールのことで質問をしたものです。
さらに質問があり書かせていただいています
.emacs.dの中身をみるとauto-save-listがあるだけで、
.bash_profileには、emacs関連の入ったディレクトリへのpathを書いていません。
また.bashrcにもemacsのことは書いていません。
それなのにemacsとターミナルで打つと、どういうわけだか~/.emacs.d_24_5に入っているinit.elを読み込んで
いて、helmも使えます。emacsのバージョンも24.5です。
どうしてこういうことが起こるのでしょうか?また、対策(emacs-25.3ディレクトリ
はできています。そちらのファイルを参照にするようにしたい)はどのようなもの
でしょうか?
0876名無しさん@お腹いっぱい。
垢版 |
2017/12/06(水) 07:45:33.29
>>874
emacsはリソースの掴みっぱなしは少ないんでそれなりに保存できるけど
つながってる外部プロセス(シェルやインタプリタ)の状態までは出来ない
0877名無しさん@お腹いっぱい。
垢版 |
2017/12/06(水) 08:01:50.54
>>875
その24.5がスペシャルバージョンで、バージョンがついたディレクトリが存在すれば
そっちを検索するように作られてるんじゃ無いのか?

lisp/site-init.elあたりに「そのように記述された」パッケージ?
0878名無しさん@お腹いっぱい。
垢版 |
2017/12/06(水) 09:19:37.68
もう相手すんなよ…
0882名無しさん@お腹いっぱい。
垢版 |
2017/12/06(水) 09:54:45.34
>>875
update-alternatives使えるんでない?
0887名無しさん@お腹いっぱい。
垢版 |
2017/12/06(水) 12:03:10.13
わかりました
/usr/local/bin
にemacs -> emacs-24.5
と書いてました。つまり、emacs-24.5にリンクを貼っていました。
失礼しました。/usr/local/binについては.bash_profileでpathを通していました
0897名無しさん@お腹いっぱい。
垢版 |
2017/12/09(土) 09:26:40.51
>>841
Ricty とか見分けがつくフォント使え
見やすさ大事
0907名無しさん@お腹いっぱい。
垢版 |
2017/12/14(木) 21:41:29.39
>>906
ありがとうございます
なるほどこのように切り替えて制御するのは名案です
早速スクリプトをこしらえようかと思います
しかし、エラーメッセージの件については'make -C ..'にとってのカレントディレクトリと
実際の実行するEmacsのカレントディレクトリがことなるためジャンプに手動で検索を要します。

オフトピですが、該当記事の次の記事
http://d.hatena.ne.jp/teny/touch/20060626/p2
の発想はすごいですね
0908名無しさん@お腹いっぱい。
垢版 |
2017/12/15(金) 03:49:24.57
>>905
今の Emacs ユーザは projectile 使ってそれ解決していると思う
https://github.com/bbatsov/projectile
プロジェクト管理にまつわる色々やってくれるっていうパッケージ

開発プロジェクトのルートディレクトリがgitとかのVCSで管理されていれば、
サブディレクトリで作業しているときでも
M-x projectile-compile-project で所望の動作
(ルートディレクトリ下でコンパイルコマンドを実行)が得られる
0909906
垢版 |
2017/12/15(金) 20:18:21.35
>>907
(Dired-Modeからファイルを開いたりすると次からそこがEmacsのカレントになってりしなかったっけ…)
ディレクトリをまたぐ場合は結局Makefileを作ったり、全体をetagでTAGSファイルを作ったりしてました
そうすると
;; ***** etags *****
;; [M-.] 関数位置にジャンプ
;; [M-*] ジャンプした位置から戻る
;; [M-/] 定義した関数、変数の補完
;; [M-<tab>] 定義した関数、変数の補完
こんな感じで関数間をタグジャンプ出来ますので

あとよく使うのは
;; ***** プログラミング *****
;; [C-x `] エラー箇所にジャンプ (next-error)
;; [C-M-n] 対応するカッコへジャンプ(後ろへ)
;; [C-M-p] 対応するカッコへジャンプ(前へ)
;; [C-M-a] 関数の先頭に移動
;; [C-M-e] 関数の末尾に移動
;; [C-M-\] 領域をインデントする (indent-region)
こんなものでしょうか…
(でもこのあたりはvimとctagの方が便利でそっちばかり使ってましたw)

>>908
私は10年以上前の環境からあまり変わってないので便利そうですね〜
0910名無しさん@お腹いっぱい。
垢版 |
2017/12/16(土) 12:53:04.36
ansi-termとtermは同義語だとおもっていました。
というか多くの解説では同義語のように解説されていました。
しかしM-x ansi-term と M-x term でそれぞれ起動すると
バッファ名が ansi-term, terminalとそれぞれ違います。
キーバインドも違います。特に term のほうはキーバインドの多くが無効になっています。
結局なにが違うのですか?どこで違いの解説をみることができますか?
0915913
垢版 |
2017/12/16(土) 21:28:42.36
これなんですが、もうちょっと細かい情報が出るようなコマンドなんです。
0917913
垢版 |
2017/12/16(土) 22:32:56.14
>>916
> C-u C-x =

それです!ありがとうございました。
0918名無しさん@お腹いっぱい。
垢版 |
2017/12/16(土) 23:34:56.06
emacsを開いたとき、使っている初期設定ファイルのフルパスを表示
させるコマンドはあるのでしょうか?
0919918
垢版 |
2017/12/16(土) 23:40:57.08
補足します。emacsを起動しました。
タイトルバーにフルパスを表示させたくて
init.elを探してそこに
(setq frame-title-format "%f")
と書いてemacsを再起動させたのですが、その設定が
反映されていませんでした。それで書き直したinit.elは別のinit.elだったのか?
emacsが用いているinit.elは他にあるのかと思った次第です
0920名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 01:07:25.49
追加ですが、
scratchバッファで
(setq frame-title-format "%f")
とすると返ってくる値は
"%f"
なります。
タイトルバーは
1.Default(emacs24.5)となっているだけです。
そこで別のファイルを開いても、タイトルバーにはパスは表示されません。
1.Default(emacs24.5)となっているだけです。
0921名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 01:08:26.26
>>918
読み込んだ初期化ファイルの名前は M-x describe-variable => user-init-file で見れる
初心者のうちは ~/.emacs とか ~/.emacs.el とか余計なファイル作っていて
それで ~/.emacs.d/init.el を読み込めていなかったということはあるかもね

初心者の init.el 読み込めていないあるある、 他の理由と解決策は
・よくわからないままバイトコンパイルしている => ~/.emacs.d/init.elc を削除
・実は読み込み中エラーが発生していた => emacs --debug-init でデバッグ
とかか
0922名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 01:58:38.11
とりあえずM-x describe-variable => user-init-file
をすると
user-init-file is a variable defined in `C source code'.
Its value is "~/.emacs"
と出ました。ところが~"~/.emacs"というディレクトリは作っていないという
ことがわかりました。
init.elc
というディレクトリもファイルも作っていないことを確かめました。
elcはelの拡張子のファイルをより早い形にコンパイルすると変わるファイルの
拡張子だったと思います。それは
elispというディレクトリに保存されるものなのでしょうか?
0926名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 02:34:49.42
>>924
init.elは~/.emacs.d_24_5
にあります。なぜそんなディレクトリの
init.elを読み込むかというと>>887
で書いている通りでありまして、
.bash_profileに読み込むパスを書いていて
その中の/usr/local/binでemacs->emacs-24.5
というリンクを入っているからです。
しかし、それ以前になぜscratch バッファで
(setq frame-title-format "%f") としてC-jを
してるのに、新たにその設定を読み込んで
実行しないのかという疑問もあります。
0929名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 02:51:45.24
正直なところいろいろよくわからないので、
とりあえず気が付いたところだけ。

>>922
> user-init-file is a variable defined in `C source code'.
> Its value is "~/.emacs"
> と出ました。ところが~"~/.emacs"というディレクトリは作っていないという
> ことがわかりました。
これはディレクトリではなくファイルです。
~/.emacsというファイルがあればそれを読み込むはずです。
0930名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 11:03:44.18
>>926
> しかし、それ以前になぜscratch バッファで
> (setq frame-title-format "%f") としてC-jを
> してるのに、

frame-title-format:

This variable has the same structure as ‘mode-line-format’...

mode-line-format:

%f -- print visited file name.

scratch バッファは特定のファイルに紐付いていないのでフレームタイトルは
変わらないんじゃ? あと、regular file以外(例えば dired バッファ)でも変わらない。
こちらの環境 Emacs 27.0.50 (build 2, i686-pc-linux-gnu, GTK+ Version 3.22.25)
ではそうなっている。
0931名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 14:20:57.48
結局次のような形になりました。

/usr/local/binにあったemacs->emacs24.5ディレクトリへのリンクを削除した。
すると24.5が立ち上がらなくなったが、22.1?が立ち上がり、しかも
helmも使えた。だから24.5と22.1が使っている初期設定ファイルが同じものなんだろうなとおもった。
describe-variable->user-init-file
をしても
.emacs
と出てきていたが、.emacsというファイルは見つからなかった。ただCでコードされているということは出てきたものに書いていた。

リンクで24.5ディレクトリを読みに行かせていたはずで、その中の
init.elを読んでくれていたはずだったがそうではなかった。

ただ、.emacs.dが別にあり(いつできたか知らない)
auto-save-list
というのが入っていた。
それをデスクトップに移動してemacsが読めなくした。
その上で、.emacs-24.5というディレクトリを.emacs.dに変えた。
その中の.init.elを読み込んで欲しいのでそうした。

そうすると
An error has occurred while loading `/Users/hiro/.emacs.d/init.el':

Symbol's value as variable is void: user-emacs-directory

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file. Start Emacs with
the `--debug-init' option to view a complete error backtrace.
というエラーが出た。

ということで、とりあえずは解決しました。最初からインストールすることに
決めました。
0933名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 14:34:30.91
>>931
> その上で、.emacs-24.5というディレクトリを.emacs.dに変えた。
> その中の.init.elを読み込んで欲しいのでそうした。
>
> そうすると
> An error has occurred while loading `/Users/hiro/.emacs.d/init.el':
>
> Symbol's value as variable is void: user-emacs-directory
>
> To ensure normal operation, you should investigate and remove the
> cause of the error in your initialization file. Start Emacs with
> the `--debug-init' option to view a complete error backtrace.
> というエラーが出た。
これは~/.emacs.d/init.elが読み込まれているということです。
その中のuser-emacs-directoryが定義されていないということなので、
中身を晒せばわかる人がいるかもしれませんね。
0934名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 14:54:10.83
>> 931
再インストールしても解決しないよ、それ。
まず--debug-init付けてエラー内容確認しないと無理。

init.elも晒すべきだろうね。
親切な人が見てくれるかも知れない
0935名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 16:36:28.29
ありがとうございます。
再インストールしても同じinit.elを使うのなら同じようにエラーがでるでしょうね。
エラーのうちの一つは、22以前のバージョンでuser-emacs-directory変数が未定義
だから出たというのはわかっています。そこを修正したら別のエラーの内容が
変わったから。
emacsの最新バージョンに入れ替えて、init.elの書き直しもぼちぼちやります。
0936名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 16:38:45.77
>>933
そうなんですよ。24.5へのシンボリックリンクを
削除したら22.1?のemacsを読みに行くように
なりました。それでその22だと user-emacs-directory
が定義されていないのでエラーがでました。
0938名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 16:54:22.86
とりあえず
>>854さんに教えていただいたようにしてemacsは動くようになりました。
あとはinit.elを書き換えたり、ディレクトリを移動したり、elispを入れたり
するだけです。
ありがとうございました。
0939名無しさん@お腹いっぱい。
垢版 |
2017/12/17(日) 18:31:03.12
>>938
それは良かった。
念のために確認するけど、テストではなく、本番使用のものは、perfixを/tmpのままにしていないよね?
0942名無しさん@お腹いっぱい。
垢版 |
2017/12/18(月) 20:55:41.11
ここで昨日、一昨日と教えてもらったものです。
一旦動くようになったのですが、emacswiki?からの読み込みでエラーが
出てたくらいで一旦無事に動くようになりました。
その後、init.elを弄ってそれぞれのelispの順序を変えていると、動かなくなりました。パソコンの中を調べたら2年前のinit.elがあり、それは手を入れていたinit.el
とほとんど同じでした。それにちょこっと手を加えて、今があります。
emacswikiの読み込みも問題なくできるようになりました。
やったことは、/opt/emacs-25.3にemacsをインストールして.bash_profileにemacsのaliasを作って、/opt/emacs-25.3/emacsを読みに行くようにしたこと、/Users/自分の名前(つまりホームディレクトリ)/.emacs.dのinit.elを少し弄ったことです。
それで、ホームディレクトリに移ってからemacsと打つことで起動させるという風で、問題なく動いています。
二年前のinit.elは大竹さんの本だけ
を基本的に見て作ったものです。その時はとても難しく思いました。
今回普通に第二版を読んでいて難しいとは思わなかったですが、設定を変えようと
考えて、今回いろいろしくはくしてたのですが、その時ようやく実は難しいものだ
なと思いました。
いちおう感想だけ。emacsが使えるようになればいいなあとずっと思っています。
(ヘルプが英語だったりして、なかなかとっつきにくいですが。)
いろいろ教えていただきありがとうございました。
0949名無しさん@お腹いっぱい。
垢版 |
2017/12/20(水) 13:38:20.24
emacsで別ファイルで指定した文字列に色を付けるパッケージってありますか?
自分が頻繁に誤用する文章パターンを別ファイルに正規表現のリストとして保存しておいて
文章整形中に正規表現に一致する文字パターンを色付けするってことをしたいのです.
0952名無しさん@お腹いっぱい。
垢版 |
2017/12/23(土) 22:09:06.61
iterm2の画面を開いて、emacsを起動させて、文書1を呼び出したとして、
それをさらに新しくひらいたiterm2の画面を開いて、新しい文書2をつくり
そこに、文書1からコピーしたものを文書2にヤンクしたいのですが、
文書2にヤンクしようとすると空だと出ます。
どういうコードをinit.elに書き加えればいいのか教えてください
0954名無しさん@お腹いっぱい。
垢版 |
2017/12/23(土) 23:33:04.63
クリップボードの共有はinit.elにコードを書いて、できるようにはなっているんです。
だからcommand+cでコピー、command+vでペーストはできるんですが、
元々の画面のあらわれている部分しか選択できないんです。
だから、画面をさらにずらして、コピーしてペーストをするしかないんです。
コピー元のファイルの画面に映っていないところも全部、C-spaceで選択して
ペーストするほうでyankなりできればとおもうんですが
0958名無しさん@お腹いっぱい。
垢版 |
2017/12/24(日) 11:20:40.33
>>957
レジスタ、今やってみましたが、同じターミナルの中で立ち上げた、emacsのバッファー
同士の間ではレジスタを使ってテキストの挿入はできるのですが、
異なるターミナルを使って立ち上げたemacsのバッファーへのペーストはできないです
0959名無しさん@お腹いっぱい。
垢版 |
2017/12/24(日) 11:35:06.26
>>958
それがemacsclientのメリットですよね
https://ayatakesi.github.io/emacs/25.1/emacs-ja.html#Emacs-Server
なぜなら新しいEmacsプロセスが開始されるからです。なぜこれが不便かというと、新たなEmacsプロセスは、既存のEmacsプロセスのバッファー、コマンドヒストリー、その他の情報を共有しないからです
0960名無しさん@お腹いっぱい。
垢版 |
2017/12/24(日) 11:44:07.60
Emacsは必要のない限りGUI版使うべきだと思うよ
CUI環境で動かすと
クリップボードの共有云々の件もそうだし
キーボードだとか表示だとか面倒が多い
レス数が950を超えています。1000を超えると書き込みができなくなります。

ニューススポーツなんでも実況