前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >简化 kramdown 列表嵌套内容缩进的 Vim 插件

简化 kramdown 列表嵌套内容缩进的 Vim 插件

作者头像
零式的天空
发布于 2022-03-28 05:35:01
发布于 2022-03-28 05:35:01
1.2K00
代码可运行
举报
文章被收录于专栏:零域Blog零域Blog
运行总次数:0
代码可运行

kramdown 的列表嵌套内容的缩进规则很「奇葩」,不是使用自然的 Tab 缩进。

问题

kramdown 的作者对列表嵌套内容的缩进规则的 描述 是:

kramdown does not allow 4 space indent, …… Indentation for list items is always calculated based on the first non-space character after the list item marker.

在年初 GitHub 宣布 GitHub Pages 服务将只支持 kramdown 这个 Markdown 解析引擎时,我曾经总结过从 Redcarpet 迁移到 kramdown 需要做的一些更改,将 GitHub Pages 从 Redcarpet 切换到 kramdown 里有说到,嵌套在列表项里的代码块,如果不按如上规则做缩进的话,将会解析不正常。

比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. list item one

    ```python
    print 'hello, world'

list item two

list item two

这当然不是我们想要的,我们应该如何写呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. list item one

   ```python
   print 'hello, world'

list item two

list item two

看出来区别了吗?没错,这种情况下代码块必须缩进三个空格,因为除开列表记号后的第一个非空字符的缩进是三。

那么问题来了,有时候是有序列表,序号是个位数时需要缩进三个空格,序号是两位数时需要缩进四个空格,序号是三位数时(弄这么大的列表是闹哪样?)需要缩进五个空格……有时候是无序列表,只需要缩进两个空格。

当然这是最简单的一级嵌套的情况,如果是多级列表嵌套,那情况就更复杂了,每一次都去手打空格缩进吗?作为一名 Vimer,当然 say no!

所以为此我做了一个简单的小 Vim 插件专门用于解决此问题。

下载地址

使用方法

安装完此插件后,在你需要对列表嵌套内容进行缩进时,不用掰着手指头去数要打多少个空格了,只用按 LeaderTab 就好了。

安装方法

推荐使用 Vundle 来管理你的 Vim 插件,这样你就可以简单三步完成安装:

在你的 vimrc 文件中添加如下内容:

:so $MYVIMRC

:PluginInstall

屏幕截图

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
找出三位数的偶数
通过一段时间的学习后,我们对python已经有了比较深入的了解,今天我们来一起通过python解决常见的问题吧。
算法与编程之美
2021/12/15
5220
for循环的妙用
在学习python中循环语句是最基础的一类语句,循环又分为了for循环和while循环,我们学习并掌握了for循环的含义及用法,它能够帮助我们解决Python语言中的一些问题。
算法与编程之美
2021/11/23
3470
小鱼比可爱
在python学习中,我们学习了判断for循环语句,以及如何构建列表和以及使用map在同一行输入多个数,利用这些所学,我们就能解决一些生活中常见问题
算法与编程之美
2022/04/08
2740
【C语言简单说】十九:二维数组循环嵌套(1)
(▼ _ ▼) 又到了这一节 了,这是痛苦的一节,因为我完全不懂如何像新手说明循环嵌套。。。
1_bit
2020/10/23
1.7K0
Python算法实践Week3-循环程序设计
0x00 问题引入 问题:输入30个数,输出最大的数 分析 第一个数可能是最大的数,记住它; 对于之后的每一个数,与记住的数字进行比较,如果比记住的数字大,则记住此数; 所有的数字看过之后,输出最大的数; 循环 程序中重复做某事的现象称为循环 例如求1~100的和,求一个班某科成绩的平均分 循环结构(循环条件和循环体) 20200206045625.png 0x01 while循环 问题:求1+2+3+4+……+100的值 流程图 20200206045743.png Python语言实现 = 0 =
Hsinyan
2022/06/19
6210
Python算法实践Week3-循环程序设计
Python编程实验一:流程控制结构
(1)通过本次实验,学生应掌握多分支语句 if …elif…else结构的用法; (2)掌握循环语句for、while结构的用法以及跳转语句continue、break的应用; (3)能应用print()函数和字符串的format方法控制输出内容的格式; (4)按照实验题目要求独立正确地完成实验内容(编写、调试算法程序,提交程序清单及及相关实验数据与运行结果)
Francek Chen
2025/01/22
380
Python编程实验一:流程控制结构
for while循环语句举例python_for循环高级用法
程序在一般情况下是按顺序执行的。编程语言提供了各种控制结构,允许更复杂的执行路径。
全栈程序员站长
2022/08/03
6240
for while循环语句举例python_for循环高级用法
流程控制之for循环
  1. while循环:称之为条件循环,循环次数取决于条件何时为False      for循环:循环次数取决于数据包含的元素的个数
py3study
2020/01/18
3840
求简单类型的矩阵和
通过Python的各种函数和逻辑关系可以比较方便的做到相对于自己来说计算量比较大的问题。
算法与编程之美
2022/05/23
3180
python基础语法2
结果一定是hello world。写代码是一件有条理的事情,只有安排好任务的顺序,计算机才可以准确的执行任务。
Yui_
2024/10/16
760
python基础语法2
【java探索之旅】走进循环结构 深入解析while、for和do while的用法
此时 ; 为 while 的语句体(这是一个空语句), 实际的 { } 部分和循环无关. 此时循环条件 num <= 10 恒成立, 导致代码死循环了
屿小夏
2024/04/12
1270
C语言分支循环语句
欢迎来到我的博客!今天我们将一起探讨C语言中非常重要的分支循环语句。这些语句在我们日常的编程工作中起着至关重要的作用,它们可以帮助我们更好地组织代码并实现复杂的逻辑。
小志biubiu
2025/02/27
410
有趣的数字游戏
经过一段时间对Python的学习,我们已经能够相对熟练的使用Python中的循环语句和条件语句,那么今天我们就结合循环语句和条件语句来做一个简单的猜数字游戏。
算法与编程之美
2021/12/15
4410
十进制与二进制互换
一般来说python里共有十进制,二进制,八进制和十六进制,我们一般使用的都是十进制,二进制是机械语言,它在计算机和IT系统方面有着广泛运用,计算机通常使用它来处理、读取和写入数据。因此,掌握十进制和二进制的转换,有利于我们读懂机械语言,更好的理解计算机。
算法与编程之美
2021/12/21
4890
求取素数
在数学中经常要求你寻找素数,在100以为都比较容易解决,但是当超过一百时就比较难解决了,现在我们可以通过计算机来轻松实现它。
算法与编程之美
2022/04/08
3380
python——循环(for循环、while循环)及练习
“”" for 变量 in range(10): 循环需要执行的代码 else: 循环结束时,需要执行的代码 “”"
用户7886150
2021/01/22
5.3K0
算法创作|“猴子选王游戏”问题解决方法
题目分析:本题的核心思路是一个约瑟夫环算法,在一开始利用while循环将猴子一只一只取出来用i标号,再将i判断是不是为要剔除的数字,不剔除就加入一个新的列表等待下一次循环,并且将i继续加1,一直循环到只有最后一只猴子为止.
算法与编程之美
2021/04/22
2570
C语言循环结构与循环嵌套-学习十
break语句和continue语句 用break语句提前终止循环。 break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句。 只能用于循环语句和switch语句之中,而不能单独使用 用continue语句提前结束本次循环。 有时并不希望终止整个循环的操作,只希望提前结束本次循环,而接着执行下次循环,这时可以用continue语句。 break语可和continue语句的区别: continue语句只结束本次循环,而不是终止整个循环的执行。 break语句结束整个循环过程,不再
XG.孤梦
2022/02/28
1.8K0
C语言循环结构与循环嵌套-学习十
矩形最大面积
矩形的面积等于长乘以宽,矩形的周长是四条边的和,给定周长让我们算面积的最大值,人为笔算会很麻烦,但用python求解矩形的的面积的最大值,可以使我们运算起来更便捷。
算法与编程之美
2021/12/15
6860
JAVA17之switch结构和循环语句
==注意:如果switch中得case,没有对应break的话,则会出现case穿透的现象。跟顺序无序,跟case的值有关==
用户9184480
2024/12/13
970
JAVA17之switch结构和循环语句
相关推荐
找出三位数的偶数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验