VIM 代码片段插件 ultisnips 使用教程

本文详细介绍了 Vim 的代码片段插件 Ultisnips 的安装、配置、依赖和使用方法,包括如何定义代码片段、使用占位符、参数、内容解释器以及自定义上下文。示例展示了 Ultisnips 如何简化代码编写,如通过 Python 代码实现注释功能。
摘要由CSDN通过智能技术生成

博客原文

安装

Ultisnips 插件安装分两部分,一个是 ultisnips 插件本身,另外一个是代码片段仓库。一般来说把默认的代码片段仓库下载下来按需修改后上传到自己的 github 即可。如果你和我一样也使用 vim-plug 来管理插件的话,添加下面的代码到你的 vimrc 中保存刷新即可

Plug 'SirVer/ultisnips'
" 你自己的代码仓库 git 地址
Plug 'keelii/vim-snippets'

上面的示例中所有的代码片段都存放在插件安装目录下面的 vim-snippets/UltiSnips 中,文件命名格式为 ft.snippets, ft 就是 vim 中的 filetype,其中有个 all.snippets 是唯一一个所有文件都适用的代码片段

配置

快捷键设置,我一般使用 tab 来触发代码片段补全,且不使用 YCM (官方文档表示使用YCM的话就不能使用tab补全)

let g:UltiSnipsExpandTrigger="<tab>"
" 使用 tab 切换下一个触发点,shit+tab 上一个触发点
let g:UltiSnipsJumpForwardTrigger="<tab>"
let g:UltiSnipsJumpBackwardTrigger="<S-tab>"
" 使用 UltiSnipsEdit 命令时垂直分割屏幕
let g:UltiSnipsEditSplit="vertical"

依赖

ultisnips 插件需要你的 vim 支持 python,可以在 vim 命令模式下使用下面的检测你的 vim 版本是否支持 python,返回 1 表示支持

:echo has("python")
:echo has("python3")

定义一个代码片段

定义格式

snippet 触发字符 ["代码片段说明" [参数]]
代码片段内容
endsnippet

最小化的一个代码片段

snippet if "if (condition) { ... }"
if (${
   1:true}) {
    $0
}
endsnippet

这时当你在 vim 中输入 if 敲 tab 就会展开一条 if 语句,第一个触发点是 if 条件表达式,最后一个是 if 语句体

${1:true} 表示这是第一个触发点,占位符为 true,如果占位符没有默认值可直接使用 $1, $2, $3

可视选择区的内容为占位符

snippet if "if (...)"
if (
在使用vim编辑器时,我们可以通过自定义代码片段来提高编码效率。有几种方法可以实现这个功能。 方法一:使用vim的snippets插件 1. 首先,安装vim插件管理器,例如Vundle或Pathogen。 2. 然后,在.vimrc文件中添加插件的配置。 3. 接下来,安装并配置snippets插件,例如UltiSnips或neosnippet。 4. 创建一个新的代码片段文件,比如"my_snippets.snippets"。 5. 在代码片段文件中定义自定义的代码片段,例如: ``` snippet hello echo "Hello, World!" endsnippet ``` 6. 保存文件并重新加载vim配置。 7. 现在,当你在vim中输入"hello"并按下Tab键,它将自动展开为定义的代码片段。 方法二:使用vim的abbreviations功能 1. 在.vimrc文件中添加以下配置: ``` iabbrev mysnippet snippet hello<CR> echo "Hello, World!"<CR>endsnippet ``` 2. 保存文件并重新加载vim配置。 3. 现在,当你在插入模式下输入"mysnippet"并按下空格或Tab键,它将自动展开为定义的代码片段。 方法三:使用vim的宏录制功能 1. 在vim中,按下"q"键后,输入宏名称(例如"m")。 2. 然后,开始录制宏的操作,例如输入代码片段。 3. 按下"q"键停止录制宏。 4. 现在,当你在插入模式下输入宏名称(例如"m")并按下@键,它将自动执行录制的操作,展开为定义的代码片段。 这些方法可以帮助您快速定义和使用您自己的vim代码片段,提高编码效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vim编辑器下识别中文、自动及手动添加代码片段、查看函数功能](https://blog.csdn.net/qq_40077565/article/details/119154679)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [从零开始配置vim(27)——代码片段](https://blog.csdn.net/lanuage/article/details/127381267)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值