Perché non ci sono comandi rightabove / left below?

Sep 03 2020

Facendo riferimento ai comandi esistenti a sinistra e a destra , che eseguono le seguenti operazioni:

  • eseguire un comando
  • se il comando risulta in una divisione, verrà aperto a sinistra o sopra la finestra corrente per leftabove(e analogamente per rightbelow).

La domanda è: perché le controparti rightabovee non leftbelowesistono? Non sarebbe logico che io voglia la mia nuova divisione a destra o sopra? (O a sinistra o in basso?)

Addendum: comprendo la formulazione della mia domanda ("Voglio la mia nuova divisione a destra o sopra") potrebbe essere stata fuorviante. Vorrei provare a rendere la domanda più chiara.

leftabovesignifica: se incontri un, vsplitla nuova finestra dovrebbe essere a sinistra ; se incontri un split, la nuova finestra dovrebbe essere sopra .

rightbelowsignifica: se incontri un, vsplitla nuova finestra dovrebbe essere sulla destra ; se incontri un split, la nuova finestra dovrebbe essere sotto .

Quindi quello che sto chiedendo è, perché non abbiamo questi due?

leftbelowsignifica: se incontri un, vsplitla nuova finestra dovrebbe essere a sinistra ; se incontri un split, la nuova finestra dovrebbe essere sotto .

rightabovesignifica: se incontri un, vsplitla nuova finestra dovrebbe essere sulla destra ; se incontri un split, la nuova finestra dovrebbe essere sopra .

Risposte

3 user938271 Sep 03 2020 at 22:18

Non sarebbe logico che io voglia la mia nuova divisione a destra o sopra?

Non vuoi mai che la tua nuova divisione sia a destra o sopra.

O vuoi che la tua nuova divisione sia sulla destra, nel qual caso puoi usare :rightbelow; o lo vuoi sopra, nel qual caso puoi usare :leftabove.

Forse sarebbe stato meno confuso per l'utente se Vim avesse fornito 4 modificatori distinti:

:splitabove
:splitbottom
:splitleft
:splitright

Tuttavia, Vim avrebbe dovuto affrontare possibili combinazioni senza senso, come:

:splitabove vsplit
:splitright split

Ad ogni modo, invece, si è scelto di fornire solo 2 modificatori, merging :splitabovee :splitleftinto :leftabove; e fondendosi :splitbottome :splitrightin :rightbelow. Il comando a cui applichi il modificatore sceglierà quale parte del modificatore onorare. Ad esempio, :splitonorerà la aboveparte di :leftabove, mentre :vsplitonorerà la leftparte. Non hai il controllo su quale parte è onorata; il comando che segue il modificatore fa.