Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e2cce39ee4 | ||
|
|
3c88f8d8fa | ||
|
|
786225005c | ||
|
|
481c1774ed | ||
|
|
35e1199eff | ||
|
|
99dbe7b677 | ||
|
|
c88746629b | ||
|
|
336e95b05a | ||
|
|
a3d4f5db68 | ||
|
|
a991162428 | ||
|
|
8210c56414 | ||
|
|
a01b28a8d3 | ||
|
|
695533cee1 | ||
|
|
58425dad65 | ||
|
|
44a2489ba3 | ||
|
|
6e01d4ad52 | ||
|
|
c3c15a3ca9 |
16
README.md
@@ -35,7 +35,7 @@ From people using z.lua:
|
||||
- Integrated with FZF (optional) for interactive selection and completion.
|
||||
- Quickly go back to a parent directory instead of typing "cd ../../..".
|
||||
- Corresponding experience in different shells and operating systems.
|
||||
- Compatible with Lua 5.1, 5.2 and 5.3+
|
||||
- Compatible with Lua (5.1, 5.2, 5.3+) and luajit.
|
||||
- Self contained, distributed as a single `z.lua` script, no other dependence.
|
||||
|
||||
|
||||
@@ -105,17 +105,17 @@ z -b foo # cd to the parent directory starting with foo
|
||||
|
||||
To generate old posix compatible script.
|
||||
|
||||
- Fish Shell:
|
||||
- Fish Shell (version `2.4.0` or above):
|
||||
|
||||
Create `~/.config/fish/conf.d/z.fish` with following code
|
||||
|
||||
source (lua /path/to/z.lua --init fish | psub)
|
||||
lua /path/to/z.lua --init fish | source
|
||||
|
||||
Fish version `2.4.0` or above is required.
|
||||
If you'd like `z.lua` to cooperate with fish's own [directory history](https://fishshell.com/docs/3.2/index.html#id34), you can put
|
||||
|
||||
lua /path/to/z.lua --init fish > ~/.config/fish/conf.d/z.fish
|
||||
set -gx _ZL_CD cd
|
||||
|
||||
This is another way to initialize z.lua in fish shell, but remember to regenerate z.fish if z.lua has been updated or moved.
|
||||
into the same file.
|
||||
|
||||
- Power Shell:
|
||||
|
||||
@@ -153,7 +153,7 @@ z -b foo # cd to the parent directory starting with foo
|
||||
- set `$_ZL_EXCLUDE_DIRS` to a comma separated list of dirs to exclude.
|
||||
- set `$_ZL_ADD_ONCE` to '1' to update database only if `$PWD` changed.
|
||||
- set `$_ZL_MAXAGE` to define a aging threshold (default is 5000).
|
||||
- set `$_ZL_CD` to specify your own cd command.
|
||||
- set `$_ZL_CD` to specify your own cd command (default is `builtin cd` in Unix shells).
|
||||
- set `$_ZL_ECHO` to 1 to display new directory name after cd.
|
||||
- set `$_ZL_MATCH_MODE` to 1 to enable enhanced matching.
|
||||
- set `$_ZL_NO_CHECK` to 1 to disable path validation, use `z --purge` to clean
|
||||
@@ -268,7 +268,7 @@ To enable this, you can set `$_ZL_ADD_ONCE` to `1` before init z.lua. Or you can
|
||||
````bash
|
||||
eval "$(lua /path/to/z.lua --init bash once)"
|
||||
eval "$(lua /path/to/z.lua --init zsh once)"
|
||||
source (lua /path/to/z.lua --init fish once | psub)
|
||||
lua /path/to/z.lua --init fish once | source
|
||||
````
|
||||
|
||||
With `add once` mode off (default), z.lua will consider the time you spent in the directory (like z.sh). When this mode is on, consider the times you accessed the directory (like autojump), and that could be much faster on slow hardware.
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 9.0 KiB |
BIN
images/fzf.png
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 8.5 KiB |
BIN
images/mru.png
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 10 KiB |
BIN
images/step1.png
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 7.5 KiB |
BIN
images/step2.png
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 5.7 KiB |
BIN
images/step3.png
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
images/step4.png
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 3.4 KiB |
@@ -27,6 +27,8 @@ end
|
||||
if test -e $_zlua_dir/z.lua
|
||||
if type -q lua
|
||||
lua $_zlua_dir/z.lua --init fish enhanced once echo | source
|
||||
else if type -q luajit
|
||||
luajit $_zlua_dir/z.lua --init fish enhanced once echo | source
|
||||
else if type -q lua5.3
|
||||
lua5.3 $_zlua_dir/z.lua --init fish enhanced once echo | source
|
||||
else if type -q lua5.2
|
||||
|
||||
8
z.cmd
@@ -120,8 +120,12 @@ rem -- Exploits variable expansion and the pushd stack to set the current
|
||||
rem -- directory without leaking a pushd.
|
||||
popd
|
||||
setlocal
|
||||
set NewPath=%CD%
|
||||
endlocal & popd & cd /d "%NewPath%"
|
||||
set "NewPath=%CD%"
|
||||
set "CDCmd=cd /d"
|
||||
if /i not "%_ZL_CD%"=="" (
|
||||
set "CDCmd=%_ZL_CD%"
|
||||
)
|
||||
endlocal & popd & %CDCmd% "%NewPath%"
|
||||
|
||||
:end
|
||||
echo.
|
||||
|
||||
13
z.lua
@@ -1,10 +1,10 @@
|
||||
#! /usr/bin/env lua
|
||||
--=====================================================================
|
||||
--
|
||||
-- z.lua - a cd command that learns, by skywind 2018, 2019, 2020, 2021
|
||||
-- z.lua - a cd command that learns, by skywind 2018-2022
|
||||
-- Licensed under MIT license.
|
||||
--
|
||||
-- Version 1.8.12, Last Modified: 2021/02/15 00:05
|
||||
-- Version 1.8.14, Last Modified: 2022/01/30 21:53
|
||||
--
|
||||
-- * 10x faster than fasd and autojump, 3x faster than z.sh
|
||||
-- * available for posix shells: bash, zsh, sh, ash, dash, busybox
|
||||
@@ -49,7 +49,6 @@
|
||||
-- source (lua /path/to/z.lua --init fish | psub)
|
||||
--
|
||||
-- Power Shell Install:
|
||||
--
|
||||
-- * put something like this in your config file:
|
||||
-- Invoke-Expression (& {
|
||||
-- (lua /path/to/z.lua --init powershell) -join "`n" })
|
||||
@@ -581,7 +580,7 @@ function os.path.exists(name)
|
||||
end
|
||||
local ok, err, code = os.rename(name, name)
|
||||
if not ok then
|
||||
if code == 13 then
|
||||
if code == 13 or code == 17 then
|
||||
return true
|
||||
elseif code == 30 then
|
||||
local f = io.open(name,"r")
|
||||
@@ -2564,7 +2563,11 @@ goto end
|
||||
popd
|
||||
setlocal
|
||||
set "NewPath=%CD%"
|
||||
endlocal & popd & cd /d "%NewPath%"
|
||||
set "CDCmd=cd /d"
|
||||
if /i not "%_ZL_CD%"=="" (
|
||||
set "CDCmd=%_ZL_CD%"
|
||||
)
|
||||
endlocal & popd & %CDCmd% "%NewPath%"
|
||||
:end
|
||||
]]
|
||||
|
||||
|
||||
@@ -2,11 +2,14 @@
|
||||
|
||||
ZLUA_SCRIPT="${0:A:h}/z.lua"
|
||||
|
||||
[[ -n "$ZLUA_EXEC" ]] && [[ ! -x "$ZLUA_EXEC" ]] && ZLUA_EXEC=""
|
||||
if [[ -n "$ZLUA_EXEC" ]] && ! which "$ZLUA_EXEC" &>/dev/null; then
|
||||
echo "$ZLUA_EXEC not found"
|
||||
ZLUA_EXEC=""
|
||||
fi
|
||||
|
||||
# search lua executable
|
||||
if [[ -z "$ZLUA_EXEC" ]]; then
|
||||
for lua in lua lua5.3 lua5.2 lua5.1; do
|
||||
for lua in lua luajit lua5.3 lua5.2 lua5.1; do
|
||||
ZLUA_EXEC="$(command -v "$lua")"
|
||||
[[ -n "$ZLUA_EXEC" ]] && break
|
||||
done
|
||||
|
||||