首页 nushell 命令记录
文章
取消

nushell 命令记录

filter

filter:基于列筛选行

ls | filter {|x| $x.type == 'file'}

╭───┬────────────┬──────┬─────────┬─────────────╮
│ # │    name    │ type │  size   │  modified   │
├───┼────────────┼──────┼─────────┼─────────────┤
│ 0 │ Cargo.lock │ file │ 35.1 KB │ an hour ago │
│ 1 │ Cargo.toml │ file │   362 B │ an hour ago │
│ 2 │ README.md  │ file │   191 B │ a month ago │
│ 3 │ nohup.out  │ file │   503 B │ an hour ago │
╰───┴────────────┴──────┴─────────┴─────────────╯

path

$ which nvim | get path | first | path dirname
E:\Neovim\bin

# 等价于
$ which nvim | get path | first | path split | drop | path join
E:\Neovim\bin

快速编辑配置文件

可以在 $nu.config-path 中先配置 buffer_editor: "E:\\tools\\helix\\hx.exe", 来使用 config env/nu 命令,直接调用 hx 等编辑器来改配置文件。

此外,由于 nu 没有热重载,要么重启 nu,要么使用 source C:\Users\Administrator\AppData\Roaming\nushell\env.nusource C:\Users\Administrator\AppData\Roaming\nushell\config.nu 来让 starship 在 nu 中生效。

starship + alacritty/wezterm 配置

由于 Windows 上的终端体验非常差, nu 可作为默认的 shell,成为 powershell 和 cmd 的替代品。

配置 starship[^nu-editor]:

1
2
3
4
5
6
7
8
9
10
# 1. 使用 `config env` 或者 `nvim $nu.env-path` 打开
#    (Windows 下)C:\Users\Administrator\AppData\Roaming\nushell\env.nu
#    配置文件,添加一行
mkdir ~/.cache/starship
starship init nu | save -f ~/.cache/starship/init.nu

# 2. 使用 `config nu` 或者 `nvim $nu.config-path` 打开
#    (Windows 下)C:\Users\Administrator\AppData\Roaming\nushell\config.nu
#    配置文件,添加一行
source ~/.cache/starship/init.nu

配置 alacritty:

1
2
3
# c:\Users\Administrator\AppData\Roaming\alacritty\alacritty.yml
shell:
  program: nu

配置 wezterm:

1
2
3
4
5
6
-- c:\Users\Administrator\.wezterm.lua
config.set_environment_variables = {
  -- default launching program
  -- COMSPEC = 'C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe',
  COMSPEC = 'E:\\tools\\nu\\nu.exe',
}

对于 Windows11 自带的现代“终端”,只需复制一个现有配置,把终端路径换成 nu,再把它设置为默认配置,就可以让“终端”使用 nu 了。

这基本上让 GUI 终端用上了 nu,而且无需打开 powershell/cmd。(如果你不将 nu 改成默认的 shell,那么每次使用 nu,都必须先开 powershell/cmd,但这完全不必要)

配置 neovim

在 lua 配置文件中加上,set.shell = 'nu',会让 nvim 使用 nu 作为终端。

一些终端悬浮插件,比如 FTerm,在其相应的配置文件中设置 cmd = {'E:\\tools\\nu\\nu.exe'} 来使用 nu。

本文由作者按照 CC BY 4.0 进行授权

Clickhouse Mergetree Family

WezTerm (Alacritty 的竞品)