龙空技术网

linux的终端下如何快速查找文件;历史记录 - FZF 模糊带你解决

爱摸鱼的程序员 65

前言:

而今姐妹们对“ubuntucopy快捷键”大致比较重视,朋友们都想要分析一些“ubuntucopy快捷键”的相关资讯。那么小编在网摘上收集了一些有关“ubuntucopy快捷键””的相关知识,希望兄弟们能喜欢,看官们一起来了解一下吧!

前置条件Mac 和 Linux 我都比较习惯使用 zsh + tmux 做为终端工具,所以接下来我们谈论在 zsh 模式下安装 fzf 以及他的使用。介绍(Introduce)它是一个用于命令行的交互式 Unix 过滤器,可以与任何列表一起使用;文件、命令历史记录、进程、主机名、书签、git 提交等。主要特性:轻便且无依赖非常快一套综合的功能灵活的展示页面支持 VIM/NEOVIM 插件、按键绑定、自动提示等安装(Install)fzf 提供源码,如果我们只想要一个工具命令,而不考虑 VIM 等的兼容问题,那么我们可以直接安装一个可执行程序 Ubuntu : echo y | sudo apt-get install fzf Mac : echo y | sudo brew install fzf开头我也说了,我们需要在 zsh 环境下且我也是个 VIM 控,所以源码安装就必须操作起来了。

git clone --depth 1  ~/.fzf~/.fzf/install

复制代码

git clone --depth 1 ~/.fzf ~/.fzf/install

在 install 的过程中可能会涉及到外网的访问,所以这里最好还是能翻墙安装下。多系统安装方式

Package Manager

Linux Distribution

Command

APK

Alpine Linux

sudo apk add fzf

APT

Debian 9+/Ubuntu 19.10+

sudo apt install fzf

Conda

conda install -c conda-forge fzf

DNF

Fedora

sudo dnf install fzf

Nix

NixOS, etc.

nix-env -iA nixpkgs.fzf

Pacman

Arch Linux

sudo pacman -S fzf

pkg

FreeBSD

pkg install fzf

pkgin

NetBSD

pkgin install fzf

pkg_add

OpenBSD

pkg_add fzf

Portage

Gentoo

emerge --ask app-shells/fzf

XBPS

Void Linux

sudo xbps-install -S fzf

Zypper

openSUSE

sudo zypper install fzf

fzf-tmux script顾名思义知道他是在 Tmux 环境下使用的 fzf 脚本插件。查看当前项目分之列表,仅展示 10 个 , 这里经过测试在 tmux 环境下使用 fzf 和 fzf-tmux 效果是一样的。

git branch | fzf-tmux -d 10

复制代码

git branch | fzf-tmux -d 10

命令行模式下快捷键绑定在我们安装的时候会看到在设置我们的快捷键,当然我们是在 zsh 中。默认的设置了 3 个快捷键。接下来我们使用下三个快捷键。Ctrl + T他的作用就是将我们当前的文件夹进fzf 主要的功能就是模糊搜索,这样我们只需要输入关键信息就可以搜索到了。这里结合 GitHub - sharkdp/bat: A cat(1) clone with wings.. 可以完成对文件的预览。按照 github 上安装即可,然后在我们的环境配置文件中配置下变量 FZF_CTRL_T_OPTS 。

Set FZF_CTRL_T_COMMAND to override the default commandSet FZF_CTRL_T_OPTS to pass additional options to fzf

我这里是在 Ubuntu 安装的 bat ,他的安装名叫 batcat,你可以按照官网给的建议给他建立一个软连接,建议不要用别名的方式,别名的方式在某些场景下会出现不生效。配置在 ~/.zshrc 中

export FZF_CTRL_T_OPTS="  --preview 'batcat -n --color=always {}'  --bind 'ctrl-/:change-preview-window(down|hidden|)'"

目前不知道如何通过快捷键滚动预览窗口的内容,只能通过鼠标进行滚动。Ctrl + R渲染处历史记录,将选中的命令粘贴到命令行中 h这个是我最喜欢的快捷键了。因为我们有的时候突然想执行之前的命令,但是太长不好记,虽然 zsh 有通过历史记录提示的插件,但是他也是根据开头进行匹配的,而 fzf 本身的模糊功能更加灵活。这样我只需要知道关键字就可以了。这里需要注意的是 Ctrl+R 按一次和按两次效果不一样的。我们能够发现第一次是 + 模式,这里我的理解是已单词为整体匹配。而第二次 Ctrl+R 则未 - 模式,它是按照每个字母进行匹配的,实际使用场景中应该是 + 模式更为常用吧。同样他也支持配置环境变量的方式更改执行参数

Set FZF_CTRL_R_OPTS to pass additional options to fzf

官方给了一个预览命令全部内容和复制命令的配置

export FZF_CTRL_R_OPTS="  --preview 'echo {}' --preview-window up:3:hidden:wrap  --bind 'ctrl-/:toggle-preview'  --bind 'ctrl-y:execute-silent(echo -n {2..} | pbcopy)+abort'  --color header:italic  --header 'Press CTRL-Y to copy command into clipboard'"

我的 Ubuntu 是通过 xsel 来实现剪切板管理的,这里 pbcopy 换对应的 xsel 命令即可。Alt + C一个是文件路径,一个是历史记录,还剩下一个是文件目录。因为我们需要经常通过终端进行路径的跳转。所以这个操作也是很常用的。同样我们可以定制对文件目录的预览,官方给的是按树形结构预览

export FZF_ALT_C_OPTS="--preview 'tree -C {}'"

我的 mac 上 Alt + C 被 yabai 占用了。所以这里我选择改为 Ctrl+E 正好 Luarnvim 中快捷键操作文件目录的快捷键对应为 E 按键。

作者:zxhtom

链接:

标签: #ubuntucopy快捷键 #本地主机中历史记录主要有哪些怎么查找 #ubuntu 批处理