[解決済み] Emacsでコードの折りたたみ効果を得るには?
質問
コードの折りたたみや、org-modeが使っているようなサイクリングを実現するには、どのような方法があるのでしょうか。 このような動作を実現するために、elispではどのようなソリューションが最適でしょうか?
EDIT 私は明確でなかったので、申し訳ありません。 私は、コードの折りたたみに非常に似た、または実際に展開できる階層を持つorg-modeに最も似たことを行うelispで何かをプログラムしたいのです。 この効果を得るための最良の方法について考えています。 私はemacsのオーバーレイが良い解決策であると聞いたことがあるように思いますが、私は知りません。
折りたたみに関しては、私は単にビルトインの set-selective-display を使用しています。
編集番号2。
ご回答ありがとうございます。 私は次のようなものを作りたいと思っています。
関数にポイントを置いて、このelisp関数を呼び出すと、関数定義がどこにあるのか(このためにfind-tagを使おうと思っています)、現在のバッファにそれを展開します。 もし、関数定義を読むために別のバッファにジャンプしなければならないとしたら、それは別のファイルへのコンテキストスイッチのような気がするのです。 そこで、コードの折りたたみのような動作をさせたいのですが、バッファから外部のコードを取り込むだけです。 この場合、実際にコードをバッファに貼り付けることはできませんし、誰かが保存すると、取り込んだコードが保存されてしまうという問題があります。 そこで、バッファの中に、バッファの一部ではない領域を作成する方法はないかと考えています。 私はそれが理にかなっていると思います。
どのように解決するのですか?
emacsには、コードを折りたたむときに手動で行う操作を明示的に実装するツールがあるため、折りたたみは一般に不要です。
ほとんどの人は、単純なインクリメンタル検索でうまくいきます。 どこかで言及された "foo" を参照してください。タイプ
C-s
foo
をクリックすると、定義を見つけてエンターキーを押し、それを読んでから
C-x
C-x
で元の場所に戻る。 シンプルでとても便利です。
ほとんどのモードでは
imenu
.
M-x
imenu
を使うと、関数定義(など)の名前にジャンプすることができます。 また、マウスクリックにバインドして関数のメニューを表示させることもできます(メニューバーに追加することも可能です。) which-function-modeのデータを提供し、modelineで現在どの関数の中にいるのかを確認することができます。 (なぜ関数はこんなに長いのでしょうか?)
また スピードバー があり、これは imenu の情報 (と他のもの) をグラフィカルに表示します。
ファイルの概要を知りたい場合は、試しに
M-x
occur
"。 正規表現が与えられると、現在のバッファにマッチする各バッファを新しく作成します。 現在のファイルが実装している関数の概要を知るために、"(defun")で検索することができます。 結果をクリックすると、ファイル内のその位置に移動します。
とにかく、本当に実現したいことは何か、Emacsはおそらくそれを実装しているのだと考えてください。常に折り畳んだり広げたりさせるような不完全なツールとは戦わないことです。
関連
-
[解決済み] git に自分の好きなエディタを使わせてコミットするにはどうしたらいいですか?
-
[解決済み] EmacsとVimの違い
-
[解決済み] EmacsをIDEとして使用する
-
[解決済み] Emacsで*scratch*バッファを再オープンする?
-
[解決済み] Emacsでパッケージの更新をする
-
[解決済み] Emacsに(repeat-last-command)はないのですか?
-
[解決済み] emacsの分割画面の大きさを変えるには?
-
[解決済み] .emacs.dディレクトリにあるものをすべてバイトコンパイルするには?
-
[解決済み] Emacsでコードの折りたたみ効果を得るには?
-
[解決済み] Emacsのデフォルトフォルダを変更する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Emacsがバックアップファイルを作成する方法を制御するにはどうすればよいですか?
-
[解決済み] EmacsをIDEとして使用する
-
[解決済み] Emacsで*scratch*バッファを再オープンする?
-
[解決済み] テキストモードのEmacsで4スペースインデントを設定する
-
[解決済み] Emacs - 複数の列を1つのバッファで表示する
-
[解決済み] Emacsの中からディレクトリを作成するにはどうしたらよいですか?
-
[解決済み] Emacsに(repeat-last-command)はないのですか?
-
[解決済み] パッケージ名のリストを指定して、Emacsのパッケージを自動的にインストールするには?
-
[解決済み] Emacsのデフォルトフォルダを変更する
-
[解決済み] emacs/elispです。ハッシュ(ポンド、数字記号、オクトパス)記号は何のために使うのですか?