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.nu
和 source 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。