Adoro allungare il mio terminale su Unix. Qual è la storia o il motivo dietro la riga di comando di Windows lame?
Adoro allungare il mio terminale su Unix. Qual è la storia o il motivo dietro la riga di comando di Windows lame?
Risposte:
Non lo è. È possibile fare clic con il pulsante destro del mouse sulla barra del titolo, selezionare le proprietà e nella scheda "Layout" modificare la dimensione del buffer dello schermo (larghezza della linea e scorrimento indietro) e la dimensione della finestra (dimensione del riquadro di visualizzazione). Se hai avviato cmd da un collegamento, puoi salvare queste impostazioni per sessioni future.
Se sei fobico dei topi puoi anche digitare questo nella finestra di cmd:
mode <cols>,<lines>
mode 80,25
mode 120,50
etc.
Non è limitato.
Potresti voler controllare Console . È un'app open source che ti consente di eseguire più shell in un ambiente a schede. È inoltre possibile impostare la trasparenza alfa dei gusci.
RE: Perché MS dà valore alla "compatibilità all'indietro" su molte cose e in questo caso sospetto che sia una convinzione mal riposta che in qualche modo innervosirà le persone se non hanno la loro finestra standard di 80.
La retrocompatibilità funziona piuttosto male, però. Non immagino che Microsoft sia stata abbastanza approfondita riguardo alla loro implementazione, e credo che Microsoft sia il ragazzo del manifesto per assicurarsi che le versioni più recenti non funzionino su versioni precedenti. Molto non funziona correttamente sotto COMMAND.COM, il che sabota notevolmente l'utilità che possiede, per non parlare del fatto che devi entrare DOSONLY per far funzionare correttamente alcuni programmi, inoltre Microsoft ha rimosso comandi utili. Onestamente, non riesco a immaginare che Microsoft consideri la "retrocompatibilità" in grande considerazione.
Inoltre, penso che il vero motivo per cui la lunghezza della riga è a uno standard di 80 colonne è perché la maggior parte dei programmi da riga di comando, ecc., Operano sotto il presupposto che l'utente sia limitato a un prompt di 80 colonne, il che significa che l'aumento della larghezza può causare errori di formattazione o, peggio ancora, possono rompere del tutto i programmi.
Come accennato da jmucchiello, MODE funzionerà bene per ridimensionare la finestra se ne hai voglia.
Configura i dispositivi di sistema. Porta seriale: MODE COMm [:] [BAUD = b] [PARITY = p] [DATA = d] [STOP = s] [to = on | off] [xon = on | off] [odsr = on | off] [octs = on | off] [dtr = on | off | hs] [rts = on | off | hs | tg] [idsr = on | off] Stato del dispositivo: MODE [dispositivo] [/ STATUS] Stampa di reindirizzamento: MODE LPTn [:] = COMm [:] Selezionare la tabella codici: MODE CON [:] CP SELECT = yyy Stato della tabella codici: MODE CON [:] CP [/ STATUS] Modalità di visualizzazione: MODE CON [:] [COLS = c] [LINES = n] Velocità tipica: MODE CON [:] [RATE = r DELAY = d]
Tuttavia, se DOSONLY è abilitato su CONFIG.NT, quando si apre COMMAND.COM, erediterà una risoluzione di riga in stile DOS appropriata da cmd.exe, ma non è possibile richiamare MODE dall'interno di COMMAND.COM. Se desideri ridimensionare all'interno di COMMAND.COM, dovrai utilizzare istruzioni di assemblaggio a 16 bit, in questo modo:
Risoluzione linea 80x50 (nessun framebuffer, nessun SVGA, supportato praticamente universalmente).
DEBUG A100 MOV AX, 1112 INT 10 INT 20 sol Q
Risoluzione di linea 132x60 (nessun framebuffer, richiede SVGA. Non funziona su schede ATI gfx, di solito funziona su schede nVidia gfx, afaict funziona sempre su schede Intel integrate gfx.)
DEBUG A100 MOV AX, 4F02 MOV BX, 010C INT 10 INT 20sol Q
Se lo inserisci sul tuo COMMAND.COM, ti darà la risoluzione specificata. (Attenzione: se il tuo monitor è abbastanza vecchio da non supportare la modalità, potresti finire per distruggerlo. Nota a margine: se puoi eseguire Windows, il tuo monitor dovrebbe andare bene. Disclaimer: L'enfasi su dovrebbe e sei stato avvertito , quindi non è un mio problema se il tuo monitor frigge. ;-) Tuttavia, se lo usi senza DOSONLY abilitato, COMMAND.COM si ridimensionerà alla sua dimensione precedente non appena l'applicazione (in questo caso, a meno che tu non l'abbia scritto su un file ed eseguito quello, DEBUG) esce.
http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/mode/2005/ .
In alternativa, puoi usare MODE.COM di FreeDOS, che verrà eseguito correttamente sotto COMMAND.COM impostato su DOSONLY. Puoi estrarlo dall'immagine disco sul sito web ufficiale (freedos.org) o scaricarlo all'indirizzo
Nuova modalità FreeDOS di Eric Auer 2003-2005. Licenza: GPL. (versione 12 maggio 2005) MODE [dispositivo] [/ STA [TUS]] (mostra lo stato di uno o tutti i dispositivi) MODE LPTn [:] cols [, [lines] [, retry]] (cols o cpi, 6/8 lpi, retry p o n) MODE LPTn [:] [COLS = ...] [LINES = ...] [RETRY = ...] (riprova: p infinito / n nessuno) MODE LPTn [:] = [COMn [:] | NUL] (reindirizza i dati della stampante alla porta seriale o NUL) MODE COMn [:] baud, parity, data, stop, retry (valori vuoti consentiti) MODE COMn [:] [BAUD [HARD] = ...] [PARITY = ...] [DATA = ...] [STOP = ...] [RETRY = ...] Baud può essere abbreviato in prefisso univoco, la parità può essere o / e / n / s / m, il gli ultimi 2 spazio / segno medio, i dati possono essere 5..8, stop 1..2. Riprova IGNORATO! PIANIFICATO: Riprova b / e / r -> occupato / errore / pronto se occupato, numero infinito / nessun nuovo tentativo. MODE CON [:] [CP | CODEPAGE] [/ STA [TUS]] (FreeDOS DISPLAY deve essere caricato) MODE CON [:] [CP | CODEPAGE] REF [RESH] (necessita di DISPLAY) MODE CON [:] [CP | CODEPAGE] SEL [ECT] = numero (necessita di DISPLAY) MODE CON [:] [CP | CODEPAGE] PREP [ARE] = ((codepage) filename) (necessita di DISPLAY) Usa PREP = ((, cp2, cp3,, cp5) ...) per preparare le tabelle codici in altri buffer. MODE [40 | 80 | BW40 | BW80 | CO40 | CO80 | MONO] [, righe] (le righe possono essere 25, 28, 43 o 50) Usa 8, 14 o 16 come valore "righe" se desideri modificare solo il carattere. MODE [CO40 | CO80 | ...], [R | L] [, T] (sposta CGA sinistra / destra, T è la modalità interattiva) MODE CON [:] [NUMLOCK | CAPSLOCK | SCROLLLOCK | SWITCHAR] = valore Il valore può essere: + o - per i lucchetti o un carattere per switchar. MODE CON [:] [COLS = ...] [LINES = ...] (i valori possibili dipendono dal tuo hardware) MODE CON [:] [RATE = ...] [DELAY = ...] (tasso predefinito 20, ritardo predefinito 1) La velocità può essere 1..32 per 2..30 caratteri / sec, il ritardo può essere 1..4 per 1 / 4..4 / 4 sec.
Per gli stessi motivi del codice ASM che ho fornito, a meno che non lo esegui in COMMAND.COM con DOSONLY aggiunto al tuo file CONFIG.NT, la finestra tornerà immediatamente alla sua dimensione precedente una volta che MODE.COM esce.
Infine, come altri hanno affermato, è anche possibile modificare queste impostazioni semplicemente facendo clic con il pulsante destro del mouse sulla barra del titolo del prompt dei comandi e modificando Proprietà -> Layout. Allo stesso modo, è possibile impostare la risoluzione per qualsiasi collegamento a CMD.EXE e file batch (fare clic con il pulsante destro del mouse sul collegamento -> Proprietà -> Layout). Ciò funziona solo per CMD.EXE, tuttavia, non per COMMAND.COM.
Non conosco la storia dietro di esso, ma questo elemento della lista dei desideri dell'autore di PuTTy è un post interessante che spiega gli ostacoli tecnici coinvolti con qualsiasi tipo di sostituzione di cmd.exe che non sia zoppo:
http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/win-command-prompt.html
Non dici che stai cercando un sostituto, ma in tal caso potresti anche controllare alcune delle sostituzioni di cmd.exe come Console 2 o Take Command di JP Software ecc. Ho anche avuto buone esperienze con PuTTy- Cyg che ti consente di utilizzare PuTTy come una shell cygwin.
Sebbene la larghezza non sia limitata come mostrano altre risposte, ho sempre trovato strano che si possa trascinare e ridimensionare l' altezza con il mouse, ma non la larghezza .
Penso che la larghezza predefinita di 80 caratteri sia correlata alla compatibilità con i vecchi programmi che presumono che il terminale non sia più largo di 80 caratteri. Tuttavia, non credo che questa sia stata una ragione realistica per un decennio o giù di lì.
Come altri hanno sottolineato, non è limitato a 80 caratteri di larghezza, ma la mia ipotesi sul motivo per cui il valore predefinito è 80 caratteri sarebbe che è rimasto dai giorni del DOS in cui i display CRT erano larghi 80 caratteri.
Puoi anche utilizzare un'applicazione terminale diversa, come Console2 , che ti consente di ridimensionare la finestra quanto vuoi (tra le altre cose, come la trasparenza e la possibilità di utilizzare qualsiasi carattere desideri). È un'ottima applicazione, ci sono passato e ora la uso solo cmd.exe
quando è assolutamente necessario.
Poiché scorrerà da sinistra a destra così come su e giù, la prima cosa che faccio su un sistema è definire la mia larghezza come 180 e salvarla. In genere è sufficiente in modo che le tracce dello stack non debbano avvolgersi per la maggior parte, ma non così tanto da aspettare un sacco di spazio.
Già che ci sei, imposta la dimensione verticale (buffer di scorrimento all'indietro) su tutti i 9. Sarai felice di averlo fatto un giorno.
Perché MS attribuisce valore alla "compatibilità all'indietro" su molte cose e in questo caso sospetto che sia una convinzione mal riposta che in qualche modo innervosirà le persone se non hanno la loro finestra standard di 80.
Ovviamente potrebbe essere che fosse programmato per una larghezza fissa di 80 caratteri quando era praticamente universale, e le impostazioni delle proprietà aggiuntive erano un po 'un trucco.
È limitato. Controlla. (Intendo la dimensione della finestra NON buffer)
Scoprirai che la larghezza massima che puoi impostare è limitata ma varia in base alla risoluzione dello schermo. Se la risoluzione è impostata su 1024 x 768, scoprirai che puoi solo arrivare a 128 sulla larghezza del prompt dei comandi. 128/1024 = 0,125
troverete quel rapporto coerente su tutta la linea. Ho una sessione RDP in esecuzione a 2000x768 (su due dei miei tre monitor) e ottengo una larghezza massima di 250.
Ora, quello effettivamente risulta essere un po 'più grande delle dimensioni del tuo monitor, ma ho tre monitor che eseguono tutti i desktop individuali. (quindi in sostanza, 3 risoluzioni 1024x768) e se voglio fare qualcosa di COSÌ SEMPLICE come allungare un prompt dei comandi su 2 o più monitor, NON POSSO. (Lo voglio quando faccio cose con percorsi molto lunghi (diruse.exe / ecc.) ...
-c
Questo non è chiuso. Quindi va notato che Windows Terminal ora sta cambiando tutto questo:
https://github.com/microsoft/terminal https://www.theverge.com/2020/1/9/21059316/microsoft-windows-terminal-crt-effects-retro-search-tabs-features https: // devblogs.microsoft.com/commandline/windows-command-line-backgrounder/ https://github.com/microsoft/terminal/blob/master/doc/terminal-v1-roadmap.md https://www.microsoft.com / it-it / p / windows-terminal-anteprima / 9n0dx20hk701 ActiveTab = pivot:? overviewtab
Perché migliorare l'usabilità e la funzionalità di tutto ciò che richiede uno sviluppo simile a Unix / GNU indebolirà Windows come piattaforma commerciale per i partner di Microsoft. Prevenire ciò significa che i prodotti per sviluppatori di altre grandi aziende, come terminali migliorati e altri prodotti generici di terze parti, come elaboratori di testi, lettori video, ecc. Non sono in concorrenza con il software Unix / GNU esistente. Senza questo, Windows non sarebbe una piattaforma redditizia e Microsoft perderebbe il monopolio del desktop.
Questo è il motivo per cui il terminale fa schifo, non c'è API POSIX, nessun supporto C99 in MSVC e l'elenco potrebbe continuare. Per chiarire, le tecnologie e lo sviluppo Unix / GNU comuni sono intenzionalmente non supportati in modo che le grandi software house commerciali non debbano competere con loro.