Day 14:vim-plug

前面讲过了 zsh、tmux 的 plugin manager,vim 一样有 plguin manager。跟前面几个 plguin manager 很像,要安装新的外挂只需要在某个地方加一行设定就好,这样作的好处是哪天要再建立新的环境时只需要把设定档带走,而且集中式的管理可以一目了然。

安装 vim-plug

记得昨天的 vimrc 最上面有一个备注解起来的区块吗?这就是载入 vim-plug 的地方,里面就有安装 vim-plug 的指令了。要注意你用的是 neovim 还是 vim,这两个路径不一样

# neovim
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
        https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
# vim
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

挑选你的 vim 版本,执行完就安装好了!

安装第一个 plugin

我们透过一个范例来说明如何安装外挂,我们要来装的第一个外挂是 preservim/nerdcommenter,这个外挂可以快速注解一行/一整段程序码,这是我觉得比自动补全、语法突显都还要好用的功能。现在我们来安装吧!

1. 编辑 vimrc

打开你的 vimrc,把以下内容加在最下面

call plug#begin('~/.vim/plugged')

call plug#end()

以後所有 plugin 的安装设定就要放在这两行里面

加上 preservim/nerdcommenter

现在在两个 call 中间插入以下这行

Plug 'preservim/nerdcommenter'

然後存档,这样就算设定好了

安装套件

现在在 vim 里面下以下命令

:so %
:PlugInstall

第一个是让 vim 载入新增的外挂列表,或是你重开 vim 也可以。其中 sosource 的缩写
这个命令会让 vim-plug 检查有没有新增的外挂,然後安装。等左边的视窗都跑完了就可以按 q 关掉,这时候重开 vim 就安装好外挂了!

使用 preservim/nerdcommenter

这里简单教一下怎麽使用这个方便的外挂
用 \cspace 可以注解/取消注解游标所在这这行。
如果用 v 选取的话,只要有选到的行(不论是否完整框起),\cspace 就可以一次注解/取消注解多行
再按的时候要注意,如果手滑没按到反斜线会让 vim 以为你要执行 c 指令,cspace 会把一个字删掉并进入编辑模式,这时候你可以选择手动把字加回去或是用 u undo 指令来回复,回复好了之後再重新按一次 \cspace 就可以了。

preservim/nerdcommentergithub 页面 有更多的快捷键说明,这边就介绍我最常用也是唯一有在用的,其他如果你觉得不错再自己记就好了,vim 的快捷键/命令贵在精不在多,多了反而容易忘

关於外挂的设定

preservim/nerdcommenter 的 README.md 中提到,要加一条设定 filetype plugin on 才能确保在不同程序语言中正常运作,那这行要加在哪里比较好呢?以 vim 的观点来看,vimrc 中任何地方都可以,但是外挂一多你就会发现乱放的话会不好管理。我推荐一个地方——安装外挂的下面一行开始,这样不同的外挂的设定就会都分开,万一哪一天要修改或是移除都很清楚。

切分 vimrc

外挂装多了 vimrc 就会变得很长,一堆不重要不常用的外挂设定会全部塞在同一个档案里面。我们可以根据功用的不同分开放在不同的档案,如此一来就会比较好找相关的设定在哪里
我们先把

call plug#begin('~/.vim/plugged')

Plug 'preservim/nerdcommenter'
filetype plugin on

call plug#end()

这段剪下,放到另一个档案里面,然後在 vimrc 最下面加上一行 so ~/.config/nvim/plugin.vim 或是 so ~/.vim/plugin.vim(根据你的 vim 不同路径不同,前面 nvim 後面 vim)
,以下是 vim 的按键操作,角括号中的是特殊按键
先用 S-v 把要剪下的段落选起来

doso ~/.config/nvim/plguin.vim<esc>:w<enter>
// 这里 vimrc 的操作就结束了,`d` 是剪下,`o` 是「在新增一行并进入编辑模式」,之後到 <esc> 之前的就是新增的内容,最後再储存

:e ~/.config/nvim/plugin.vim<enter>p:w<enter>
在这里用 `:e` 开启档案,`p` 贴上刚刚剪下的内容,`:w` 存档

之後你要外挂相关的设定就不是在 vimrc 了,而是在 plugin.nvim 里面,记得如果要备份的话要把这个档案也备份到喔

结尾

今天的内容穿插了一些 vim 的指令,如果很难理解的话建议你要一个字母一个字母拆开看,为什麽呢?例如 ddo 这个指令,你以为可能是要「做(do)」什麽事,其实这是 ddo 一起写,意思是「剪下一行」再「新增一行并进入编辑模式」。


<<:  [Day 13] -『 GO语言学习笔记』- 核心型别(I)

>>:  使用者输入验证

一 Ryu 大师: QoS

Purpose: Set the Queue to switch Queue 0 : Max ra...

Day 06: 测试驱动开发 (Test Driven Development)

「然而,没有测试套件,他们就丧失确保『程序修改後是否仍能照预期般工作』的能力,他们没办法保证『对系...

[Day23] JavaScript 函式库 - React

终於要到了铁人赛的尾声了,笔者一直想在最後几篇来了解一下React,所以趁现在JavaScript应...

老肝哥-菜鸟Java的LeetCode历程,第九题:Palindrome Number,朝远大目标前进!

您最亲爱的老肝哥又又上线了! 至於为什麽是又又呢?因为老肝哥刚刚文章打文很开心呢,结果 忘记送出文章...

30天打造品牌特色电商网站 Day.23 关於position定位

在排版方面还有一个很重要的属性,其实前面的范例多少能见到它的身影,今天我们就来深入的认识它吧!<...