Skip to content

Commit b8b6d1a

Browse files
author
skywind3000
committed
z.lua 1.8.2
1 parent 4abe97f commit b8b6d1a

File tree

3 files changed

+22
-22
lines changed

3 files changed

+22
-22
lines changed

README.cn.md

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ z.lua 是一个快速路径切换工具,它会跟踪你在 shell 下访问过
1414

1515
- 性能比 **z.sh** 快三倍,比 **fasd** / **autojump** 快十倍以上。
1616
- 支持 Posix Shell:bash, zsh, dash, sh, ash, busybox 等等。
17-
- 支持 Fish Shell,Power Shell 和 Windows cmd。
18-
- 使用增强匹配算法,更准确的带你去到你想去的地方。
19-
- 低占用,能够仅在当前路径改变时才更新数据库(将 `$_ZL_ADD_ONCE` 设成 1)。
20-
- 交互选择模式,如果有多个匹配结果的话,跳转前允许你进行选择。
21-
- 集成 fzf (可选),可以用来做可视化选择或者参数补全。
17+
- 支持 Fish Shell,Power Shell 和 Windows cmd。
18+
- 使用增强匹配算法,更准确的带你去到你想去的地方。
19+
- 低占用,能够仅在当前路径改变时才更新数据库(将 `$_ZL_ADD_ONCE` 设成 1)。
20+
- 交互选择模式,如果有多个匹配结果的话,跳转前允许你进行选择。
21+
- 集成 fzf (可选),可以用来做可视化选择或者参数补全。
2222
- 快速跳转到父目录,或者项目根目录,代替反复 “cd ../../.." 。
2323
- 兼容 lua 5.1, 5.2 和 5.3 以上版本。
2424
- 自包含且无额外依赖,单个 `z.lua` 文件完成所有工作。
@@ -42,10 +42,10 @@ z -b foo # 跳转到父目录中名称以 foo 开头的那一级
4242

4343
## Install
4444

45-
- Posix Shells(Bash、zsh、dash、sh 或 BusyBox 等):
46-
47-
在你的 `.bashrc`, `.zshrc` 或者 `.profile` 文件中按 shell 类型添加对应语句:
48-
45+
- Posix Shells(Bash、zsh、dash、sh 或 BusyBox 等):
46+
47+
在你的 `.bashrc`, `.zshrc` 或者 `.profile` 文件中按 shell 类型添加对应语句:
48+
4949
eval "$(lua /path/to/z.lua --init bash)" # BASH 初始化
5050
eval "$(lua /path/to/z.lua --init zsh)" # ZSH 初始化
5151
eval "$(lua /path/to/z.lua --init posix)" # Posix shell 初始化
@@ -79,8 +79,8 @@ z -b foo # 跳转到父目录中名称以 foo 开头的那一级
7979

8080
但是第二种方法需要记得在 z.lua 位置改变或者 lua 版本升级后需要重新生成。
8181

82-
- Power Shell:
83-
82+
- Power Shell:
83+
8484
在你 Power Shell 的配置文件 `profile.ps1` 中放入下面语句:
8585

8686
iex ($(lua /path/to/z.lua --init powershell) -join "`n")
@@ -90,7 +90,7 @@ z -b foo # 跳转到父目录中名称以 foo 开头的那一级
9090

9191
- 将 z.lua 和 z.cmd 拷贝到 clink 的安装目录。
9292
- 将 clink 的安装目录添加到 `%PATH%` (z.cmd 可以被任意位置调用到)。
93-
- 保证 lua 命令在你的 `%PATH%` 环境变量中。
93+
- 保证 lua 命令在你的 `%PATH%` 环境变量中。
9494

9595

9696
- Windows cmder:
@@ -161,7 +161,7 @@ Frecency 是一个由 'recent' 和 'frequency' 组成的合成词,这个术语
161161

162162
对于一个给定的正则关键字序列(即 z 命令后面的参数),只有同时满足两个条件才算匹配成功:
163163

164-
1. 正则关键字将按顺序进行匹配(这条和默认匹配法相同)。
164+
1. 正则关键字将按顺序进行匹配(这条和默认匹配法相同)。
165165
2. 最后一个关键字可以和路径名的最后一段相匹配。
166166

167167
如果两条规则同时启用找不到任何结果,那么将会退回到只用规则 1 进行筛选,这两条规则是参考 fasd 引入的。
@@ -182,7 +182,7 @@ Frecency 是一个由 'recent' 和 'frequency' 组成的合成词,这个术语
182182
小技巧:
183183

184184
- 如果你在增强匹配算法下,想让最后一个关键字不当匹配最后一段路径名,还可以像默认匹配算法中一样匹配路径的其他部分的话,你可以在最后加一个独立的 '$' 参数,比如:`"z wo $"`
185-
- 如果你在增强匹配算法下,想让最后一个关键字匹配最后一段路径名以前的部分,那么可以增加一个斜杆参数,比如:`"z wo /"`
185+
- 如果你在增强匹配算法下,想让最后一个关键字匹配最后一段路径名以前的部分,那么可以增加一个斜杆参数,比如:`"z wo /"`
186186

187187

188188
- 如果没法匹配,同时又存在一条路径名和关键字相同,那么 cd 过去:
@@ -265,7 +265,7 @@ PS:你可以使用 `$_ZL_FZF` 环境变量来精确指明 fzf 的可执行路
265265

266266
`"-b"` 选项可以快速回到某一级父目录,避免重复的输入 "cd ../../.."。
267267

268-
- **(没有参数)**`cd` 到项目根目录,即跳转到最近的包含 (.git/.svn/.hg) 的父目录。
268+
- **(没有参数)**`cd` 到项目根目录,即跳转到最近的包含 (.git/.svn/.hg) 的父目录。
269269
- **(单个参数)**`cd` 到离当前目录最近的以关键字开头的父目录,如果找不到就尝试跳到包含关键字的父目录。
270270
- **(两个参数)**:将当前路径中的第一个关键词替换为第二个关键词。
271271

@@ -302,6 +302,8 @@ export _ZL_ROOT_MARKERS=".git,.svn,.hg,.root,package.json"
302302

303303
**Bonus**`zb ..` 相当于 `cd ..``zb ...` 相当于 `cd ../..`,而 `zb ....` 相当于 `cd ../../..` 等等。 最后 `zb ..20` 等同于调用 `cd ..` 二十次。
304304

305+
**Bonus**: 试试 `z -b -i` 以及 `z -b -I`,推荐把他们取个别名成 `zbi``zbf`
306+
305307

306308
## 补全功能
307309

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ If you want `zb` jump back to a parent directory contains a `.root` or `package.
323323

324324
**Bonus**: `zb ..` equals to `cd ..`, `zb ...` equals to `cd ../..` and `zb ....` equals to `cd ../../..`, and so on. Finally, `zb ..20` equals to `cd (..)x20`.
325325

326-
**Bonus**: try `zb -i` and `zb -I` and you can alias them to `zbi` and `zbf`.
326+
**Bonus**: try `z -b -i` and `z -b -I` and you can alias them to `zbi` and `zbf`.
327327

328328
## Completion
329329

@@ -460,7 +460,7 @@ As you see, z.lua is the fastest one and requires less resource.
460460

461461
## History
462462

463-
- 1.8.1 (2020-02-09): new: `z -b -i` and `z -b -I` to jump backwards in interactive mode.
463+
- 1.8.2 (2020-02-09): new: `z -b -i` and `z -b -I` to jump backwards in interactive mode.
464464
- 1.7.4 (2019-12-29): new: `$_ZL_HYPHEN` to treat hyphen as a normal character, see [here](https://github.com/skywind3000/z.lua/wiki/FAQ#how-to-input-a-hyphen---in-the-keyword-).
465465
- 1.7.3 (2019-09-07): use [lua-filesystem](http://keplerproject.github.io/luafilesystem/) package if possible when `$_ZL_USE_LFS` is `1`.
466466
- 1.7.2 (2019-08-01): Improve bash/zsh shell compatibility by [@barlik](https://github.com/barlik).

z.lua

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
-- z.lua - a cd command that learns, by skywind 2018, 2019, 2020
55
-- Licensed under MIT license.
66
--
7-
-- Version 1.8.1, Last Modified: 2020/02/09 23:33
7+
-- Version 1.8.2, Last Modified: 2020/02/09 23:33
88
--
99
-- * 10x faster than fasd and autojump, 3x faster than z.sh
1010
-- * available for posix shells: bash, zsh, sh, ash, dash, busybox
@@ -1823,7 +1823,7 @@ function cd_breadcrumbs(pwd, interactive)
18231823
return nil
18241824
end
18251825
local index = tonumber(input)
1826-
if index < 1 or index > #elements then
1826+
if index == nil or index < 1 or index > #elements then
18271827
return nil
18281828
end
18291829
retval = elements[index][2]
@@ -1853,9 +1853,7 @@ function cd_breadcrumbs(pwd, interactive)
18531853
end
18541854
retval = retval:sub(1, pos - 1):gsub('^%s*', '')
18551855
index = tonumber((retval == nil) and '0' or retval)
1856-
if index == nil then
1857-
return nil
1858-
elseif index < 1 or index > #elements then
1856+
if index == nil or index < 1 or index > #elements then
18591857
return nil
18601858
end
18611859
retval = elements[index][2]

0 commit comments

Comments
 (0)