· windows powershell tips · 5 min read

Làm Powershell thân thiện hơn với Oh My Posh

Khi làm việc với termial của Linux, Mac, công việc rất dễ dàn với các Zsh và các plugin kèm theo như Oh My Zsh, Zsh Autosuggestion làm hiệu suất làm việc rất cao. Sau đó tôi chuyển sang với Powershell của Windows luôn cảm thấy thiếu thiếu gì đó không quen lắm. Sau thời gian tìm hiểu, tôi đã phát hiện ra Oh My Posh với khả năng tùy chỉnh giao diện giống như Oh My Zsh. Trong bài viết này, tôi sẽ hướng dẫn cách setup Oh My Posh trên Windows để có những trải nghiệm làm việc tốt hơn.

Khi làm việc với termial của Linux, Mac, công việc rất dễ dàn với các Zsh và các plugin kèm theo như Oh My Zsh, Zsh Autosuggestion làm hiệu suất làm việc rất cao. Sau đó tôi chuyển sang với Powershell của Windows luôn cảm thấy thiếu thiếu gì đó không quen lắm. Sau thời gian tìm hiểu, tôi đã phát hiện ra Oh My Posh với khả năng tùy chỉnh giao diện giống như Oh My Zsh. Trong bài viết này, tôi sẽ hướng dẫn cách setup Oh My Posh trên Windows để có những trải nghiệm làm việc tốt hơn.

Vấn đề

PowerShell là một công cụ dòng lệnh trên điều hành Windows. Tuy nhiên, nó có một số hạn chế và vấn đề mà người dùng thường gặp phải. Dưới đây là một số vấn đề phổ biến của PowerShell

  • Giao diện không hấp dẫn: Mặc định, giao diện PowerShell có thể trông nhàm chán và khó nhìn, đặc biệt là khi so sánh với các trình vỏ lệnh hiện đại khác như zsh trên macOS và Linux
  • Thông tin hiện tại: PowerShell mặc định không cung cấp nhiều thông tin hữu ích trên dòng lệnh như trạng thái của Git repository, tên nhánh hiện tại, hoặc trạng của Python environment
  • Tùy chỉnh khó khăn: việc tùy chỉnh giao diện của PowerShell có thể phức tạp và yêu cầu người dùng phải có kiến thức sâu về cấu hình

Lúc mình làm việc trên Linux/Mac với bash/zsh sang Powershell sẽ cảm thấy rất tù vì những lý do trên. Tuy nhiên, thật may mắn sau thời gian tìm kiếm, mình đã thấy Oh My Posh giống với Oh My Zsh với nhiều tùy chỉnh, thông tin và giao diện, tuy nhiên lúc cài đặt có hơi phức tạp so với Oh My Zsh nên mình viết bài này để hướng dẫn và rút ngắn thời gian tiếp cận với công cụ này.

Cách cài Oh My Posh

Trên trang chủ của Oh My Posh đã liệt kê nhiều phương pháp, trong bài viết này mình sẽ chỉ chia sẽ cách mình cài đặt trên máy của mình.

1. Cài đặt Oh My Posh

Để cài đặt, bạn chạy dưới quyền Administrator

Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://ohmyposh.dev/install.ps1'))

Lúc này, bạn có thể chạy thử lệnh sau để kiểm tra kết quả:

oh-my-posh

Nếu kết quả giống như bên dưới nghĩa là bước đầu bạn đã thành công.

oh-my-posh is a cross platform tool to render your prompt.
It can use the same configuration everywhere to offer a consistent
experience, regardless of where you are. For a detailed guide
on getting started, have a look at the docs at https://ohmyposh.dev

Usage:
  oh-my-posh [flags]
  oh-my-posh [command]

Available Commands:
  cache       Interact with the oh-my-posh cache
  completion  Generate the autocompletion script for the specified shell
  config      Interact with the config
  debug       Print the prompt in debug mode
  disable     Disable a feature
  enable      Enable a feature
  font        Manage fonts
  get         Get a value from oh-my-posh
  help        Help about any command
  init        Initialize your shell and config
  notice      Print the upgrade notice when a new version is available.
  print       Print the prompt/context
  prompt      Set up the prompt for your shell (deprecated)
  toggle      Toggle a segment on/off
  upgrade     Upgrade when a new version is available.
  version     Print the version

2. Cài đặt theme

Để cài đặt theme cho Oh My Posh, bạn có thể lên link này để xem trước và chọn 1 theme để tải về. Trong bài viết này mình chọn theme atomic.

mkdir ~/.oh-my-posh/
wget https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/atomic.omp.json -OutFile ~/.oh-my-posh/atomic.omp.json

Lúc này, bạn có thể chạy thử lệnh sau test apply theme mới.

oh-my-posh init pwsh --config ~/.config/oh-my-posh/config.omp.json | Invoke-Expression

Tuy nhiên, bạn sẽ giao diện hiện tại bị lỗi font, do đó, bạn cần cài đặt font mới.

3. Cài đặt font cho Oh My Posh

Để cài đặt font cho Oh My Posh, bạn chạy lệnh sau:

oh-my-posh font install

Sau đó bạn lựa chọn font phù hợp. Sau khi đã tải được font phù hợp. Trên termial, bạn cần mở Settings -> Defaults -> Appearance -> Fontface để chọn giao diện hiện font vừa cài đặt.

change_font

4. Tạo profile cho Powershell

Ở bước hiện tại, khi bạn restart lại Powershell, toàn bộ themes trước đó sẽ biến mất. Để lưu lại các cài đặt đã có, chúng ta sẽ cần tạo một file profile giống như .zshrc, .bashrc trên Linux. Để tạo profile bạn cần làm như sau:

Cấp quyền trên powershell

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Tạo tập tin profile bằng notepad

New-Item -Path $PROFILE -Type File -Force # Lưu ý nếu bạn đã từng tạo profile thì không cần sử dụng lệnh này
notepad $PROFILE

Lúc này, notepad mở lên, bạn thêm những lệnh sau, sau đó lưu lại.

oh-my-posh init pwsh --config ~/.config/oh-my-posh/config.omp.json | Invoke-Expression

Lúc này, khi bạn restart lại Powershell, toàn bộ theme và cấu hình của bạn vẫn giữ nguyên.

5. Cài đặt PSReadLine để tự động đề xuất câu lệnh

Để cài đặt PSReadLine, bạn sử dụng lệnh sau

Install-Module -Name PowerShellGet -Force
Exit
Install-Module PSReadLine -AllowPrerelease -Force
Import-Module PSReadLine
Set-PSReadLineOption -EditMode Windows
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -PredictionViewStyle InlineView

Lúc này, khi bạn đánh một lệnh gì đó, nếu lệnh đó đã đã từng được dùng trước đó, thì sẽ có text mờ bên dưới để nhắc lệnh.

posh-suggestion

Lúc này, bạn cũng sẽ phải cần cập nhật file profile bằng cách thêm các file sau:

Import-Module PSReadLine
Set-PSReadLineOption -EditMode Windows
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -PredictionViewStyle InlineView

Kết Luận

Trong bài viết này mình đã hướng dẫn các bạn cài đặt Oh My Posh một số tips để sử dụng hiệu quả, hy vọng sẽ giúp ích được mọi người có trải nghiệm làm việc tốt hơn và hiệu quả hơn. Sau bài viết này, các bạn có thể tìm hiểu thêm về một số cách tùy chỉnh giao diện, thêm những thông tin hay dùng như npm, docker, aws.

Back to Blog