Posso avere due viste su un file - una ristretta no?


13

Sto modificando alcuni file, abc.org e chiamo org-narrow-to-block per restringere a un blocco di codice che voglio modificare. Per il processo di modifica devo accedere a un'altra parte di abc.org e voglio solo mostrarlo in un'altra finestra. Quindi faccio "Cx 2" e scopro che la finestra mostra abc.org, ma anche ristretta. È possibile avere due "viste" sul file? Uno ristretto e uno no?

Ho controllato le sette domande contrassegnate con il restringimento e non ho trovato una domanda simile.

Risposte:


15

Penso che tu stia cercando clone-indirect-buffer-other-window(vincolato per C-x 4 cimpostazione predefinita).

Si noti che ciò crea un clone collegato del buffer, quindi è necessario ricordare di eliminare il buffer clonato e la finestra per evitare di accumulare sempre più buffer con lo stesso contenuto.


4

Questo è precisamente lo scopo della libreria Narrow Indirect ( narrow-indirect.el).

Ti dà comandi di restringimento che creano un buffer indiretto che è un clone del buffer corrente e che è ristretto a una particolare porzione di esso. Puoi restringere l'attuale defun, la regione attiva o la pagina corrente. Collegamenti chiave suggeriti:

(define-key ctl-x-4-map "nd" 'ni-narrow-to-defun-other-window)
(define-key ctl-x-4-map "nn" 'ni-narrow-to-region-other-window)
(define-key ctl-x-4-map "np" 'ni-narrow-to-page-other-window)

Offre due modi per distinguere i buffer indiretti dai buffer non indiretti, per i buffer indiretti che crea:

  • Il nome del buffer di un buffer ristretto indiretta inizia con un prefisso che è possibile impostare utilizzando l'opzione ni-buf-name-prefix. Il valore predefinito è I-.

  • Il nome di un buffer ristretto indiretto viene evidenziato nella riga della modalità usando face ni-mode-line-buffer-idanziché face mode-line-buffer-id. (Per disattivarlo, personalizza il primo in modo che sia uguale al secondo.)

Tale buffer indiretto offre una visione diversa di una porzione del buffer o persino dell'intero buffer (uso C-x h C-x 4 n n). Ha sempre lo stesso testo e le stesse proprietà del testo, ma per il resto è abbastanza indipendente.

In particolare, è possibile eliminare un buffer indiretto senza influire sul buffer di base. Probabilmente vorrai uccidere i buffer ristretti indiretti piuttosto che allargarli.

Vedere il manuale di Emacs, nodo Indirect Buffers .


4

Hai provato C-x C-c b( org-tree-to-indirect-buffer)? Crea un buffer indiretto (nuovo) e lo restringe all'attuale sottostruttura, lasciando il resto del documento così com'è.


Si noti che per impostazione predefinita viene mantenuto solo un buffer indiretto alla volta. Questo tuttavia può essere modificato impostando org-indirect-buffer-displaysu new-frame.
Christoph,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.