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感受
- 总结
项目主页: 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 无法正确预览图片。
rnvimrRnvimr是一个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。
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因为他们是全屏显示的。这两个插件几乎是一样的。
都看到这里了,感觉有用的话,点个赞👍呗。