
私は毎日JavaScriptを編集するためにemacsを使用し、Cx LEFTとCx RIGHTを使用するバッファを切り替えることに満足しています(変更中のファイルのパスを知るのが難しい場合でも)。
私の質問:
始めるときはいつも持っていて
*scratch*
開い*Messages*
ていました。 .emacsを入れると(kill-buffer "*scratch*")
問題が解決すると思いましたが、そうではありません。どんな提案がありますか?私はファイルを開くと常にTABオートコンプリートを実行します。それで、
*Messages*
完成オプションを持つ新しいバッファを作成するたびにバッファが生成されないようにするにはどうすればよいですか?それとも、タスクが完了した後にemacsにバッファを終了させるにはどうすればよいですか?私が選んだのですか?
私がやっていることが、私が上記で「しなければならない」と言ったのと異なると思われる場合は、コメントをお聞かせください。
答え1
これが私を狂わせています…私が直すまで。
もう消えた傷跡、情報または完成バッファリングがプロセスと競合します。楽しむ!
これを.emacsに入れてください:
;; Makes *scratch* empty.
(setq initial-scratch-message "")
;; Removes *scratch* from buffer after the mode has been set.
(defun remove-scratch-buffer ()
(if (get-buffer "*scratch*")
(kill-buffer "*scratch*")))
(add-hook 'after-change-major-mode-hook 'remove-scratch-buffer)
;; Removes *messages* from the buffer.
(setq-default message-log-max nil)
(kill-buffer "*Messages*")
;; Removes *Completions* from buffer after you've opened a file.
(add-hook 'minibuffer-exit-hook
'(lambda ()
(let ((buffer "*Completions*"))
(and (get-buffer buffer)
(kill-buffer buffer)))))
;; Don't show *Buffer list* when opening multiple files at the same time.
(setq inhibit-startup-buffer-menu t)
;; Show only one active window when opening multiple files at the same time.
(add-hook 'window-setup-hook 'delete-other-windows)
ボーナス:
;; No more typing the whole yes or no. Just y or n will do.
(fset 'yes-or-no-p 'y-or-n-p)
答え2
まあ...これは部分的にEmacsがどのように機能するかですが、全体的な移行を支援するためにできることがいくつかあります。
まず、Emacsには少なくとも1つのバッファが必要です。したがって*scratch*
、andを削除したくても*Messages*
他の望ましくないバッファが残ります(またはEmacsがkill-buffer
バッファを再生成するため、最後の要求を無視することに気付くでしょう(b / cバッファが必要です)。バッファ)。
したがって、バッファ切り替えがより適切なポイントに到達する最良の方法は、実際にバッファを持つことです。考えるに切り替えます。
そして、これが完了したら、バッファ切り替えに使用できるすべてのオプション/パッケージを確認できます。そのほとんどはEmacs Wikiにリストされています。スイッチバッファ。 ido
非常に人気があり、icicles
はいanything
。
答え3
誰にも興味があるなら*一時*バッファのみ削除*Messages* バッファを離れると、このコードは私にとって効果的でした。
(defun acg-initial-buffer-choice ()
(if (get-buffer "*scratch*")
(kill-buffer "*scratch*"))
(get-buffer "*Messages*"))
(setq initial-buffer-choice 'acg-initial-buffer-choice)
1つ覚えておくべきことは、いつでもEmacsに表示するバッファがない場合(たとえば、すべてのバッファを終了する場合)、*スクラッチ*または*メッセージ*バッファを生成することです。ワークフローのすべてのバッファを削除します。そうしないと、*スクラッチ*が再び生き返ることがあります。