您当前的位置: 首页 >  vim

ITKEY_

暂无认证

  • 0浏览

    0关注

    732博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

vim中使用ranger强强联手更快更强

ITKEY_ 发布时间:2021-05-09 09:02:30 ,浏览量:0

在这里插入图片描述

vim/neovim非常好用,我喜欢! ranger的vim风格操作真爽!能不能在vim中使用ranger当作文件管理呢?答案是肯定的。

我在翻看ranger的wiki时发现,竟然真的可以在vim中使用ranger。 原文如下: https://github.com/ranger/ranger/wiki/Integration-with-other-programs

The following plugin let you use ranger in place of the builtin netrw. It’s a nice alternative to the popular NERDTree: https://github.com/francoiscabrol/ranger.vim

An alternate plugin for neovim is neoranger.

rnvimr makes ranger running in a floating window to communicate with neovim via RPC.

If you prefer to use ranger from a separate terminal window, another approach is to use vim’s --remote option or neovim-remote.

vim-floaterm also has a ranger wrapper which allows to open ranger and pick files from within the floating/normal window.

我们就来体验一下这些插件是否好用吧!

文章目录
  • ranger.vim
    • 安装ranger.vim
    • 使用方法
    • 使用体验
  • neoranger
    • 安装neoranger
    • 如何使用neoranger
    • 使用体验
  • rnvimr
    • 安装rnvimr
      • 安装ranger
      • 安装pynvim
      • 安装ueberzug(未测试)
      • 安装rnvimr插件
      • 检查依赖完全性(可选)
    • 如何使用rnvimr
    • 我的rnvimr配置
    • 使用rnvimr感受
  • 总结

ranger.vim

在这里插入图片描述

项目主页: https://github.com/francoiscabrol/ranger.vim

安装ranger.vim

假设你已经正确的安装了neovim和ranger。在你喜欢插件管理器中安装,以 vim-plug为例:

Plug 'francoiscabrol/ranger.vim'

如果你使用的是neovim需要安装依赖插件bclose.vim:

 Plug 'rbgrouleff/bclose.vim'
使用方法

打开Ranger的默认快捷方式是f(默认为\ f)要禁用默认键映射,请将此行添加到.vimrc或init.vim中:

let g:ranger_map_keys = 0

然后您可以在此行添加新的映射:map f :Ranger

更多详细配置请参考项目主页。

使用体验

非常不错,两款软件的优化大部分都能发挥出来。我很满意! 美中不足:neovim中调用的ranger 无法正确预览图片。

neoranger

在这里插入图片描述

项目地址: https://github.com/Lokaltog/neoranger

安装neoranger

假设你已经正确的安装了neovim和ranger。在你喜欢插件管理器中安装,以 vim-plug为例:

Plug 'Lokaltog/neoranger'
如何使用neoranger

:Ranger 或者 :RangerCurrentFile

使用体验

感觉跟ranger.vim区别不大,也挺好用的。 只是默认 viewmode 设置成 multipane了 美中不足:neovim中调用的ranger 无法正确预览图片。

rnvimr

在这里插入图片描述

Rnvimr是一个NeoVim插件,允许您在浮动窗口中使用Ranger。

与其他Ranger vim插件不同,Rnvimr使您可以完全控制Ranger。它使用RPC与Ranger通信。该插件不支持Vim。

项目主页: https://github.com/kevinhwang91/rnvimr

安装相比上面两个插件要麻烦一些,我以macOS为例,其他系统请参考项目主页的介绍。

安装rnvimr

在macOS中使用brew install ranger安装的Ranger默认使用python2运行的,不符合rnvimr的要求。 macOS用户请通过pip3 install Ranger-fm而不是brew install ranger安装Ranger。

安装ranger
pip3 install Ranger-fm
安装pynvim
pip3 install pynvim
安装ueberzug(未测试)

从描述来看,可能安装完这个以后就可以预览图片了吧!在nvim中使用ranger我主要用来文件管理,预览图片不是我的刚需,暂未安装。依赖X11

注意macOS中无法安装ueberzug,linux安装方法可以参考https://github.com/seebye/ueberzug#installation

pip3 install ueberzug
安装rnvimr插件

在你喜欢插件管理器中安装,以 vim-plug为例:

Plug 'kevinhwang91/rnvimr'
检查依赖完全性(可选)

在shell中运行以下命令:

nvim +'checkhealth rnvimr'

运行结果如下;


health#rnvimr#check
========================================================================
## OS
  - OK: Name: Mac

## Ranger
  - OK: Version: ranger 1.9.3

## Python
  - OK: Version: 3.9.4 (default, Apr  5 2021, 01:50:46) [Clang 12.0.0 (clang-1200.0.32.29)]

## Pynvim
  - OK: Version: 0.4.3

## Ueberzug (optional)
  - INFO: Ueberzug is not support for Mac

## RPC
  - OK: RPC echo: Neovim send "Give me five!" and receive "Give me five!"

如何使用rnvimr

使用:RnvimrToggle以创建游侠过程,并且如果存在的话, :RnvimrToggle简单地显示或隐藏浮动窗口。

使用:RnvimrResize循环的预设布局。

按下Enter以在Ranger中打开文件。

Rnvimr还支持ctrl-t/ ctrl-x/ctrl-v键绑定,让你打开一个新的标签文件,一个新的水平分割,或在新的垂直分割。

按下qRanger只会隐藏浮动窗口。游骑兵将在下一个切换事件中附加当前缓冲区的文件。

按下yw游侠会发出游侠的cwd到Neovim的,gw会跳到Neovim的cwd。

我的rnvimr配置
" 设置 启动文件管理器
nnoremap  :RnvimrToggle
" 让Ranger取代Netrw并成为文件浏览器
let g:rnvimr_enable_ex = 1
" 选择文件后隐藏游侠
let g:rnvimr_enable_picker = 1
" 使用multipane模式启动(单列)可以按~手动切换
let g:rnvimr_ranger_cmd = 'ranger --cmd="set viewmode multipane"'
使用rnvimr感受

优点:

  • 浮动窗口与众不同,与其他的插件体验不同
  • 操作一体感强,就像是在同一款软件中操作

缺点:

  • 安装相对繁琐一些,好在一劳永逸
  • 不支持vim
  • 与nerdtree有点冲突,当打开nerdtree时调用ranger就会触发bug,这里ranger退不掉,vim 也退不了。 在这里插入图片描述
总结

neovim-remote和 vim-floaterm个人理解这两个不是直接使用ranger,而是这个插件可以方便调用外部终端程序,这样达到ranger和vim结合的目的。因为上面3个插件尝试下来已经达到我的目标了,这里我就折腾了。

试用了一下这几款插件,最终选择下来如果在电脑上使用我更喜欢rnvimr,因为浮动窗口更酷,操作一体感好一些。

如果在小屏设备上使用,我会选ranger.vim或neoranger因为他们是全屏显示的。这两个插件几乎是一样的。

都看到这里了,感觉有用的话,点个赞👍呗。

关注
打赏
1665243900
查看更多评论
立即登录/注册

微信扫码登录

0.0413s