欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vim配置之snippets代码块

程序员文章站 2024-03-23 20:13:40
...

(一)目的

我们在编写程序的过程中,经常会敲一些重复的代码,我们可以利用snippets来达到输入简写来敲出完整的代码

(二)安装步骤

安装使用Vundle,没有vbundle的先执行下面的命令

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

vbundle安装完成后,在 .vimrc中输入下面的命令

Plugin 'SirVer/ultisnips'
Plugin 'honza/vim-snippets'

.vimrc在~/.vim/vimrc 或者家目录下,没有的话自己在家目录下创建一个

vim中 :BundleInstall 命令即可完成安装。
相关的资料可以查看官网https://github.com/honza/vim-snippets

" 如果需要更多配置可以在vimrc中输入下面的,不配置使用默认的设置
let g:UltiSnipsExpandTrigger = "<tab>"
let g:UltiSnipsListSnippets = "<c-tab>"
let g:UltiSnipsJumpForwardTrigger = "<tab>"
let g:UltiSnipsJumpBackwardTrigger = "<s-tab>"

" If you want :UltiSnipsEdit to split your window.
let g:UltiSnipsEditSplit="vertical"
let g:UltiSnipsSnippetDirectories=[$HOME.'/.vim/bundle/vim-snippets/UltiSnips']

设置代码替换的默认路径:

在vimrc中输入
let g:UltiSnipsSnippetDirectories=[$HOME.'/.vim/bundle/vim-snippets/UltiSnips']

然后就可以到自己的目录下查看都是有什么缩写的代码片段了,在下面的目录中存放了很
多已经写好的关于相关语言的配置,可以直接使用的

ls ~/.vim/bundle/vim-snippets/snippets/*.snippets

也可以在 ~/.vim/ 下创建一个文件夹为 UltiSnips 用来存放我们自定义的补全,创建一个文件名为 xxxx.snippets 的文件,这个 xxxx即会在某个具体的语言生效。比如,需要创建一个用来补全 C 语言的文件,那文件名就是 c.snippets,创建一个用来补全 Cpp 的文件,那文件名就是 cpp.snippets。
vim 打开后缀为cpp 的文件就是加载 cpp.snippets 文件中的代码片段。在这个我文件中也可以增加我们的代码片段。但是这样做的话,不方便我们自定义代码片段的保存和同步。换机器或是卸载插件的时候,自定义的的插件就会丢失。

更好的方法是单独新建一个目录,专门保存自定义的代码片段。具体的操作方法是:
1.创建一个文件夹

.vim/mysnippets/

2.在 .vimrc 文件中指定代码片段搜索文件夹。

let g:UltiSnipsSnippetDirectories=["UltiSnips","mysnippets"]

3.在 mysnippets 文件夹中创建自己的代码片段文件。
完成了以上三步,只需要将 mysnippets 文件夹备份好,就可以很好的备份和管理自定义的代码片段了。

(三)自定义代码段

其实装完成后,已经有一些基本的代码段了,为了更好的使用我们介绍一下自定义代码段的配置
首先介绍 snippet 的语法规则,那它的规则是什么样的呢?

snippet trigger_word [ "description" [ options ] ]

snippet 缩写 [ “描述” [选项] ]
code
endsnippet

查看帮助文档可以用下面的命令

:help UltiSnips-snippet-options

(四)snippets 使用

通过前面的配置我们来测试下:

 snippet main                
int main(int argc, const char *argv[])
{                                     
    ${0}                              
    return 0;                         
}   

对于上面的代码片段来说,在使用时只需要在 输入 main 之后按下 tab 键就可以补全
其中管标会自动定位到 ${0} 的位置,进行后续的代码输入,非常方便
vim配置之snippets代码块
对于如下有多个变量的代码片段来说,可以在输入完第一个区域后使用 tab 键跳转到
下一个位置的区域接着输入, 这个 tab 键是可以设置的,在第一步的时候是要进行相应的设置的