背景
在Windows进行开发的时候,有时候需要使用终端指令做一些操作,例如查看一下当前文件、ssh登录等。这些操作大多数情况下是相同的,因此,如果可以使用指令的历史记录的话,可以极大得提升效率。下面是几种情况得对比:
- 不带任何配置的情况
- 带PSReadLine配置的情况
- 带fzf并使用fzf的情况(快捷键
CRTL-R
)
从上面三种表现来看:
- 第一种无任何提示,只能手动的输入命令;
- 第二种有有限的提示,可以协助输入最近输入的命令;
- 第三种可以列出历史,而且可以使用模糊查找;
可以发现,fzf可以很好的输入历史的指令。
说明
fzf介绍
首先,我们大概了解下fzf是什么东西。根据官网介绍,fzf是一个通用的命令行模糊查找工具。其优点是:
- 绿色的,无依赖;
- 灰常快;
- 功能强大;
- 灵活布局;
- 内置的(各种编辑器插件和自动补全功能);
如何安装
接下来,我们就安装一下fzf。因为,我们本文主要是介绍Windows平台,因此,只对Windows平台做介绍。Windows安装主要分为两种方法:
- 下载预编译的二进制;
- 使用包管理器安装;
下载二进制
下载
进入到下载页面,选择下载的版本,例如fzf-0.42.0-windows_amd64.zip
:
然后解压后放到一个文件夹,例如桌面。
添加环境变量
在环境变量中添加刚才的位置,例如桌面:
打开PowerShell,输入fzf --version
。(这里为了更好演示是添加环境变量起作用,下载了一个同安装好的不同版本的fzf)
如果是上面的输出,表示安装成功。
使用包管理器
对于包管理器,个人建议使用Windows官方的winget。只需要在终端中输入以下命令即可安装:
安装完成后可以看到,其会在环境变量中自动添加,只需要重启终端即可使用fzf。
添加补全提示
安装完成后,按下CTRL-R
并不会触发上面的效果。这时候还需要安装PowerShell的包PSFzf才可以使用。打开PowerShell,输入Install-Module -Name PSFzf
,然后根据提示选择是或者否。(本人安装好了,因此没有提示)
安装完成后,输入下面的命令:Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+t' -PSReadlineChordReverseHistory 'Ctrl+r'
,然后按下CTRL-R
即可使用。
加入Profile
使用编辑器打开Profile文件,例如在命令行输入notepad.exe $PROFILE
,然后输入以下指令:
if(Get-Module -ListAvailable -Name "PSFzf" -ErrorAction Stop) {
Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+t' -PSReadlineChordReverseHistory 'Ctrl+r'
}
保存。然后重启PowerShell,皆可生效。
评论区