2008-11-25 7 views
100

Ich liebe es, mein Terminal auf Unix zu strecken. Was ist die Geschichte oder der Grund hinter Windows Lame Command Line?Warum ist die Windows-cmd.exe auf 80 Zeichen begrenzt?

+2

Es ist eine Wahl, genau wie viele andere Dinge Auswahlmöglichkeiten. Wenn Sie eine feste Größe haben, ist es einfacher, "Ihren Bildschirm" zu entwerfen, weil Sie die Grenzen genau kennen. Die Nachteile liegen auf der Hand: Egal, welche Größe gewählt wird, für jemanden oder etwas ist es immer falsch. Der aktuelle Windows CMD-Bildschirm war tatsächlich der einzige Bildschirm, damals. Und es gab nicht viele Resolutionen und nur sehr wenige hochauflösende. – tvCa

Antwort

145

Es ist nicht. Sie können mit der rechten Maustaste auf die Titelleiste klicken, Eigenschaften auswählen und auf der Registerkarte "Layout" die Größe des Bildschirmpuffers (Linienbreite und Scrollback) und die Fenstergröße (Ansichtsfenstergröße) ändern. Wenn Sie cmd über eine Verknüpfung gestartet haben, können Sie diese Einstellungen für zukünftige Sitzungen speichern.

+2

Schriftart/Farbe nicht vergessen. Nichts ist so schön, als wenn ich auf die grünen Retro-Bildschirme zurückkehre, wenn ich meine Eingabeaufforderung öffne.8^D –

+13

Sie meinen, "nichts anderes als die Schriftart zu Consolas ändern" http://www.hanselman.com/blog/UsingConsolasAsTheWindowsConsoleFont.aspx – Jimmy

+3

Ich immer springen und setzen Sie die Breite auf 180 und das Zurückblättern auf 9999. Es ist nicht so, wie du es sehr oft brauchst, aber ich hatte noch nie etwas verletzt (selbst in den Tagen der 128-MB-Maschinen und das einzige Mal, wenn du es brauchst, wirst du WIRKLICH froh sein, dass du es vorher gesetzt hast. Die Breite ist eine persönliche Vorliebe, ich mag Zeilenumbrüche von meinem Compiler nicht sehen, außer unter extremen Bedingungen, aber andere möchten nie scrollen. –

42

Es ist nicht begrenzt.

  1. Run cmd.exe
  2. Klicken Sie auf das Symbol in der linken oberen Rand des Bildschirms.
  3. Wählen Sie Eigenschaften
  4. die Registerkarte Layout auswählen.
  5. Legen Sie die Breite des Puffers und des Fensters so fest, wie Sie möchten.
  6. Klicken Sie auf OK
  7. Wählen Sie Speichern Eigenschaften für zukünftige ...
  8. Klicken Sie auf OK.

Sie möchten vielleicht Console überprüfen. Es ist eine Open-Source-App, mit der Sie mehrere Shells in einer Umgebung mit Registerkarten ausführen können. Sie können auch die Alpha-Transparenz der Shells festlegen.

+2

Konsole ist sehr nett. – halr9000

+0

Oh yea Konsole ist erstaunlich .. Ich kann es endlich wie eine SSH-Konsole arbeiten lassen ... so viel weniger schmerzhaft. + Bier – ppumkin

0

Da es nach rechts sowie nach oben und unten blättern Sie nach links, das erste, was ich auf einem System zu tun ist meine Breite als 180 definieren und speichern. Das ist in der Regel so, dass Stack-Traces nicht zum größten Teil gewickelt werden müssen, aber nicht so sehr, dass Sie eine Tonne an Speicherplatz verbrauchen.

Während Sie gerade dabei sind, stellen Sie die vertikale Größe (Rückholung Puffer) für alle 9 Jahre. Du wirst froh sein, dass du es eines Tages getan hast.

6

Ich weiß nicht, die Geschichte dahinter, aber die Wunschliste Artikel vom Autor von Putty ist ein interessanter Beitrag, der die technische Hürden beteiligt mit jeder Art von cmd.exe Ersatz erklärt, die nicht lahm:

http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/win-command-prompt.html

Sie nicht erwähnen, dass Sie nach einem Ersatz suchen, aber wenn so könnten Sie auch wie Console 2 oder JP Software Take Command einige der cmd.exe Ersatz Besuche etc. ich auch einige gehabt haben gute Erfahrungen mit PuTTy-Cyg, mit dem du PuTTy als Cygwin-Shell verwenden kannst.

6

Während die Breite nicht begrenzt ist, wie andere Antworten zeigen, habe ich fand es immer seltsam, dass man die Höhe mit der Maus ziehen und die Größe, aber nicht die Breite.

ich denke, die Standard-80 Zeichenbreite auf der Kompatibilität mit alten Programmen verbunden ist, dass das Terminal übernehmen wird nicht mehr als 80 Zeichen lang sein breit. Ich glaube nicht, dass dies ein realistischer Grund für ein Jahrzehnt oder so gewesen ist.

+9

Sowohl die Breite als auch die Höhe können geändert werden, es passiert einfach, dass die Standardfensterbreite gleich der Pufferbreite ist. Sie können das Fenster nicht größer als den Puffer machen. Daher besteht die einzige Option (mit der Standardeinstellung für 80 Spalten) darin, die Breite zu reduzieren. – efotinis

1

Weil MS Wert "Rückwärtskompatibilität" über eine Menge von Dingen und in diesem Fall ich vermute, es ist ein unangebrachter Glaube, dass es irgendwie die Leute entnervieren wird, wenn sie nicht ihre Standard 80 Breite Fenster haben.

Natürlich könnte es sein, dass es für eine feste 80 Zeichen Breite programmiert wurde, als dass so ziemlich universal war, und die zusätzliche Eigenschaft Einstellungen waren ein bisschen wie ein Hack.

4

Wie andere darauf hingewiesen haben, ist es nicht auf 80 Zeichen beschränkt, aber meine Vermutung, warum es standardmäßig 80 Zeichen beträgt, wäre, dass es aus den DOS-Tagen übrig geblieben ist, wo CRT-Anzeigen 80 Zeichen breit waren.

See also

+0

Kann ein moderner Monitor im Textmodus breiter als 80 Zeichen sein? – macropas

+1

Es kann; zumindest für Linux ... –

+0

müssen Sie möglicherweise mit einem Framebuffer-Modus ausgeführt werden, damit dies funktioniert (aber ich kann falsch liegen, es ist eine Weile her.) – andersop

1

Es ist begrenzt. Hör zu. (Ich meine Fenstergröße NICHT Puffer)

Sie werden feststellen, dass die maximale Breite, die Sie einstellen können, begrenzt ist, aber variiert je nach Bildschirmauflösung. Wenn Ihre Auflösung auf 1024 x 768 festgelegt ist, werden Sie nur in der Eingabeaufforderungsbreite zu 128 finden. 128/1024 = .125

Sie werden feststellen, dass dieses Verhältnis auf der ganzen Linie einheitlich ist. Ich habe eine RDP-Sitzung läuft bei 2000x768 (über zwei meiner drei Monitore) und erhalten eine maximale Breite von 250.

Nun, das actaully entpuppt sich als etwas größer als Ihre actaul Monitorgröße, aber ich habe drei Monitore alle einzelne Desktops ausführen. (also im Wesentlichen, 3 1024x768 Auflösungen) und wenn ich etwas SO EINFACH machen möchte, wie eine Eingabeaufforderung über 2 oder mehr Monitore zu strecken, kann ich nicht. (Ich möchte, wenn die Dinge mit sehr langen Pfaden (diruse.exe/etc tun) ...

-c

+2

Wenn Sie Ihre Schriftgröße verkleinern, können Sie (relativ) größere Fenstergrößen erhalten. Ich war gerade über 300 breit auf einem 1600x1200 Bildschirm. –

+0

Sie können Ihre Linienbreite immer noch vergrößern und durch das Fenster scrollen. Ich habe meine seit VGA-Tagen 160 oder 180 breit gemacht. –

104

Wenn Sie Maus-phobische sind, können Sie auch diese nur innerhalb der cmd-Fenster eingeben.

mode <cols>,<lines> 
mode 80,25 
mode 120,50 
etc. 
+11

Dies war sehr hilfreich im Umgang mit einem Systemaufruf zu "cmd/c ..." auf einer App, die die Größe des Fensters für die Formatierung seiner Ausgabe überprüft. Wirf einfach einen "Modus 200,50 &&" vor den Anruf und das Leben ist gut – Thomas

+0

Du verlierst den vertikalen Scroll aber, zumindest auf Win7 – golimar

16

RE:. Da MS-Wert „Rückwärtskompatibilität“ über eine Menge Dinge, und in diesem Fall, den ich vermute, es ist eine verlegtes Überzeugung, dass es irgendwie Menschen verunsichert, wenn sie ihr Standard-80 breites Fenster nicht haben

Die Rückwärtskompatibilität funktioniert allerdings ziemlich schlecht, das kann ich mir nicht vorstellen Microsoft war ziemlich gründlich über ihre Implementierung, und ich glaube, Microsoft ist der Aushängeschild dafür, dass neuere Versionen auf älteren Versionen nicht funktionieren. Eine Menge funktioniert unter COMMAND.COM nicht richtig, was die Nützlichkeit erheblich sabotiert, ganz zu schweigen davon, dass Sie DOSONLY eingeben müssen, damit einige Programme ordnungsgemäß ausgeführt werden, und Microsoft hat nützliche Befehle entfernt. Ehrlich gesagt kann ich mir nicht vorstellen, dass Microsoft die "Rückwärtskompatibilität" sehr hoch schätzt.

Außerdem ist der wahre Grund, warum die Zeilenlänge bei einem Standard von 80 Spalten ist, weil die meisten Befehlszeilenprogramme usw. unter der Annahme arbeiten, dass der Benutzer auf eine 80 Spaltenaufforderung begrenzt ist, was bedeutet, dass steigend Die Breite kann zu Formatierungsfehlern führen oder, schlimmer noch, die Programme insgesamt unterbrechen.

Wie jmucchiello erwähnt, funktioniert MODE gut für die Größenänderung des Fensters, wenn Sie Lust haben.

Configures system devices. 

Serial port:  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] 

Device Status:  MODE [device] [/STATUS] 

Redirect printing: MODE LPTn[:]=COMm[:] 

Select code page: MODE CON[:] CP SELECT=yyy 

Code page status: MODE CON[:] CP [/STATUS] 

Display mode:  MODE CON[:] [COLS=c] [LINES=n] 

Typematic rate: MODE CON[:] [RATE=r DELAY=d]

Wenn Sie DOSONLY aktiviert auf Ihrem CONFIG.NT jedoch beim Öffnen von COMMAND.COM, es wird eine richtige DOS-Zeilenauflösung von cmd.exe erben, aber man kann nicht MODE von innen COMMAND aufrufen .COM. Wenn Sie in COMMAND.COM, um die Größe wünschen, haben Sie 16-Bit-Montageanleitung verwenden, etwa so:

80x50 Linie Resolution (kein Framebuffer, kein SVGA, nahezu universell unterstützt.)

DEBUG 
A100 
MOV AX,1112 
INT 10 
INT 20 

G 
Q

132x60 Zeilenauflösung (Kein Framebuffer, benötigt SVGA.Wird nicht auf ATI Grafikkarten arbeiten, arbeitet in der Regel auf nVidia Grafikkarten, AFAICT arbeitet immer auf Intel integrierten Grafikkarten.)

DEBUG 
A100 
MOV AX,4F02 
MOV BX,010C 
INT 10 
INT 20

G Q

Wenn Sie diese auf Ihrem COMMAND.COM eingeben, wird es Ihnen die angegebene Auflösung. (Warnung: Wenn Ihr Monitor alt genug ist, um den Modus nicht zu unterstützen, könnten Sie ihn zerstören. Randbemerkung: Wenn Sie Windows ausführen können, sollte Ihr Monitor in Ordnung sein. Haftungsausschluss: Schwerpunkt sollte, und Sie wurden gewarnt Es ist also nicht mein Problem, wenn Ihr Monitor frittiert. ;-) Wenn Sie dies jedoch ohne DOSONLY aktiviert haben, wird COMMAND.COM die Größe der Anwendung auf die vorherige Größe zurücksetzen (in diesem Fall, es sei denn, Sie haben es an a Datei und ausgeführt, dass DEBUG) beendet.

Alternativ könnten Sie FreeDOS MODE.COM verwenden, die ordnungsgemäß unter COMMAND.COM auf DOSONLY ausgeführt wird. Sie können es entweder aus dem Disk-Image auf der offiziellen Website (freedos.org) abrufen oder unter http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/mode/2005/ abrufen.

New FreeDOS MODE by Eric Auer 2003-2005. License: GPL. (version 12may2005) 
MODE [device] [/STA[TUS]]    (show status of one or all devices) 
MODE LPTn[:] cols[,[lines][,retry]]  (cols or cpi, 6/8 lpi, retry p or n) 
MODE LPTn[:] [COLS=...] [LINES=...] [RETRY=...] (retry: p infinite/n none) 
MODE LPTn[:]=[COMn[:]|NUL]  (redirect printer data to serial port or NUL) 
MODE COMn[:] baud,parity,data,stop,retry    (empty values allowed) 
MODE COMn[:] [BAUD[HARD]=...] [PARITY=...] [DATA=...] [STOP=...] [RETRY=...] 
    Baud can be abbreviated to unique prefix, parity can be o/e/n/s/m, the 
    latter 2 mean space/mark, data can be 5..8, stop 1..2. Retry is IGNORED! 
    PLANNED: Retry b/e/r -> busy/error/ready if busy, p/n infinite/no retry. 
MODE CON[:] [CP|CODEPAGE] [/STA[TUS]]  (FreeDOS DISPLAY must be loaded) 
MODE CON[:] [CP|CODEPAGE] REF[RESH]       (needs DISPLAY) 
MODE CON[:] [CP|CODEPAGE] SEL[ECT]=number     (needs DISPLAY) 
MODE CON[:] [CP|CODEPAGE] PREP[ARE]=((codepage) filename) (needs DISPLAY) 
    Use PREP=((,cp2,cp3,,cp5) ...) to prep codepages in other buffers. 
MODE [40|80|BW40|BW80|CO40|CO80|MONO][,rows] (rows can be 25, 28, 43 or 50) 
    Use 8, 14 or 16 as 'rows' value if you only want to change the font. 
MODE [CO40|CO80|...],[R|L][,T] (shift CGA left/right, T is interactive mode) 
MODE CON[:] [NUMLOCK|CAPSLOCK|SCROLLLOCK|SWITCHAR]=value 
    Value can be: + or - for the locks or a character for switchar. 
MODE CON[:] [COLS=...] [LINES=...] (possible values depend on your hardware) 
MODE CON[:] [RATE=...] [DELAY=...]  (default rate 20, default delay 1) 
    Rate can be 1..32 for 2..30 char/sec, delay can be 1..4 for 1/4..4/4 sec.

Aus den gleichen Gründen wie bei dem ASM Code, den ich zur Verfügung gestellt, wenn Sie es in COMMAND.COM mit DOSONLY ausführen zu Ihrer CONFIG.NT Datei, wird das Fenster sofort zu seiner vorherigen Größe Rebound einmal MODE.COM beendet.

Schließlich, wie andere gesagt haben, ist es auch möglich, diese Einstellungen zu ändern, indem Sie einfach mit der rechten Maustaste auf die Titelleiste der Eingabeaufforderung klicken und Eigenschaften -> Layout ändern. Ebenso können Sie die Auflösung für alle Verknüpfungen zu CMD.EXE und Batch-Dateien festlegen (Klicken Sie mit der rechten Maustaste auf die Verknüpfung -> Eigenschaften -> Layout). Dies funktioniert nur für CMD.EXE, jedoch nicht COMMAND.COM.

2

Sie können auch eine andere Terminalanwendung verwenden, z. B. Console2, mit der Sie die Größe des Fensters beliebig ändern können (ua Transparenz und die Möglichkeit, eine beliebige Schriftart zu verwenden). Es ist eine großartige Anwendung, ich habe es eingeschaltet und jetzt verwende ich nur cmd.exe, wenn ich unbedingt muss.

-1

Da die Verbesserung der Benutzerfreundlichkeit und Funktionalität von allem, was Unix/GNU-ähnliche Entwicklung erfordert, wird Windows als eine kommerzielle Plattform für Microsoft-Partner untergraben. Dies zu verhindern bedeutet, dass die Produkte anderer großer Unternehmen für Entwickler, wie verbesserte Terminals, und andere allgemeine Produkte von Drittanbietern, wie Textverarbeitungsprogramme, Videoplayer usw., nicht mit bestehender Unix/GNU-Software konkurrieren. Ohne das wäre Windows keine profitable Plattform, und Microsoft würde sein Desktop-Monopol verlieren.

Das ist, warum das Terminal saugt, es gibt keine POSIX API, keine C99 Unterstützung in MSVC und die Liste geht weiter. Um dies zu verdeutlichen, werden gängige Unix/GNU Technologien und Entwicklungen absichtlich nicht unterstützt, so dass große kommerzielle Softwarehäuser nicht mit ihnen konkurrieren müssen.

10

Ein einfacher Befehl, um die Fenstergröße zu beheben, die ich die ganze Zeit verwenden:

wmic 

Es wird die Windows Management Instrumentation Befehlszeile öffnen und die Größenbeschränkungen entfernen. Dann schließen Sie es einfach mit Ctrl + C.