vim-IDE进化08-ranger文件管理

2023-10-23 14:18:16 浏览数 (2)

这又是一个非常好用的插件,可以快速的浏览本地文件打开本地文件。如果是不同类型的文件如pdf,会调用本地系统的应用打开,就是这么好用,在习惯了vim后有个毛病,就是想要什么都可能通过命令行去操作,如果你也是这样,那这个插件非常适合你。

安装

需要先安装到系统中,首次安装不需要初始化也能使用,但是会比较丑,也没有预览功能,所以安装完成后,需要一些配置。

验证安装效果

brew install ranger

iterm2插件

mac 我使用的是 iter2 来使用nvim,所以能不能预览需要iterm2的支持,iterm2官方可以支持。 添加图片插件

curl https://iterm2.com/utilities/imgcat > imgcat chmod x imgcat mv imgcat /usr/local/bin

这步是装上iterm2的图片预览插件,还需要配置 ranger 的预览功能。

初始化

如何果不初始化将没有图片预览、边框等。

生成配置

ranger --copy-config=all

~/.config/ranger 目录生成以下5个文件:

  1. commands.py 与以下命令一起启动的命令
  2. commands_full.py 全套命令
  3. rc.conf 配置和绑定
  4. rifle.conf 文件关联(用于打开文件的程序)
  5. scope.sh 负责各种文件预览

图片预览

修改 rc.conf,ranger 将可以直接在终端预览图片

set preview_images true set preview_images_method iterm2

操作

:help 里有所有快捷键 l 进入当前当标目录 h 后退 回车 打开应用

g 快速跳转

gh 跳至home gd gu

vim 集成

添加插件:

Plug 'francoiscabrol/ranger.vim'

执行:

代码语言:javascript复制
:PlugInstall 进行安装

安装完成后,验证一下,调用ranger:

输入

代码语言:javascript复制
# 首字母大写
:Ranger

也可以通过快捷键就行调用: f 这个操作就是先按一下 后放开,再按一下f。

vim 对应插件官网: https://github.com/francoiscabrol/ranger.vim

当前完整配置

vim-IDE已经进化到了这一阶段,完成了:

  1. 系统基础环境安装
  2. vim 安装、基本配置
  3. 左侧文列表
  4. 状态栏
  5. 模糊搜索
  6. 文件浏览

对于文本编辑是完全够用了。

完整配置

代码语言:javascript复制
"=================================
" VIM 自身配置
"=================================
" 编码设置
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030

" 启用插件
set nocompatible
filetype on
filetype plugin indent on

" Tab 转空格
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab

" 列高亮
set cursorcolumn

" 记录上次光标位置
au BufReadPost * if line("'"") > 1 && line("'"") <= line("$") | exe "normal! g'"" | endif

" 分屏设置
" 向右分屏并把光标移动向右边
map td :set splitright<CR>:vsplit<CR>
" 向右分屏并把光标移动向左边
map ta :set nosplitright<CR>:vsplit<CR>
" 向下分屏并把光标移动向上边
map ts :set nosplitbelow<CR>:split<CR>
" 向下分屏并把光标移动向下边
map tw :set splitbelow<CR>:split<CR>

" 替换方向键为调节分屏大小
map <M-up> :res -5<CR>
map <M-down> :res  5<CR>
map <M-left> :vertical resize-5<CR>
map <M-right> :vertical resize 5<CR>

" 按键映射
map W :w<CR>
map Q :wq<CR>
map tq :q!<CR>
map te :terminal<CR>

" 设置 buff、空白字符的视觉提示
set list listchars=extends:❯,precedes:❮,tab:▸
" 这个提示在复制的时候是个问题
" set list listchars=extends:❯,precedes:❮,tab:▸,trail:˽

" 其他的一些配置
syntax on   " 语法高亮
set number      " 显示行号
"set relativenumber    " 相对行号
set wildmenu    "  让vim命令可用Tab补全
set hlsearch      " 变输入搜索词边高亮
set incsearch      " 光标自动跳转到搜索结果上
set t_ut=  "防止vim背景颜色错误

" 复制系统到 vim
vnoremap <C-y> " y
nnoremap <C-p> "*p

"=================================
" 插件部分--开始
"=================================
" 插件
call plug#begin('~/.vim/plugged')

" NERDTree
Plug 'scrooloose/nerdtree'
Plug 'Xuyuanp/nerdtree-git-plugin'
Plug 'mhinz/vim-startify'

# ranger 插件
Plug 'francoiscabrol/ranger.vim'
call plug#end()
"=================================
" 插件部分--结束
"=================================

"=================================
" NERDTree
"=================================

" 打开关闭 NERDTree
map tt :NERDTreeToggle<CR>

" 打开vim时自动打开NERDTree
autocmd vimenter * NERDTree

"    r 定位当前文件所在目录,这个很有用
" 当前从左树进入,又要将当前目录定位到当前位置用这个
map <leader>r :NERDTreeFind<cr> <C-w><C-w>

"显示书签"
let NERDTreeShowBookmarks=1
" 是否显示隐藏文件
let NERDTreeShowHidden=1

" 忽略一下文件的显示
let NERDTreeIgnore=['.pyc','~$','.swp']

let g:NERDTreeGitStatusIndicatorMapCustom = {
     "Modified"  : "✹",
     "Staged"    : "✚",
     "Untracked" : "✭",
     "Renamed"   : "➜",
     "Unmerged"  : "═",
     "Deleted"   : "✖",
     "Dirty"     : "✗",
     "Clean"     : "✔︎",
     'Ignored'   : '☒',
     "Unknown"   : "?"
     }
" }}}

"=========================================
" Startify 设置
"=========================================
" 修改其中的内容去获得更好的体验。
"设置书签
let g:startify_bookmarks= [
             '~/workspaces/',
             '~/.config/nvim/init.vim',
            ]
"起始页显示的列表长度
let g:startify_files_number = 10
"自动加载session
let g:startify_session_autoload = 1
"过滤列表,支持正则表达式
let g:startify_skiplist = [
        '^/tmp',
        ]
"自定义Header和Footer
let g:startify_custom_header = [
             ' ------------------------------ ',
             '|                              |',
             '|    Still waters run deep!    |',
             '|                              |',
             ' ---------------- ------------- ',
            ]
let g:startify_custom_footer = [
             ' ------------------------------ ',
             '|     Keep an open mind!       |',
             ' ---------------- ------------- ',
            ]

" 自己完成的脚本,判断打开文件是否存在。
function! SomeCheck()
   if filereadable(expand("%"))
    echo "SpecificFile exists"
  else
     autocmd VimEnter * Startify
  endif
endfunction

call SomeCheck()

"==============================================================================
" ranger 插件
"==============================================================================
" 设置 leader 打开
let g:ranger_map_keys = 0

map <leader>f :Ranger<CR>

" bclose 插件
let g:NERDTreeHijackNetrw = 0 " add this line if you use NERDTree
let g:ranger_replace_netrw = 1 " open ranger when vim open a directory

总结

到这一步,可以有完成日常文件编译、脱离鼠标的大部份操作,但是对于开发来说还是不够的,尤其每一种编程语言的特点还不太相同。 相信大部分使用vim的朋友都是IT领域的从业人员,小部分是出于真爱使用vim,那是真爱。有很大一部份是为了装X。 但是如果能坚持研究到这一步,也是从路人到喜欢。

后面开始向着编程IDE方向继续进化,演示如何集成各种编程需要的插件,还可以开发自己的插件。 目前工作中大部分时间都是使用vim,已经完成能胜任90%的工作需要。

0 人点赞