1
0
mirror of https://github.com/skywind3000/z.lua synced 2026-03-21 23:29:48 +00:00

5 Commits

Author SHA1 Message Date
skywind3000
3875d774cb fixed nushell completion issue 2024-10-18 10:35:14 +08:00
skywind3000
dff590adc1 update docs 2024-10-18 03:09:39 +08:00
skywind3000
20c0494d44 update docs 2024-10-17 08:04:13 +08:00
skywind3000
67405d57e8 update gitignore 2024-10-16 00:31:50 +08:00
skywind3000
6e67a32520 fix: indentation consistency 2024-10-14 15:42:46 +08:00
4 changed files with 15 additions and 10 deletions

1
.gitignore vendored
View File

@@ -39,3 +39,4 @@ luac.out
*.x86_64
*.hex
/.vscode/*

View File

@@ -455,15 +455,13 @@ sys 0m0.030s
描述力强,可以更好的实现核心功能,同时速度更快,纯 shell 开发的话,太多语句是通过子进程 shell 的模式运行,所以性能很差,而 Python 开发的话启动速度又太慢,我在 Cygwin/msys 下用 z.sh 都觉得很卡autojump/fasd 卡到不能用。
最关键的一点Lua 速度很快 200 KB 的可执行程序,启动速度是 python 的 3倍perl 的 2 倍,很多命令行工具 go/rust 写成,动不动就 2MB / 3MB他们都还没有完成加载lua 脚本可能都运行完了。
最关键的一点Lua 速度很快 200 KB 的可执行程序,启动速度是 python 的 3 perl 的 2 倍,很多命令行工具 go/rust 写成,动不动就 2MB / 3MB他们都还没有完成加载lua 脚本可能都运行完了。
## Credit
Releated projects:
- [rupa/z](https://github.com/rupa/z): origin z.sh implementation
- [JannesMeyer/z.ps](https://github.com/JannesMeyer/z.ps): z for powershell
我的推特https://x.com/skywind3000
个人博客: https://skywind.me/blog
## License

View File

@@ -607,6 +607,7 @@ This project needs help for the tasks below:
- Thanks to [@manhong2112](https://github.com/manhong2112) for Power Shell porting.
- Thanks to [@BarbUk](https://github.com/BarbUk) for fzf completion in Bash.
- Thanks to [@barlik](https://github.com/barlik) for many improvements.
- Thanks to [@brglng](https://github.com/brglng) for nushell porting.
And many others.

15
z.lua
View File

@@ -2008,7 +2008,7 @@ function main(argv)
elseif opts.fish then
z_fish_init(opts)
elseif opts.powershell then
z_windows_init(opts)
z_windows_init(opts)
else
z_shell_init(opts)
end
@@ -2020,9 +2020,14 @@ function main(argv)
z_print(M, true, false)
end
elseif options['--complete'] then
local line = args[1] and args[1] or ''
local head = line:sub(Z_CMD:len()+1):gsub('^%s+', '')
local M = z_match({head}, Z_METHOD, Z_SUBDIR)
local M = {}
if options['-m1'] then
M = z_match(args and args or {}, Z_METHOD, Z_SUBDIR)
else
local line = args[1] and args[1] or ''
local head = line:sub(Z_CMD:len()+1):gsub('^%s+', '')
M = z_match({head}, Z_METHOD, Z_SUBDIR)
end
for _, item in pairs(M) do
print(item.name)
end
@@ -2864,7 +2869,7 @@ $env.config = ($env.config | update hooks.env_change.PWD ($env.config.hooks.env_
]]
local script_complete_nushell = [[
let zlua_completer = {|spans| $spans | skip 1 | _zlua --complete ...$in | lines | where {|x| $x != $env.PWD}}
let zlua_completer = {|spans| $spans | skip 1 | _zlua --complete -m1 ...$in | lines | where {|x| $x != $env.PWD}}
$env.config = ($env.config | default {} completions)
$env.config = ($env.config | update completions ($env.config.completions | default {} external))