Uwielbiam rozciągać mój terminal na unixie. Jaka jest historia lub powód, dla którego wiersz poleceń systemu Windows jest lame?
Uwielbiam rozciągać mój terminal na unixie. Jaka jest historia lub powód, dla którego wiersz poleceń systemu Windows jest lame?
Odpowiedzi:
Tak nie jest. Możesz kliknąć pasek tytułu prawym przyciskiem myszy, wybrać właściwości, a na karcie „Układ” zmienić rozmiar bufora ekranu (szerokość linii i przewijanie do tyłu) oraz rozmiar okna (rozmiar widoku). Jeśli uruchomiłeś cmd ze skrótu, możesz zapisać te ustawienia na przyszłe sesje.
Jeśli masz lęk przed myszami, możesz po prostu wpisać to w oknie cmd:
mode <cols>,<lines>
mode 80,25
mode 120,50
etc.
To nie jest ograniczone.
Możesz sprawdzić Console . Jest to aplikacja typu open source, która umożliwia uruchamianie wielu powłok w środowisku z kartami. Możesz także ustawić przezroczystość alfa muszli.
RE: Ponieważ MS ceni „wsteczną kompatybilność” ponad wiele rzeczy iw tym przypadku podejrzewam, że jest to błędne przekonanie, że w jakiś sposób denerwuje ludzi, jeśli nie mają standardowego okna o szerokości 80 stopni.
Jednak kompatybilność wsteczna działa dość okropnie. Nie wyobrażam sobie, że Microsoft był dość dokładny, jeśli chodzi o ich implementację i uważam, że Microsoft jest chłopcem od plakatów, który upewnia się, że nowsze wersje nie będą działać na starszych wersjach. Wiele nie działa poprawnie pod COMMAND.COM, co znacznie szkodzi jego użyteczności, nie wspominając o tym, że musisz wprowadzić DOSONLY, aby niektóre programy działały poprawnie, a Microsoft usuwa przydatne polecenia. Szczerze mówiąc, nie mogę sobie wyobrazić, aby Microsoft przywiązywał dużą wagę do „wstecznej zgodności”.
Co więcej, myślę, że prawdziwym powodem, dla którego długość linii wynosi standardowo 80 kolumn, jest to, że większość programów wiersza poleceń itp. Działa przy założeniu, że użytkownik jest ograniczony do 80-kolumnowego znaku zachęty, co oznacza, że zwiększenie szerokości może spowodować błędy formatowania lub, co gorsza, mogą całkowicie zepsuć programy.
Jak wspomniał jmucchiello, TRYB będzie działał dobrze przy zmianie rozmiaru okna, jeśli masz na to ochotę.
Konfiguruje urządzenia systemowe. Port szeregowy: 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] Stan urządzenia: TRYB [urządzenie] [/ STATUS] Drukowanie przekierowane: TRYB LPTn [:] = COMm [:] Wybierz stronę kodową: MODE CON [:] CP SELECT = yyy Stan strony kodowej: MODE CON [:] CP [/ STATUS] Tryb wyświetlania: MODE CON [:] [COLS = c] [LINES = n] Stawka typematyczna: MODE CON [:] [RATE = r DELAY = d]
Jeśli jednak na CONFIG.NT włączono opcję DOSONLY, po otwarciu COMMAND.COM odziedziczy on właściwą rozdzielczość linii w stylu DOS z cmd.exe, ale nie można wywołać TRYBU z poziomu COMMAND.COM. Jeśli chcesz zmienić rozmiar wewnątrz COMMAND.COM, będziesz musiał użyć 16-bitowych instrukcji asemblacji, na przykład:
Rozdzielczość liniowa 80x50 (bez bufora ramki, bez SVGA, praktycznie uniwersalna obsługa).
ODPLUSKWIĆ A100 MOV AXE, 1112 WEWN 10 WEWN 20 sol Q
Rozdzielczość linii 132x60 (bez bufora ramki, wymaga SVGA. Nie działa na kartach ATI gfx, zwykle działa na kartach nVidia gfx, afaict zawsze działa na zintegrowanych kartach Intel).
ODPLUSKWIĆ A100 MOV AX, 4F02 MOV BX, 010C WEWN 10 WEWN 20sol Q
Jeśli wpiszesz to na swoim COMMAND.COM, otrzymasz określoną rozdzielczość. (Ostrzeżenie: jeśli Twój monitor jest na tyle stary, że nie obsługuje tego trybu, możesz skończyć z jego zniszczeniem. Uwaga dodatkowa: jeśli możesz uruchomić system Windows, monitor powinien działać prawidłowo. Zastrzeżenie: Nacisk na powinien i zostałeś ostrzeżony , więc to nie mój problem, jeśli twój monitor się smaży. ;-) Jednak jeśli używasz tego bez włączonego DOSONLY, COMMAND.COM zmieni rozmiar z powrotem do poprzedniego rozmiaru, gdy tylko aplikacja (w tym przypadku, chyba że napisałeś to do plik i wykonany, DEBUG) kończy działanie.
Alternatywnie, możesz użyć MODE.COM FreeDOS, który będzie działał poprawnie pod COMMAND.COM ustawionym na DOSONLY. Możesz go pobrać z obrazu dysku na oficjalnej stronie internetowej (freedos.org) lub pobrać pod adresemhttp://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/mode/2005/ .
Nowy TRYB FreeDOS autorstwa Erica Auera 2003-2005. Licencja: GPL. (wersja 12 maja 2005) MODE [urządzenie] [/ STA [TUS]] (pokaż stan jednego lub wszystkich urządzeń) MODE LPTn [:] cols [, [lines] [, retry]] (cols lub cpi, 6/8 lpi, retry p lub n) TRYB LPTn [:] [COLS = ...] [LINES = ...] [RETRY = ...] (ponów: p nieskończone / n brak) TRYB LPTn [:] = [COMn [:] | NUL] (przekierowanie danych drukarki do portu szeregowego lub NUL) MODE COMn [:] baud, parzystość, dane, stop, ponów (dozwolone wartości puste) MODE COMn [:] [BAUD [HARD] = ...] [PARITY = ...] [DATA = ...] [STOP = ...] [RETRY = ...] Baud można skrócić do unikalnego prefiksu, parzystość może być o / e / n / s / m, ostatnie 2 oznacza spację / znak, dane mogą być 5..8, stop 1..2. Ponowna próba jest Zignorowana! PLANOWANE: Ponów próbę b / e / r -> zajęty / błąd / gotowy, jeśli zajęty, p / n nieskończony / brak ponownych prób. MODE CON [:] [CP | CODEPAGE] [/ STA [TUS]] (FreeDOS DISPLAY musi być załadowany) MODE CON [:] [CP | CODEPAGE] REF [RESH] (wymaga WYŚWIETLANIA) MODE CON [:] [CP | CODEPAGE] SEL [ECT] = liczba (wymaga WYŚWIETLANIA) MODE CON [:] [CP | CODEPAGE] PREP [ARE] = ((strona kodowa) nazwa_pliku) (wymaga WYŚWIETLANIA) Użyj PREP = ((, cp2, cp3,, cp5) ...), aby przygotować strony kodowe w innych buforach. MODE [40 | 80 | BW40 | BW80 | CO40 | CO80 | MONO] [, rzędy] (wiersze mogą mieć 25, 28, 43 lub 50) Jeśli chcesz zmienić tylko czcionkę, użyj wartości 8, 14 lub 16 jako wartości „wierszy”. MODE [CO40 | CO80 | ...], [R | L] [, T] (przesuń CGA w lewo / w prawo, T to tryb interaktywny) MODE CON [:] [NUMLOCK | CAPSLOCK | SCROLLLOCK | SWITCHAR] = wartość Wartością może być: + lub - dla zamków lub znak dla switchar. MODE CON [:] [COLS = ...] [LINES = ...] (możliwe wartości zależą od sprzętu) MODE CON [:] [RATE = ...] [DELAY = ...] (domyślna szybkość 20, domyślne opóźnienie 1) Szybkość może wynosić 1–32 dla 2–30 znaków / s, opóźnienie 1–4 dla 1 / 4–4 / 4 sek.
Z tych samych powodów, co w przypadku kodu ASM, który podałem, chyba że wykonasz go w COMMAND.COM z DOSONLY dodanym do pliku CONFIG.NT, okno natychmiast powróci do poprzedniego rozmiaru po zamknięciu MODE.COM.
Wreszcie, jak powiedzieli inni, można również zmodyfikować te ustawienia, po prostu klikając prawym przyciskiem myszy pasek tytułu wiersza polecenia i modyfikując Właściwości -> Układ. Podobnie możesz ustawić rozdzielczość dla dowolnych skrótów do CMD.EXE i plików wsadowych (kliknij prawym przyciskiem myszy skrót -> Właściwości -> Układ). Działa to tylko dla CMD.EXE, ale nie dla COMMAND.COM.
Nie znam historii, która za tym stoi, ale ta pozycja na liście życzeń od autora PuTTy jest interesującym postem, który wyjaśnia techniczne przeszkody związane z każdym rodzajem zamiennika cmd.exe, który nie jest kiepski:
http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/win-command-prompt.html
Nie wspominasz, że szukasz zamiennika, ale jeśli tak, możesz również sprawdzić niektóre zamienniki cmd.exe, takie jak Console 2 lub Take Command firmy JP Software itp. Mam też dobre doświadczenia z PuTTy- Cyg, który pozwala używać PuTTy jako powłoki cygwin.
Chociaż szerokość nie jest ograniczona, jak pokazują inne odpowiedzi, zawsze wydawało mi się dziwne, że można przeciągać i zmieniać wysokość za pomocą myszy, ale nie szerokości .
Myślę, że domyślna szerokość 80 znaków jest związana ze zgodnością ze starymi programami, które zakładają, że terminal nie będzie miał więcej niż 80 znaków. Nie wydaje mi się jednak, żeby to był realistyczny powód od około dekady.
Jak zauważyli inni, nie ogranicza się do szerokości 80 znaków, ale przypuszczam, dlaczego domyślnie jest to 80 znaków, byłoby to, że zostało to z czasów DOS, kiedy wyświetlacze CRT miały 80 znaków szerokości.
Ponieważ będzie przewijał się od lewej do prawej, a także w górę iw dół, pierwszą rzeczą, jaką robię w systemie, jest zdefiniowanie mojej szerokości jako 180 i zapisanie jej. To ogólnie wystarczy, aby ślady stosu nie musiały się owijać w większości, ale nie na tyle, aby tracić mnóstwo miejsca.
Kiedy już to zrobisz, ustaw rozmiar pionowy (bufor przewijania) na wszystkie 9. Będziesz zadowolony, że kiedyś to zrobiłeś.
Ponieważ MS ceni „kompatybilność wsteczną” ponad wiele rzeczy iw tym przypadku podejrzewam, że jest to błędne przekonanie, że w jakiś sposób denerwuje ludzi, jeśli nie mają standardowego okna o szerokości 80 stopni.
Oczywiście mogło się zdarzyć, że został zaprogramowany na stałą szerokość 80 znaków, kiedy było to dość uniwersalne, a dodatkowe ustawienia właściwości były trochę hackem.
To jest ograniczone. Sprawdź to. (Mam na myśli rozmiar okna NIE bufor)
Przekonasz się, że maksymalna szerokość, którą możesz ustawić, jest ograniczona, ale różni się w zależności od rozdzielczości ekranu. Jeśli twoja rozdzielczość jest ustawiona na 1024 x 768, zauważysz, że możesz uzyskać tylko 128 w szerokości wiersza polecenia. 128/1024 = 0,125
przekonasz się, że stosunek ten jest spójny we wszystkich obszarach. Mam sesję RDP działającą w rozdzielczości 2000x768 (na dwóch z moich trzech monitorów) i otrzymuję maksymalną szerokość 250.
Teraz okazuje się, że jest trochę większy niż rozmiar twojego monitora Actaul, ale mam trzy monitory, wszystkie z osobnymi komputerami stacjonarnymi. (czyli w zasadzie 3 rozdzielczości 1024x768) i jeśli chcę zrobić coś TAK PROSTEGO, jak rozciągnięcie wiersza poleceń na 2 lub więcej monitorów, NIE MOGĘ. (Chcę robić rzeczy z bardzo długimi ścieżkami (diruse.exe / itp.) ...
-do
To nie jest zamknięte. Należy więc zauważyć, że Terminal Windows teraz zmienia to wszystko:
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 / pl-pl / p / windows-terminal-preview / 9n0dx20hk701? activetab = pivot: overviewtab
Ponieważ poprawa użyteczności i funkcjonalności wszystkiego, czego wymaga rozwój w stylu Unix / GNU, osłabi Windows jako komercyjną platformę dla partnerów Microsoft. Zapobieganie temu oznacza, że produkty innych dużych firm dla programistów, takie jak ulepszone terminale i inne ogólne produkty stron trzecich, takie jak edytory tekstu, odtwarzacze wideo itp., Nie konkurują z istniejącym oprogramowaniem Unix / GNU. Bez tego Windows nie byłby dochodową platformą, a Microsoft straciłby monopol na komputery stacjonarne.
Dlatego terminal jest do bani, nie ma POSIX API, nie ma obsługi C99 w MSVC i lista jest długa. Aby wyjaśnić, powszechne technologie i rozwój systemów Unix / GNU są celowo nieobsługiwane, więc duże komercyjne firmy programistyczne nie muszą z nimi konkurować.