05_[nvim0.5+从0单排]_vim文件管理插件defx与窗口选择工具 vim-choosewin

2023-05-16

视频与目录

项目
教程目录https://blog.csdn.net/lxyoucan/article/details/120641546
视频全屏https://www.bilibili.com/video/BV1XR4y1n78z/
视频

05vim文件管理插件defx与窗口选择工具 vim-choosewin

05_[nvim0.5+从0单排]_vim文件管理插件—defx

欢迎来到第5期,本期介绍一款本人长期在用的插件,在文件管理这块非常的强大.

插件安装

这里以packer为例

-- 文件管理插件,类似与ranger。小孩子才做选择,我都要
use {
	"Shougo/defx.nvim",
	requires = {
		"kristijanhusak/defx-icons", -- dexf文件管理图标支持
		"t9md/vim-choosewin" -- 窗口选择器,可以让defx使用i打开文件
	}
}

配置

defx配置

新增如下配置文件

~/.config/nvim/after/plugin/defx.rc.vim

内容如下:

if !exists('g:loaded_defx') | finish | endif
" Define mappings
"cnoreabbrev sf Defx -listed -new
"      \ -columns=indent:mark:icon:icons:filename:git:size
"      \ -buffer-name=tab`tabpagenr()`<CR>
nnoremap <silent>sf :<C-u>Defx -listed -resume
      \ -columns=indent:mark:icon:icons:filename:git:size
      \ -buffer-name=tab`tabpagenr()`
      \ `expand('%:p:h')` -search=`expand('%:p')`<CR>
"nnoremap <silent>fi :<C-u>Defx -new `expand('%:p:h')` -search=`expand('%:p')`<CR>

autocmd FileType defx call s:defx_my_settings()
	function! s:defx_my_settings() abort
	  " Define mappings
	  nnoremap <silent><buffer><expr> <CR>
	  \ defx#do_action('open')
	  nnoremap <silent><buffer><expr> yy
	  \ defx#do_action('copy')
	  nnoremap <silent><buffer><expr> dd
	  \ defx#do_action('move')
	  nnoremap <silent><buffer><expr> pp
	  \ defx#do_action('paste')
	  nnoremap <silent><buffer><expr> l
	  \ defx#do_action('open')
	  nnoremap <silent><buffer><expr> <Right>
	  \ defx#do_action('open')
	  nnoremap <silent><buffer><expr> E
	  \ defx#do_action('open', 'vsplit')
	  nnoremap <silent><buffer><expr> n
	  \ defx#do_action('open', 'pedit')
	  nnoremap <silent><buffer><expr> i
	  \ defx#do_action('open', 'choose')
	  nnoremap <silent><buffer><expr> o
	  \ defx#do_action('open_or_close_tree')
	  nnoremap <silent><buffer><expr> K
	  \ defx#do_action('new_directory')
	  nnoremap <silent><buffer><expr> N
	  \ defx#do_action('new_file')
	  nnoremap <silent><buffer><expr> M
	  \ defx#do_action('new_multiple_files')
	  nnoremap <silent><buffer><expr> C
	  \ defx#do_action('toggle_columns',
	  \                'mark:indent:icon:filename:type:size:time')
	  nnoremap <silent><buffer><expr> S
	  \ defx#do_action('toggle_sort', 'time')
	  nnoremap <silent><buffer><expr> dD
	  \ defx#do_action('remove')
	  nnoremap <silent><buffer><expr> a
	  \ defx#do_action('rename')
	  nnoremap <silent><buffer><expr> !
	  \ defx#do_action('execute_command')
	  nnoremap <silent><buffer><expr> x
	  \ defx#do_action('execute_system')
	  nnoremap <silent><buffer><expr> YY
	  \ defx#do_action('yank_path')
	  nnoremap <silent><buffer><expr> .
	  \ defx#do_action('toggle_ignored_files')
	  nnoremap <silent><buffer><expr> <BS>
	  \ defx#do_action('toggle_ignored_files')
	  nnoremap <silent><buffer><expr> ;
	  \ defx#do_action('repeat')
	  nnoremap <silent><buffer><expr> h
	  \ defx#do_action('cd', ['..'])
	  nnoremap <silent><buffer><expr> <Left>
	  \ defx#do_action('cd', ['..'])
	  nnoremap <silent><buffer><expr> ~
	  \ defx#do_action('cd')
	  nnoremap <silent><buffer><expr> gh
	  \ defx#do_action('cd')
	  nnoremap <silent><buffer><expr> gn
	  \ defx#do_action('cd',['~/.config/nvim'])
	  nnoremap <silent><buffer><expr> q
	  \ defx#do_action('quit')
	  nnoremap <silent><buffer><expr> <Space>
	  \ defx#do_action('toggle_select') . 'j'
	  nnoremap <silent><buffer><expr> m
	  \ defx#do_action('toggle_select') . 'j'
	  nnoremap <silent><buffer><expr> vv
	  \ defx#do_action('toggle_select_all')
	  nnoremap <silent><buffer><expr> *
	  \ defx#do_action('toggle_select_all')
	  nnoremap <silent><buffer><expr> j
	  \ line('.') == line('$') ? 'gg' : 'j'
	  nnoremap <silent><buffer><expr> k
	  \ line('.') == 1 ? 'G' : 'k'
	  nnoremap <silent><buffer><expr> <C-l>
	  \ defx#do_action('redraw')
	  nnoremap <silent><buffer><expr> <C-g>
	  \ defx#do_action('print')
	  nnoremap <silent><buffer><expr> cd
	  \ defx#do_action('change_vim_cwd')
	endfunction

call defx#custom#column('icon', {
      \ 'directory_icon': '▸',
      \ 'opened_icon': '▾',
      \ 'root_icon': ' ',
      \ })
call defx#custom#column('git', 'indicators', {
  \ 'Modified'  : 'M',
  \ 'Staged'    : '✚',
  \ 'Untracked' : '✭',
  \ 'Renamed'   : '➜',
  \ 'Unmerged'  : '═',
  \ 'Ignored'   : '☒',
  \ 'Deleted'   : '✖',
  \ 'Unknown'   : '?'
  \ })

defx-icons配置

新增如下配置文件

~/.config/nvim/after/plugin/defx-icons.rc.vim

内容如下:

" 增加图标的宽度,来解决图标 与文件名重叠的问题
let g:defx_icons_column_length = 2

因为图标配置需要优化级比较高,所以要在init.vim中增加如下一行:

source ~/.config/nvim/after/plugin/defx-icons.rc.vim

vim-choosewin配置

这是一个窗口选择插件.
新增如下配置文件

~/.config/nvim/after/plugin/vim-choosewin.rc.vim

内容如下:

"window选择器
" if you want to use overlay feature
let g:choosewin_overlay_enable = 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

05_[nvim0.5+从0单排]_vim文件管理插件defx与窗口选择工具 vim-choosewin 的相关文章

  • 在 VIM 中切换语法高亮的隐藏属性

    我目前有一个解析日志文件的语法文件 与以下内容非常相似 这是针对 syslog 的 syn match syslogText syn match syslogFacility 1 nextgroup syslogText skipwhite
  • Vim 滚动时保持光标位置

    有没有办法在滚动时使 Vim gVim 中的 cusror 位置保持在屏幕外 与许多 Windows 编辑器类似 我了解标记 并且确实使用它们 我也知道 标记 最后编辑位置 但正在寻找其他想法 我问这个问题是因为有时我想将光标保留在某个位置
  • vim 中项目列表的智能硬包装

    我喜欢 vim 而且我真的很喜欢在写文字时将它们硬包装起来 Tim Pope 的 markdown 插件很棒 并且构建得当我尝试硬包装项目列表时它可以正确完成工作 好吧 这就是我所说的正确完成工作的意思 here I write a lon
  • 在 Vim 中将 DOS/Windows 行结尾转换为 Linux 行结尾

    如果我打开在 Windows 中创建的文件 所有行都以 M 如何一次性删除这些字符 dos2unix https sourceforge net projects dos2unix是一个可以执行此操作的命令行实用程序 In Vim s M
  • 为 Vim 命令行创建一个映射,在插入寄存器之前转义寄存器的内容

    假设我有一个这样的文档 并且我想搜索所有出现的 URL Vim resources http example com search q vim q q http example com search q vim 我不想完整地输入它 所以我将
  • 如何让 git 在 vi​​m 中显示更改,就像 hg 使用 hgeditor 脚本那样?

    Mercurial 的一个有趣的功能是能够查看将在 vim split 中提交的更改 请参阅VIM 中的 DiffsInCommitMessage https www mercurial scm org wiki DiffsInCommit
  • 适用于 neovim / vim8 的 C# LSP 自动完成客户端

    我尝试了多种方法来使其发挥作用 但似乎没有简单的方法 是的 有大量的插件和配置 但截至 2019 年 10 月 它们无法正常工作 OmniSharp Vim https github com OmniSharp omnisharp vim客
  • 使用新文件名保存文件:附加到现有文件名

    有没有一种简单的方法 在 VIM 中 使用当前名称加上附加短语保存当前打开的文件 即 来自 home affert type vim data folder file1 txt 然后将文件另存为 data folder file1 txt
  • 设置快捷方式以替换 VIM 中轻松选择的字符串

    我有很多 php html 文件 其中包含许多应该使用 gettext 国际化的字符串 因此 我必须遍历每个文件 找到 消息 字符串并将每个字符串替换为 I use vim and would like to setup a shortcu
  • 有没有办法用 Vim 自动重新格式化大括号?

    我想重新格式化一些代码 如下所示 if cond foo to if cond foo 由于这是C代码 所以我一直在看cindent cinoptions与使用 但它似乎不处理多行规则 我一直在看formatoptions与使用gq 而且似
  • Vimscript 检查当前缓冲区是否有未保存的更改

    我目前已设置状态行 使其在插入模式下为橙色 否则为白色 如果文件有任何未保存的更改 我想让它在我回到正常模式时变成另一种颜色 因为我经常在兔子洞里走一会儿 想知道为什么我的更改没有生效 小 还不够打我的脸 我找不到任何以 buf 开头且看起
  • Foldmethod=同时标记和语法?

    同一文件是否可以根据标记和语法使用折叠 Since foldmethod一次只能设置为一个 我认为您真正可以做到这一点的唯一方法是使用 set foldmethod expr并与foldexpr 即使如此 我也不确定它是否能够完全按照您的要
  • Pathogen 不加载插件

    病原体对我不起作用 我正在遵循 Adam Lowe 发布的提示here http www adamlowe me 2009 12 vim destroys all other rails editors html 还有更多 没有任何成功 我
  • Vim / vi 生存指南

    基本的 vim 命令有哪些 新用户需要了解什么才能避免陷入麻烦 请每条评论一条命令 我发现不可替代的 因为它也可以在 vi 中使用 与 vim 的视觉模式不同 是标记 您可以用以下标记标记不同的点m 小写 然后是您选择的字母 例如 x 然后
  • 带有 Viper 和 Vimpulse 的 Emacs 缺少哪些 Vim 功能?

    Emacs 的一些重要功能在 Vim 中是缺失的 例如 comint 模式 并且没有脚本 插件可以替代它们 与 Emacs 相比 Vim 也有一些优点 例如模式编辑和通常更好的默认快捷键 然而 Viper 模式让我两者兼而有之 Vimpul
  • Redhat Vim 中的可视化块插入

    我的 ec2 服务器附带了 redhat vim ec2 user vim version VIM Vi IMproved 7 2 2008 Aug 9 compiled Jul 7 2012 08 03 48 Included patch
  • 禁用 VIM 中的警告?

    有没有办法禁用 VIM 中的警告 特别是 当文件从只读变为可写时 我想禁用警告 12 我有一个脚本可以打开文件进行编辑 但 vim 认为文件已更改并发出警告 Thanks 我的 vimrc 中有以下内容 你应该只需要第二个 它将消息回显到状
  • 如何使用 Vim 和 Eclipse 提高 PHP5.3 项目的工作效率(可能使用 Eclim 与 Zend Studio 集成)

    在开发应用程序时 我总是努力提高生产力 在过去的几年里 我可以说我在提高生产力方面取得了良好的进展 但我仍然发现我需要更多的工具或方法 我需要更快地编辑并学习盲打 目前正在过程中 因此我发现需要转向 Vim 现在已经一年多了 我已经放弃了
  • Vim 脚本中的“reduce”函数

    Vim 脚本有一些非常基本的函数式编程工具 It has map and filter 但据我所知它缺乏reduce 功能 Reduce https en wikipedia org wiki Fold 28higher order fun
  • 使 'n' 始终向前搜索,无论是否 / 或 ?用于搜索

    我几乎总是在 Vim 中搜索 然后继续向前搜索n并向后N 然而 有时我会使用 跳转到我当前所在行上方几行的项目 在这种情况下 如果我想向前搜索同一项目 我必须使用N代替n 令人烦恼的心理减速带 所以我的问题是 是否有可能使n永远向前走 并且

随机推荐

  • 手机也有生产力,手把手教你用手机开发APP

    只有手机没有电脑 xff0c 能不能学编程 xff1f 能 xff01 今天的教程献给 xff0c 那些没有电脑但是对电脑或者编程有浓厚兴趣的同学 如果你有手机 xff0c 但是没电脑或者电脑不在身边 xff0c 也许这个教程能对你学习编程
  • coc-lua安装报错解决办法

    项目地址 xff1a https github com josa42 coc lua 现象 macOS中使用正常CentOS7有异常 环境CentOS7中 执行命令 CocInstall coc lua成功安装后 xff0c 重启nvim
  • Lua学习笔记

    neovim 0 5正式版本已经发布了 xff0c 现在学习Lua语言还来的及吧 lua替换vim脚本渐渐成为了趋势了 Lua学习下来 xff0c 感觉与javascript特别的像 就是代码块不是使用 分割 xff0c 而是end xff
  • neovim0.5笔记

    neovim0 5版本更新比较大 xff0c 有一些大佬开始抛弃coc xff0c 而使用native lsp了 学习一下记录一下 我参考的是 xff1a https github com craftzdog dotfiles public
  • vim-airline底部状态栏不显示图标的解决办法

    现象 正常的 以前我使用的airline都是有图标显示的 xff0c 如下图所示 不正常的 最近刚升级neovim0 5 尽可能的使用lua配置 xff0c 把环境重新配置了一下 后来就发现我的nvim下面的状态栏 xff0c 不显示图标了
  • LuaSnip代码段使用的正确姿势

    自己升级了neovim 0 5 以来各种尝试从coc切换到native lsp 在coc中代码段配置非常的简单 我之前有文章记录过 vim自动关闭标签 https blog csdn net lxyoucan article details
  • python一键删除误触复制的文件

    现在拍照有时候多选照片不小心变成了复制 xff0c 一个个删除太麻烦 xff0c 就出现了如下脚本 import os for file in os listdir 39 39 if 39 副本 39 in file os remove f
  • 在 neovim 中使用 Lua

    原文 xff1a https github com glepnir nvim lua guide zh nvim lua guide 中文版简易教程 译者 Neovim Core Developer 文章目录 在 neovim 中使用 Lu
  • github加速你可能不知道的小技巧

    在国内的网络环境下 使用github就是一个字 慢 有没有什么没有门槛 很简单的办法能够加速呢 有 方法一 使用csdn的镜像 https codechina csdn net mirrors 对一些知名的项目 也就是说Stars比较多的项
  • 安卓电视ssh应用

    有时下班回家没带电脑 xff0c 又突然想写两行代码 家里的大屏电视就是不错的选择 经过我这段时间的使用 xff0c 有几种实用方案分享给大家 手机投屏 这个方案是我用的最久 xff0c 也是最容易使用的方案 通过乐播投屏之类的方式把手机的
  • nvim-cmp插件function自动补()

    背景 之前使用的coc 最近刚转到NVIM native 方式的lsp 自动补全用的是nvim cmp插件 整体都不错 很满意 就是有一点不习惯 自动补全的function 或method不能自动在末尾加上 每次都要手动输入 有些麻烦 与是
  • oracle instant-client下载与安装sqlplus

    在下面的地址 xff0c 选择你的操作系统版本下载 https www oracle com database technologies instant client downloads html 比如我这里选的是 xff1a https
  • lua读取文本并去掉重复行

    需求 有一个文本文件 里面有大量的重复行 要求把重复的部分去掉 我本想用我的老本行java来实现的 感觉挺简单的 拿lua练一下手吧 源文本如下 column XH format a9 column XM format a9 column
  • 01_[nvim0.5+从0单排]_neovim安装与Pynvim安装

    视频与目录 项目值教程目录https blog csdn net lxyoucan article details 120641546视频全屏https www bilibili com video BV12f4y1E7Hy 视频 01 n
  • 02_[nvim0.5+从0单排]_配置、按键映射与packer插件管理器

    视频与目录 项目值教程目录https blog csdn net lxyoucan article details 120641546视频全屏https www bilibili com video BV1rf4y1E7dr 视频 02 配
  • iTerm2禁用Command+Enter 全屏

    因为我在vim中使用到了Command 43 Enter快捷键 xff0c 所以想把iTerm2自带的快捷键禁用一下 找了半天没找到 xff0c 原来需要增加按键配置 xff0c 忽略这个组合键 步骤 Preferences 61 gt K
  • 03_[nvim0.5+从0单排]_界面美化与主题

    视频与目录 项目值教程目录https blog csdn net lxyoucan article details 120641546视频全屏https www bilibili com video BV1sh411H7JE 视频 03 界
  • 自动化渗透测试&&自动化挖掘src

    文章目录 前言思路资产收集资产收集http服务自动攻击利用 前言 好久没有写blog了 xff0c 最近在上班干活 xff0c 最近抽空研究了一下自动化渗透测试 xff0c 下面分享一下 思路 资产收集 传统的资产收集都是跟域名挂钩 xff
  • 04_[nvim0.5+从0单排]_vim文件管理插件---ranger

    视频与目录 项目值教程目录https blog csdn net lxyoucan article details 120641546视频全屏https www bilibili com video BV1bq4y1P7j5 视频 04vi
  • 05_[nvim0.5+从0单排]_vim文件管理插件defx与窗口选择工具 vim-choosewin

    视频与目录 项目值教程目录https blog csdn net lxyoucan article details 120641546视频全屏https www bilibili com video BV1XR4y1n78z 视频 05vi