Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Windows

Tại Sao Terminal Windows Cũ Vẫn Hơn Hẳn Các Lựa Chọn Hiện Đại Của Microsoft

Windows Terminal đã thầm lặng trở thành một trong những thứ tốt nhất Microsoft ship. Tab, split pane, Quake mode chuẩn, GPU rendering, Unicode hỗ trợ tốt, Settings UI không bắt edit JSON trừ khi muốn. Là terminal mặc định của tác giả, chưa từng có lý do tìm nơi khác.

Trước khi Windows Terminal tốt như vậy, tác giả dùng Cmder. Gói bundle làm việc trong shell Windows trở nên chịu đựng được. Portable, gói sẵn Git for Windows, defaults hợp lý hơn nhiều out-of-the-box. Tác giả tưởng sẽ bỏ Cmder ngay khi terminal của Microsoft kịp lên với profiles và shell integration proper, và phần lớn đã thế. Nhưng Cmder chưa bao giờ rời hoàn toàn setup, vì vẫn có vài thứ gói cũ làm tốt hơn bất cứ thứ Microsoft ship riêng.

Git, ls, grep, ssh sẵn sàng trên bất kỳ máy Windows nào

Windows Terminal chỉ là terminal host. Nó render shell bạn trỏ vào, nhưng không mang theo công cụ. Trên Windows cài sạch, cmd và PowerShell vẫn không ship sẵn lệnh Unix dùng hàng ngày. Không có ls, grep, cat hay ssh. Muốn những thứ đó, phải cài Git for Windows riêng, loay hoay PATH, lặp lại trên mỗi máy mới.

Cmder không có vấn đề này. Bản full ~100MB ship kèm Git for Windows vendored, nghĩa là có git, ls, grep, cat, ssh và bash shell chạy ngay từ file Zip, không cài thêm gì. Tất cả lệnh dùng trên Linux box chạy ngay lập tức.

Nó cũng gắn Clink vào cmd, cho bash-style command line editing. Nghĩa là reverse history search Ctrl+R, tab completion tốt hơn, shortcut tự nhiên nếu đã dùng Linux shell. cmd thuần trong Windows Terminal không làm được điều này trừ khi tự thêm Clink.

Kết quả thực tế: trỏ profile Windows Terminal vào init.bat của Cmder cho cả hai thế giới tốt nhất. Được GPU rendering và tab handling của Windows Terminal, shell Cmder lặng lẽ nạp môi trường với mọi công cụ Unix cần thiết.

Cmder portable

Toàn bộ môi trường nằm trong một thư mục, copy đi đâu được đó

Tính portable là lý do khác Cmder vẫn có lợi thế so với mọi thứ Windows cung cấp. Windows Terminal là Store app gắn với tài khoản Microsoft và OS; không copy sang máy khác được. Cmder là cực đối lập.

Nó là một thư mục đơn lẻ. Giải nén vào C:\tools\Cmder, set biến môi trường %CMDER_ROOT%, xong setup. Muốn chuyển ổ hoặc máy khác, copy thư mục, mọi thứ đi kèm: aliases, color scheme, keyboard shortcuts, Git bundled, và bất kỳ binary nào bỏ vào thư mục bin để thêm vào PATH.

Windows Terminal cho export settings, nhưng chỉ cover Windows Terminal. Không mang theo Git binary, Unix tools, hay aliases. Cmder coi toàn bộ shell environment như một đơn vị portable, không thứ Microsoft ship nào sánh bằng.

File alias của Cmder thắng hẳn việc setup PowerShell profile

File text thuần cho shortcut, không cần scripting

Portable chỉ là một nửa hấp dẫn nếu phải rebuild shortcut mỗi máy. Đây là chỗ file alias Cmder tỏa sáng, và là mảnh ghép chưa tìm thấy thay thế sạch trong PowerShell thuần.

Cmder lưu alias trong file text thuần dưới config folder, cú pháp đơn giản nhất có thể. Một dòng một alias: alias gs=git status $* hoặc alias ..=cd .., shortcut sống ngay lần mở shell sau. Không lo scripting, execution policy, hay tìm đúng profile path. Ai từng setup PowerShell profile với lệnh tái sử dụng thực sự biết sự khác biệt.

PowerShell profile là file script chạy lúc startup, nằm ở một trong vài đường dẫn dưới Documents tùy host và phiên bản PowerShell. Set-Alias chỉ xử lý mapping lệnh-đơn-giản, nên bất cứ thứ cần đối số (như gs mở rộng thành git status với flag) phải viết function đầy đủ. Được nếu thích viết PowerShell. Rất nhiều nghi thức nếu chỉ muốn shortcut 2 chữ cho git status.

Điểm portable càng gia tăng ở đây. File alias nằm trong thư mục Cmder, nghĩa là copy Cmder sang máy mới, mọi shortcut từng định nghĩa đi kèm. PowerShell profile không đi theo trừ khi sync Documents path rõ ràng, và即便如此 mới chỉ nửa setup.

Tại sao gói cũ này vẫn giữ chỗ chân thành

Tác giả đầu tiên thừa nhận cửa sổ Cmder đang già. Render chậm so với GPU-accelerated Windows Terminal, tab handling cơ bản, UI ConEmu dưới nó trông như thiết kế thập kỷ trước. Nếu vẫn launch Cmder trực tiếp, hiểu tại sao muốn chuyển.

Mẹo: ngừng coi Cmder là terminal, bắt đầu coi nó là shell bundle bên trong Windows Terminal. Trỏ profile WT vào init script của Cmder, giao diện cũ không bao giờ load. Giữ lại: Unix tooling, thư mục portable, file alias, bọc trong renderer hiện đại của Microsoft. Cmder sinh ra từ sự bực bội với console emulator Windows, và Microsoft cuối cùng đã fix hầu hết bực bội đó về mặt rendering. Những phần chưa fix chính là lý do gói cũ vẫn xứng đáng giữ chỗ.