fzf 是一个非常高效实用且美观的命令行工具,并且配置有对应的 vim 插件 fzf.vim, 相信很多人都用过。这里就不在赘述,如果你还没有用过,很推荐一试。

自从 neovim 的浮动窗口 PR https://github.com/neovim/neovim/pull/6619 被合到 master 以后,很多插件都利用了这个特性实现了很多很酷的功能,比如 coc.nvim,另外 vim-which-key 和 vista.vim 也利用了这一特性 。

浮动窗口的一个很大的特点就是不会像之前 split 的方式扰动你的窗口布局,晃动你的视线,而 fzf 也可以利用这一特性进一步提升体验!

比如下面这个效果图,我们可以让 fzf 在中间进行显示,有点类似于 IDEA 的搜索窗口:


要实现上面的效果,需要配置 3 个地方。首先是 2 个配置项:

    " 让输入上方,搜索列表在下方let $FZF_DEFAULT_OPTS = '--layout=reverse'" 打开 fzf 的方式选择 floating windowlet g:fzf_layout = { 'window': 'call OpenFloatingWin()' }

还有 1 个函数指定如何打开浮动窗口:

function! OpenFloatingWin()let height = &lines - 3let width = float2nr(&columns - (&columns * 2 / 10))let col = float2nr((&columns - width) / 2)" 设置浮动窗口打开的位置,大小等。" 这里的大小配置可能不是那么的 flexible 有继续改进的空间let opts = {\ 'relative': 'editor',\ 'row': height * 0.3,\ 'col': col + 30,\ 'width': width * 2 / 3,\ 'height': height / 2\ }let buf = nvim_create_buf(v:false, v:true)let win = nvim_open_win(buf, v:true, opts)" 设置浮动窗口高亮call setwinvar(win, '&winhl', 'Normal:Pmenu')setlocal\ buftype=nofile\ nobuflisted\ bufhidden=hide\ nonumber\ norelativenumber\ signcolumn=no
endfunction

关于浮动窗口的更多信息,可以 :help api-floatwin.

另外,如果你的浮动窗口设置高亮无效,看看是否有设置 g:fzf_colors,这可能会重置浮动窗口的高亮,有浮动窗口的话就不用设置了。

因为还没有 release, 目前要体验这个特性的话需要自己从 neovim master 编译,macOS 用户直接 安装 HEAD 版本的 neovim 就行了。安装好 neovim,然后进行如上配置应该就可以了。

对于 >>> https://github.com/liuchengxu/space-vim 用户直接升级 space-vim 即可。

使用 neovim 的浮动窗口让你再次爱上 fzf相关推荐

  1. h5 右下角浮动按钮_【js】右下角浮动窗口

    右下角浮动窗口 #msg_win{position:absolute;right:0px;overflow:hidden;z-index:99;border:1px solid #c00;backgr ...

  2. 浮动窗口代码(带关闭按钮+全屏漂浮)

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  3. 类似flashget的浮动窗口的实现

    作者:苍竹先生下载源代码一.简介:象flashget.迅雷.BT等都有浮动窗口,能详细地显示下载的详细信息,该类型的窗口有一下几个特点:1.窗口无标题栏,窗口的大小跟位图一样大.2.前端显示.3.在客 ...

  4. html全局浮窗,Html 实现浮动窗口

    今天在写一个html代码时,需要用到浮动窗口,通知信息,网站找了一下,代码如下 带关闭按钮的浮动窗口代码(全屏漂浮) #fdck {border:1px solid #c0c0c0;margin:0 ...

  5. 【Qt教程】1.9 - Qt5菜单栏、工具栏、状态栏、核心窗口、浮动窗口、QMainWindow

    1. 窗口应用布局样式及组成 PC端软件,最基本的一个窗口应用布局样式,如下: 大体可分为菜单栏.工具栏.状态栏.核心窗口.浮动窗口,使用时按需相互组合. 2. Qt中调用这些控件 1)新建一个工程: ...

  6. 7、菜单栏、工具栏、状态栏、浮动窗口、TextEdit

    新建项目,基类选择QMainWindow,不勾选ui    mainwindow.cpp代码: #include "mainwindow.h" #include <QMenu ...

  7. qt android 浮动窗口,QT+ 状态栏+核心控件+浮动窗口

    #include "mainwindow.h" #include #include #include #include //浮动窗口所需的头文件 MainWindow::MainW ...

  8. Qt开源库-顶级浮动窗口系统-Advanced-Docking-System【01】

    一.序言 顶级浮动窗口是大型软件中的常备组件,例如Visual Studio Code软件界面: 在上图中,将软件界面划分为不同的功能区,每个功能区负责显示软件的一部分功能.在上图中有项目工程管理窗口 ...

  9. 如臂使指——Dojo框架下让浮动窗口跟随鼠标而动

    介绍 在web应用的很多场合,需要让浮动窗口跟随鼠标而动.比如这儿举的一个例子:当用户选中网页上一段内容时,弹出工具条让用户进行标记.可以想象一下,有一个在线看书的应用,支持读者在阅读的时候随时做笔记 ...

最新文章

  1. 云供应商安全评估:小心落入陷阱
  2. 像@Transactional一样利用注解自定义aop切片
  3. 网站部署后Parser Error Message: Could not load type 的解决方案
  4. 数据库-MySQL-JDBC框架
  5. Android-JNI开发系列《十二》总结JNI知识体系
  6. TSPL学习笔记(2):过程和变量绑定
  7. github客户端从gitLab下拉取代码
  8. 如何用计算机测量图片景深,用手机也能测景深 DOF Master景深测量软件
  9. PLSQL 官方下载及安装
  10. 如何由普通用户权限获取root权限
  11. 常微分方程I ODE的例子3 生态学模型:Malthus增长模型、Lotka-Volterra模型
  12. java模仿滴滴的程序_小程序模仿滴滴打车
  13. 高德地图怎么画圈_高德地图 Javascript API 入门(二)
  14. 如何爬取商品详情页中的信息
  15. 魔兽DOTA高玩的自述
  16. 解决sublime无法下载插件问题
  17. 【OR】YALMIP Sum of squares(SOS)规划
  18. 时间序列_seasonal_decompose使用移动平均线进行季节性分解
  19. YouTube 十岁了,这十年里视频网站改变了什么?
  20. 在html文件中 url是统一资源定位器,HTML URL(统一资源定位器)

热门文章

  1. html中行高是指字的高度嘛,CSS行高line-height的理解
  2. html怎样调节背景透明度,css设置背景透明度的方法是什么
  3. 三菱FX3U——ST编程部件选择和边沿触发
  4. 分治算法(一)二分搜索技术
  5. 建立先进先出和先进后出链表
  6. Spring线程池异步传递MDC信息
  7. 前端开发:微信小程序功能记录 2段 产品sku代码段
  8. 程序员必会英语词汇表
  9. c语言 : 将一个数组拷贝到另一个数组
  10. 图像处理函数详解——bwareaopen