百科问答小站 logo
百科问答小站 font logo



如何评价 vim 8.2? 第1页

  

user avatar   skywind3000 网友的相关建议: 
      

Vim 8.2 的诸多功能其实对普通用户来讲还不能直接使用,正式发布后,我抽了几个周末利用 popup 特性,给 vim 写了一套 ui 扩展。

众所周知,vim/emacs 这类文本编辑器向来以陡峭的学习曲线而闻名,其中最影响入门者的地方其实就是太多快捷键要记忆,我曾经把我弄好的功能很强的配置共享给我的同事使用,但是他们纷纷表示记不住那么多快捷键。

我开始思考这个问题,就算是我自己,自己配置了 200+ 多项快捷键,一些不常用的也很容易忘记,经常要打开 vimrc 查看下哪个功能的快捷键是什么?spacemacs / doom-emacs 的解决方案是在编辑器下方显示一个窗口,提示快捷键:

每按一个键,就会给出下一步提示,该功能也被很多初学者所喜爱。初学者至少可以利用这个功能方便的探索一下 spacemacs/doom-emacs 里面到底有些什么功能,而不用打开配置读一半天。

而 8.2 发布后,我写了一个更好的UI系统 vim-quickui 来做这件事情(点击查看动图):

看起来不就是把 GVim 的菜单系统给移植到了终端?没那么简单:

  • GVim 的菜单仅限于 GUI 版本,终端没法使用,而 quickui 的菜单可在终端下使用。
  • 复古的 Borland / Turbo C++ 文本界面风格,对新用户友好同时保证操作效率。
  • GVim 的菜单只能用鼠标操作,没法用键盘操作,这里不但能全键盘操作,也支持鼠标。
  • 使用 H/J/K/L 等 Vim 常用键位进行移动,空格/回车进行选择,CTRL+[ 或者 ESC 放弃。
  • 移动时,最下面的命令行会显示一份迷你文档,用来对各个选项进行进一步细节说明。
  • 纯粹 VimScript,无其他依赖,不需要引入 Python。

再也不怕忘记功能键了,也不用担心装了一堆插件,不用的话自己都忘记了装过了啥,这套菜单系统可以很好的展现你的配置到底包含了什么功能。

我把它绑定到 <space><space> 上面,连续按两次空格键就出现了,有人说熟练的话,使用菜单没有快捷键高效,其实根本不会,比如打开 NERDTree,我的操作就是:空格+空格+p+n,熟练的话,瞬间就敲完了, 根本不用看上面的菜单显示啥,根本不影响你的效率,而再你记不住时,它的帮助就非常大了。

欢迎尝试:github.com/skywind3000/

安装非常简单:

       Plug 'skywind3000/vim-quickui'     

使用就是调用 quickui#menu#install 注册目录项目,quickui#menu#open 打开目录:

        " 清楚所有目录项目 call quickui#menu#reset()  " 安装一个 File 目录,使用 [名称,命令] 的格式表示各个选项。 call quickui#menu#install('&File', [              [ "&New File	Ctrl+n", 'echo 0' ],              [ "&Open File	(F3)", 'echo 1' ],              [ "&Close", 'echo 2' ],              [ "--", '' ],              [ "&Save	Ctrl+s", 'echo 3'],              [ "Save &As", 'echo 4' ],              [ "Save All", 'echo 5' ],              [ "--", '' ],              [ "E&xit	Alt+x", 'echo 6' ],              ])  " 每个项目还可以多包含一个字段,表示它的帮助文档,光标过去时会被显示到最下方的命令行 call quickui#menu#install('&Edit', [              [ '&Copy', 'echo 1', 'help 1' ],              [ '&Paste', 'echo 2', 'help 2' ],              [ '&Find', 'echo 3', 'help 3' ],              ])  " 在 %{...} 内的脚本会被求值并展开成字符串 call quickui#menu#install("&Option", [     ['Set &Spell %{&spell? "Off":"On"}', 'set spell!'],     ['Set &Cursor Line %{&cursorline? "Off":"On"}', 'set cursorline!'],     ['Set &Paste %{&paste? "Off":"On"}', 'set paste!'],     ])  " install 命令最后可以加一个 “权重”系数,用于决定目录位置,权重越大越靠右,越小越靠左 call quickui#menu#install('H&elp', [     ["&Cheatsheet", 'help index', ''],     ['T&ips', 'help tips', ''],     ['--',''],     ["&Tutorial", 'help tutor', ''],     ['&Quick Reference', 'help quickref', ''],     ['&Summary', 'help summary', ''],     ], 10000)  " 打开下面选项,允许在 vim 的下面命令行部分显示帮助信息 let g:quickui_show_tip = 1  " 定义按两次空格就打开上面的目录 noremap <space><space> :call quickui#menu#open()<cr>     

把上面这段放到 vimrc 中,然后每次需要显示菜单时连续两次空格就出现了:

嗯,差不多就是这个样子。

比起 spacemacs / doom-emacs 热键提示窗口的优势有几方面:

  1. 更符合直觉的交互方式,符合传统编辑器用户使用习惯,同样支持全程热键操作。
  2. 支持鼠标,对新人更友好,上次选中的项目会被记忆下来,下次直接回车即可。
  3. 支持 HJKL 移动更方便探索有些什么功能
  4. 下方可以显示帮助,有时候光有个名字很难知道该命令是干嘛的,下面帮助可以详细说明

希望这个插件能够丰富 Vim 的交互方式,帮大家提高 工作效率,促进配置交流,让新用户可以更容易的接受老用户的配置文件,并且轻易的探索和学习有些什么功能可以使用。

当然,对老用户而言,再也不用记忆那么多快捷键了,忘记了某些键也不用一遍遍打开 vimrc 去复习功课了。

btw 最新版支持多种边框效果和主题:

总有一款适合你。

总之,Vim 8.2 中引入的一些列基础设施,能够极大的方便 Vim 未来的交互拓展,过不了多久我们应该能从各个插件的迭代版中体验到越来越多的便利。


--




  

相关话题

  为什么看似简陋的vim在熟练的人手中如此的神乎其技? 
  为什么看似简陋的vim在熟练的人手中如此的神乎其技? 
  老大只让用vi写代码该怎么破? 
  真的会有人用 vim 开发大的项目吗? 
  如何评价 vim 8.2? 
  为什么很多程序员爱用 Vim? 
  为什么 Vim 这样早期的编辑器一直流行? 
  如何在 Linux 下利用 Vim 搭建 C/C++ 开发环境? 
  在Windows下用VIM来写代码,会不会很蛋痛? 
  如何使用vim操作文本,只保留每段第一句话,将保留的文本内容保存到另外一个新的文件? 

前一个讨论
如何评价微软正在开发的人工智能编程软件 DeepCoder?
下一个讨论
「成功学」让如此多的人趋之若鹜,它到底在多大程度上能够帮助人成功?





© 2024-06-26 - tinynew.org. All Rights Reserved.
© 2024-06-26 - tinynew.org. 保留所有权利