Mengapa cmd.exe Windows dibatasi hingga 80 karakter?

104

Saya suka meregangkan terminal saya di unix. Apa sejarah atau alasan di balik baris perintah windows lame?

minty
sumber
2
Itu adalah pilihan, sama seperti banyak hal lainnya adalah pilihan. Jika Anda memiliki ukuran tetap, lebih mudah mendesain "layar Anda" karena Anda tahu persis batasannya. Kerugiannya jelas, apa pun ukuran yang dipilih, itu akan selalu salah untuk seseorang atau sesuatu. Layar CMD Windows saat ini sebenarnya ADALAH satu-satunya layar, dahulu kala. Dan tidak banyak resolusi yang tersedia, dan sangat sedikit resolusi tinggi dalam hal ini.
tvCa

Jawaban:

147

Tidak. Anda dapat mengklik kanan bilah judul, memilih properti, dan di tab "Tata Letak" mengubah ukuran buffer layar (lebar garis dan scrollback) dan ukuran jendela (ukuran viewport). Jika Anda memulai cmd dari pintasan, Anda dapat menyimpan pengaturan ini untuk sesi selanjutnya.

erickson
sumber
2
Jangan lupa font / warna. Tidak ada yang sebaik kembali ke beberapa layar hijau retro ketika saya membuka command prompt saya. 8 ^ D
Dillie-O
13
Maksud Anda, "tidak lain adalah mengubah font menjadi consolas" hanselman.com/blog/UsingConsolasAsTheWindowsConsoleFont.aspx
Jimmy
5
Saya selalu melompat dan mengatur lebar menjadi 180 dan scrollback ke 9999. Ini tidak seperti Anda sangat membutuhkannya, tapi saya tidak pernah merasakan sakit apapun (bahkan pada masa mesin 128mb dan saat Anda membutuhkannya, Anda akan BENAR-BENAR senang Anda mengaturnya sebelumnya. Lebarnya adalah preferensi pribadi, saya tidak suka melihat garis membungkus dari kompiler saya kecuali dalam kondisi ekstrim, tetapi yang lain tidak suka menggulir.
Bill K
4
Meningkatkan tinggi penyangga layar sangat diremehkan. Pengguliran semacam itu terlalu sering diperlukan untuk dapat sepenuhnya membaca keluaran program ke layar (kecuali Anda menggunakan LEBIH BANYAK).
Coding Dengan Gaya
22
Ya ... tapi tidak. Anda tidak dapat mengubah ukuran jendela secara sembarangan dengan menyeret tepi jendela dan di sinilah kita di tahun 2012 dan itu masih belum berubah.
Alex B
108

Jika Anda fobia terhadap mouse, Anda juga dapat mengetik ini di dalam jendela cmd:

mode <cols>,<lines>
mode 80,25
mode 120,50
etc.
jmucchiello.dll
sumber
11
Ini sangat membantu dalam menangani panggilan sistem ke "cmd / c ..." pada aplikasi yang memeriksa ukuran jendela untuk memformat keluarannya. Baru saja melemparkan "mode 200,50 &&" sebelum panggilan dan hidup itu baik
Thomas
Anda kehilangan gulungan vertikal, setidaknya pada Win7
golimar
44

Itu tidak terbatas.

  1. Jalankan cmd.exe
  2. Klik ikon di kiri atas layar.
  3. Pilih Properties
  4. Pilih tab Tata Letak.
  5. Atur buffer dan lebar jendela sesuai keinginan Anda.
  6. Klik OK
  7. Pilih Simpan Properti untuk masa depan ...
  8. Klik OK.

Anda mungkin ingin melihat Konsol . Ini adalah aplikasi open source yang memungkinkan Anda menjalankan banyak shell di lingkungan tab. Anda juga dapat mengatur transparansi alpha dari cangkang.

Tim Stewart
sumber
17

RE: Karena MS menghargai "kompatibilitas mundur" atas banyak hal dan dalam hal ini saya menduga itu adalah keyakinan yang salah tempat bahwa entah bagaimana akan membuat orang bingung jika mereka tidak memiliki jendela lebar standar 80.

Kompatibilitas ke belakang bekerja sangat buruk. Saya tidak membayangkan Microsoft cukup teliti tentang penerapannya, dan saya percaya Microsoft adalah anak poster untuk memastikan versi yang lebih baru tidak akan berfungsi pada versi yang lebih lama. Banyak yang tidak berfungsi dengan baik di bawah COMMAND.COM, yang sangat menyabotase kegunaan yang dimilikinya, belum lagi Anda harus masuk hanya untuk membuat beberapa program berjalan dengan baik, ditambah Microsoft telah menghapus perintah yang berguna. Sejujurnya, saya tidak bisa membayangkan Microsoft memegang "kompatibilitas mundur" dalam banyak hal yang tinggi.

Selain itu, menurut saya alasan sebenarnya mengapa panjang baris berada pada standar 80 kolom adalah karena sebagian besar program baris perintah, dll. Beroperasi dengan asumsi bahwa pengguna dibatasi pada prompt kolom 80, yang berarti bahwa peningkatan lebar dapat menyebabkan kesalahan format atau lebih buruk lagi mungkin merusak program sama sekali.

Seperti yang disebutkan jmucchiello, MODE akan berfungsi dengan baik untuk mengubah ukuran jendela jika Anda menginginkannya.

Mengonfigurasi perangkat sistem.

Port serial: MODE COMm [:] [BAUD = b] [PARITY = p] [DATA = d] [STOP = s]
                                [ke = on | off] [xon = on | off] [odsr = on | off]
                                [octs = on | off] [dtr = on | off | hs]
                                [rts = hidup | mati | hs | tg] [idsr = hidup | mati]

Status Perangkat: MODE [device] [/ STATUS]

Pengalihan pencetakan: MODE LPTn [:] = COMm [:]

Pilih halaman kode: MODE CON [:] CP SELECT = yyy

Status halaman kode: MODE CON [:] CP [/ STATUS]

Mode tampilan: MODE CON [:] [COLS = c] [LINES = n]

Kecepatan tipemik: MODE CON [:] [RATE = r DELAY = d]

Jika Anda JANGAN mengaktifkan CONFIG.NT Anda, saat Anda membuka COMMAND.COM, itu akan mewarisi resolusi baris gaya DOS yang tepat dari cmd.exe, tetapi Anda tidak dapat memanggil MODE dari dalam COMMAND.COM. Jika Anda ingin mengubah ukuran di dalam COMMAND.COM, Anda harus menggunakan instruksi perakitan 16-bit, seperti:

Resolusi Baris 80x50 (Tanpa framebuffer, tanpa SVGA, didukung hampir secara universal.)

DEBUG
A100
MOV AX, 1112
INT 10
INT 20

G
Q

Resolusi Baris 132x60 (Tanpa framebuffer, memerlukan SVGA. Tidak akan berfungsi pada kartu gfx ATI, biasanya berfungsi pada kartu nVidia gfx, afaict selalu berfungsi pada kartu gfx terintegrasi Intel.)

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

G Q

Jika Anda memasukkan ini di COMMAND.COM Anda, ini akan memberi Anda resolusi yang ditentukan. (Peringatan: Jika monitor Anda cukup kuno untuk tidak mendukung mode, Anda mungkin akan menghancurkannya. Catatan tambahan: Jika Anda dapat menjalankan Windows, monitor Anda akan baik-baik saja. Penafian: Penekanan pada harus, dan Anda telah diperingatkan , jadi bukan masalah saya jika monitor Anda rusak. ;-) Namun, jika Anda menggunakan ini tanpa mengaktifkan DOSONLY, COMMAND.COM akan mengubah ukuran kembali ke ukuran sebelumnya segera setelah aplikasi (dalam hal ini, kecuali Anda menulisnya ke mengajukan dan menjalankannya, DEBUG) keluar.

Sebagai alternatif, Anda dapat menggunakan MODE.COM FreeDOS, yang akan berjalan dengan baik di bawah COMMAND.COM setel ke DOSONLY. Anda dapat menariknya dari image disk di situs web resmi (freedos.org) atau mendapatkannya dihttp://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/mode/2005/ .

MODE FreeDOS baru oleh Eric Auer 2003-2005. Lisensi: GPL. (versi 12may2005)
MODE [perangkat] [/ STA [TUS]] (menunjukkan status dari satu atau semua perangkat)
MODE LPTn [:] cols [, [lines] [, retry]] (cols atau cpi, 6/8 lpi, retry p atau n)
MODE LPTn [:] [COLS = ...] [LINES = ...] [RETRY = ...] (coba lagi: p tak terbatas / n tidak ada)
MODE LPTn [:] = [COMn [:] | NUL] (mengalihkan data printer ke port serial atau NUL)
MODE COMn [:] baud, parity, data, stop, retry (nilai kosong diperbolehkan)
MODE DATANG [:] [BAUD [KERAS] = ...] [PARITAS = ...] [DATA = ...] [BERHENTI = ...] [COBA LAGI = ...]
  Baud dapat disingkat menjadi unique prefix, parity dapat berupa o / e / n / s / m, the
  2 berarti spasi / tanda terakhir, data bisa 5..8, stop 1..2. Coba lagi DIABAIKAN!
  DIRENCANAKAN: Coba lagi b / e / r -> sibuk / error / siap jika sibuk, p / n tak terbatas / tidak coba lagi.
MODE CON [:] [CP | CODEPAGE] [/ STA [TUS]] (DISPLAY FreeDOS harus dimuat)
MODE CON [:] [CP | CODEPAGE] REF [RESH] (perlu DISPLAY)
MODE CON [:] [CP | CODEPAGE] SEL [ECT] = angka (perlu DISPLAY)
MODE CON [:] [CP | CODEPAGE] PREP [ARE] = ((codepage) nama file) (perlu DISPLAY)
  Gunakan PREP = ((, cp2, cp3,, cp5) ...) untuk menyiapkan halaman kode di buffer lain.
MODE [40 | 80 | BW40 | BW80 | CO40 | CO80 | MONO] [, baris] (baris bisa 25, 28, 43 atau 50)
  Gunakan 8, 14 atau 16 sebagai nilai 'baris' jika Anda hanya ingin mengubah font.
MODE [CO40 | CO80 | ...], [R | L] [, T] (geser CGA kiri / kanan, T adalah mode interaktif)
MODE CON [:] [NUMLOCK | CAPSLOCK | SCROLLLOCK | SWITCHAR] = nilai
  Nilai dapat berupa: + atau - untuk kunci atau karakter untuk switchar.
MODE CON [:] [COLS = ...] [LINES = ...] (kemungkinan nilai bergantung pada perangkat keras Anda)
MODE CON [:] [RATE = ...] [DELAY = ...] (rasio default 20, penundaan default 1)
  Rate bisa 1..32 selama 2..30 char / detik, delay bisa 1..4 selama 1 / 4..4 / 4 sec.

Untuk alasan yang sama seperti dengan kode ASM yang saya berikan, kecuali Anda menjalankannya di COMMAND.COM dengan DOSONLY ditambahkan ke file CONFIG.NT Anda, jendela akan segera pulih ke ukuran sebelumnya setelah MODE.COM keluar.

Terakhir, seperti yang dinyatakan orang lain, dimungkinkan juga untuk mengubah pengaturan ini hanya dengan mengklik kanan pada bilah judul prompt perintah, dan memodifikasi Properties -> Layout. Demikian pula, Anda dapat mengatur resolusi untuk pintasan apa pun ke CMD.EXE dan file batch (Klik kanan pintasan -> Properties -> Layout). Ini hanya berfungsi untuk CMD.EXE, bagaimanapun, bukan COMMAND.COM.

Coding Dengan Gaya
sumber
14

Perintah sederhana untuk memperbaiki ukuran jendela yang saya gunakan sepanjang waktu:

wmic

Ini akan membuka baris Perintah Instrumentasi Manajemen Windows dan menghapus batas ukuran. Kemudian tutup saja dengan Ctrl+ C.

Mijacr
sumber
6

Saya tidak tahu sejarah di baliknya, tetapi item daftar keinginan dari penulis PuTTy ini adalah posting menarik yang menjelaskan rintangan teknis yang terlibat dengan semua jenis penggantian cmd.exe yang tidak lumpuh:

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

Anda tidak menyebutkan bahwa Anda sedang mencari penggantinya, tetapi jika demikian Anda juga dapat memeriksa beberapa penggantian cmd.exe seperti Konsol 2 atau Ambil Perintah Perangkat Lunak JP dll. Saya juga memiliki pengalaman yang baik dengan PuTTy- Cyg yang memungkinkan Anda menggunakan PuTTy sebagai shell cygwin.

Jay
sumber
6

Meskipun lebarnya tidak terbatas seperti yang ditunjukkan oleh jawaban lain, saya selalu merasa aneh bahwa seseorang dapat menyeret dan mengubah ukuran tinggi dengan mouse, tetapi tidak lebarnya .

Saya pikir lebar default 80 karakter terkait dengan kompatibilitas dengan program lama yang mengasumsikan terminal tidak akan lebih dari 80 karakter. Saya tidak berpikir ini telah menjadi alasan yang realistis selama satu dekade atau lebih.

Greg Hewgill
sumber
9
Baik lebar dan tinggi dapat diubah ukurannya, hanya saja lebar jendela default sama dengan lebar penyangga. Anda tidak dapat membuat jendela lebih besar dari buffer, jadi satu-satunya pilihan (dengan pengaturan default 80 kolom) adalah mengurangi lebarnya.
efotinis
4

Seperti yang ditunjukkan orang lain, itu tidak terbatas pada lebar 80 karakter, tetapi tebakan saya mengapa itu default menjadi 80 karakter adalah bahwa itu tersisa dari hari-hari DOS di mana tampilan CRT memiliki lebar 80 karakter.

Lihat juga

Patrick Cuff
sumber
Bisakah monitor modern lebih dari 80 karakter dalam mode teks?
macropas
Anda mungkin harus menjalankan mode framebuffer untuk membuat ini berfungsi (tapi saya mungkin salah, ini sudah lama.)
andersop
Ada beberapa mode SVGA dengan lebar 132 karakter tanpa menggunakan mode framebuffer, tetapi didukung secara sembarangan. Salah satu mode tersebut tercantum dalam jawaban saya.
Pengkodean Dengan Gaya
3
Ini lebih jauh dari itu: Alasan IBM membuat CRT-nya menampilkan lebar 80 kolom adalah karena kartu berlubangnya memiliki lebar 80 kolom.
dan04
2

Anda juga dapat menggunakan aplikasi terminal yang berbeda, seperti Console2 , yang memungkinkan Anda mengubah ukuran jendela sesuka Anda (antara lain, seperti transparansi, dan kemampuan untuk menggunakan font apa pun yang Anda inginkan). Ini adalah aplikasi yang hebat, saya telah beralih ke aplikasi itu dan sekarang saya hanya menggunakannya cmd.exeketika saya benar-benar harus.

Sasha Chedygov
sumber
1

Karena ini akan menggulir dari kiri ke kanan serta atas dan bawah, hal pertama yang saya lakukan pada sistem adalah menentukan lebar saya sebagai 180 dan menyimpannya. Itu secara umum cukup sehingga jejak tumpukan tidak harus membungkus untuk sebagian besar, tetapi tidak terlalu banyak sehingga Anda memiliki banyak ruang.

Saat Anda melakukannya, atur ukuran vertikal (buffer scrollback) ke semua 9. Anda akan senang Anda melakukannya suatu hari nanti.

Bill K
sumber
1

Karena MS menghargai "kompatibilitas mundur" atas banyak hal dan dalam hal ini saya menduga itu adalah keyakinan yang salah tempat bahwa entah bagaimana akan membuat orang bingung jika mereka tidak memiliki jendela lebar standar 80.

Tentu saja bisa jadi itu diprogram untuk lebar tetap 80 karakter ketika itu cukup universal, dan pengaturan properti tambahan sedikit diretas.

Draemon
sumber
1

Itu terbatas. Saksikan berikut ini. (Maksud saya ukuran jendela BUKAN penyangga)

Anda akan menemukan bahwa lebar maksimum yang dapat Anda atur terbatas tetapi bervariasi sesuai dengan resolusi layar Anda. Jika resolusi Anda diset ke 1024 x 768 Anda akan menemukan bahwa Anda hanya dapat mencapai 128 pada lebar prompt perintah. 128/1024 = .125

Anda akan menemukan bahwa rasio tersebut konsisten di seluruh papan. Saya memiliki sesi RDP yang berjalan pada 2000x768 (di dua dari tiga monitor saya) dan mendapatkan lebar maksimal 250.

Sekarang, ternyata ukurannya sedikit lebih besar dari ukuran monitor actaul Anda, tetapi saya memiliki tiga monitor yang semuanya menjalankan desktop individual. (Jadi pada dasarnya, 3 resolusi 1024x768) dan jika saya ingin melakukan sesuatu yang SANGAT SEDERHANA seperti peregangan prompt perintah di 2 monitor atau lebih, saya TIDAK BISA. (Saya ingin ketika melakukan sesuatu dengan jalur yang sangat panjang (diruse.exe / etc.) ...

-c


sumber
2
Jika Anda memperkecil ukuran font, Anda bisa mendapatkan ukuran jendela (yang relatif) lebih besar. Saya baru saja mendapatkan lebih dari 300 lebar pada layar 1600x1200.
Michael Myers
Anda masih bisa memperbesar lebar garis dan menggulir jendela. Saya telah membuat lebar saya 160 atau 180 sejak hari VGA.
Bill K
0

Ini tidak ditutup. Jadi perlu dicatat bahwa Terminal Windows sekarang mengubah semua ini:

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 / en-us / p / windows-terminal-preview / 9n0dx20hk701? activetab = pivot: overviewtab

rferrisx
sumber
-1

Karena meningkatkan kegunaan dan fungsionalitas dari apa pun yang dibutuhkan oleh pengembangan mirip Unix / GNU akan merusak Windows sebagai platform komersial untuk mitra Microsoft. Mencegah hal ini berarti produk perusahaan besar lain untuk pengembang, seperti terminal yang ditingkatkan, dan produk pihak ketiga umum lainnya, seperti pengolah kata, pemutar video, dll. Tidak bersaing dengan perangkat lunak Unix / GNU yang ada. Tanpa ini, Windows tidak akan menjadi platform yang menguntungkan, dan Microsoft akan kehilangan monopoli desktopnya.

Inilah sebabnya mengapa terminal payah, tidak ada API POSIX, tidak ada dukungan C99 di MSVC dan daftarnya terus berlanjut. Untuk memperjelas, teknologi dan pengembangan Unix / GNU yang umum sengaja tidak didukung sehingga rumah perangkat lunak komersial yang besar tidak harus bersaing dengannya.

Matt Joiner
sumber