首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

kramdown 列表嵌套内容缩进规则很「奇葩」,不是使用自然 Tab 缩进。...问题 kramdown 作者对列表嵌套内容缩进规则 描述 是: kramdown does not allow 4 space indent, …… Indentation for list...那么问题来了,有时候是有序列表,序号是个位数时需要缩进三个空格,序号是两位数时需要缩进四个空格,序号是三位数时(弄这么大列表是闹哪样?)需要缩进五个空格……有时候是无序列表,只需要缩进两个空格。...当然这是最简单一级嵌套情况,如果是多级列表嵌套,那情况就更复杂了,每一次都去手打空格缩进吗?作为一名 Vimer,当然 say no!...所以为此我做了一个简单Vim 插件专门用于解决此问题

1.4K10

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

kramdown 列表嵌套内容缩进规则很「奇葩」,不是使用自然 Tab 缩进。...问题 kramdown 作者对列表嵌套内容缩进规则 描述 是: kramdown does not allow 4 space indent, …… Indentation for list items...那么问题来了,有时候是有序列表,序号是个位数时需要缩进三个空格,序号是两位数时需要缩进四个空格,序号是三位数时(弄这么大列表是闹哪样?)需要缩进五个空格……有时候是无序列表,只需要缩进两个空格。...所以为此我做了一个简单Vim 插件专门用于解决此问题。...下载地址 vim-kramdown-tab 使用方法 安装完此插件后,在你需要对列表嵌套内容进行缩进时,不用掰着手指头去数要打多少个空格了,只用按 LeaderTab 就好了。

1.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

python_字典列表嵌套排序问题

上一篇我们聊到python 字典和列表嵌套用法,这次我们聊聊字典和列表嵌套排序问题,这个在python基础中不会提到,但实际经常运用,面试中也喜欢问,我们娓娓道来。...[2, 3, 5, 7, 8, 9] 指定关键字排序: ## 列表嵌套列表 >>> user = [['Jone', '181', 30], ['Chan', '175', 26], ['Paul'...列表嵌套字典,根据字典值排序 ## 使用lambda方式 >>> D = [{"name": '张三', 'score': 68}, {'name': '李四', 'score': 97}] >>...,键不同情况下对值进行排序 可以将列表字典先放入到一个大字典中,对整个字典进行排序,在排序完成后,再转换为列表包含字典形式即可。.../ray_up/article/details/42084863 列表嵌套字典,根据字典值排序: https://blog.csdn.net/Thomas0713/article/details

3.6K20

C++】构造函数初始化列表 ② ( 构造函数 为 初始化列表 传递参数 | 类嵌套情况下 构造函数 析构函数 执行顺序 )

一、构造函数 为 初始化列表 传递参数 1、构造函数参数传递 构造函数 初始化列表 还可以使用 构造函数 中参数 ; 借助 构造函数 中参数列表 , 可以为 初始化列表 传递参数 ; 在下面的代码中...类 B 定义了 无参构造函数 , 但是在该 无参构造函数 中 , 定义了函数列表 B() : m_age(10), m_a(10, 150) , 在该函数列表中 , 执行了 A 构造函数 ; 类 B...中还定义了 有参构造函数 , 接收 3 个参数 , 分别作为 m_age 成员值 , 和 A 类型成员对象 有参构造函数 2 个参数 , 这是 使用了 构造函数 向 初始化列表 参数传递 机制...B b(10, 10, 150); // 控制台暂停 , 按任意键继续向后执行 system("pause"); return 0; } 执行结果 : 二、类嵌套情况下 构造函数..., 先执行 被组合对象 A 构造函数 , 如果 被组合对象 有多个 , 则 按照 成员变量 定义顺序 进行初始化 ; 注意 : 此处 不是按照 初始化列表 顺序 进行初始化 ; 析构函数执行顺序

18230

C++】构造函数初始化列表 ③ ( 构造函数 初始化列表 中 为 const 成员变量初始化 )

构造函数初始化列表 总结 : 初始化列表 可以 为 类 成员变量 提供初始值 ; 初始化列表 可以 调用 类 成员变量 类型 构造函数 进行成员变量初始化操作 ; 初始化列表 可以 使用 构造函数...中传入 参数 ; 类初始化时 , 根据定义顺序 , 先调用 成员变量 构造函数 , 然后调用外部类构造函数 , 析构函数正好相反 ; 实例对象 const 成员变量 必须只能在 初始化列表 中进行...初始化 , 所有的构造函数都要进行初始化操作 ; 一、构造函数 初始化列表 中 为 const 成员变量初始化 1、初始化 const 常量成员 如果 类 中定义了 被 const 修饰 成员变量..., 那么该成员变量 必须被初始化 , 否则会报错 ; 对象中 const 成员 必须在 声明后 立刻进行初始化 ; const 成员初始化 只能通过 构造函数 初始化列表 进行初始化 ; 注意...进行赋值 , 因此 这里 必须在 构造函数 初始化列表中 对 const 成员变量 进行赋值 ; 2、错误代码示例 - 没有初始化常量成员 在下面的 类 B 中 , 定义了常量 const int

16630

Python中字典和列表相互嵌套问题

在学习过程中遇到了很多小麻烦,所以将字典列表循环嵌套问题,进行了个浅浅总结分类。...外层嵌套访问列表每个字典,内层嵌套访问每个字典元素键值对。...:Jonh age:18 name:Marry age:19 2.字典中存储列表 ①访问字典中列表元素 先用list[索引]访问列表元素,用dict[key]方法访问字典中值。...(key)访问字典值,也可以用列表索引list_name[索引]访问列表值。...但是要注意哪个在外,哪个在内,先访问外层,再访问内层,直接访问内层会出错。 ②字典值为列表,访问结果是输出整个列表 需要嵌套循环遍历里面的键值对。 ③字典中不能全部由字典元素组成

5.9K30

C++】构造函数初始化列表 ① ( 类对象作为成员变量时构造函数问题 | 构造函数初始化列表语法规则 )

一、类对象作为成员变量时构造函数问题 1、问题描述 如果 一个类 A 对象 作为 另外一个类 B 成员变量时 , 在以下场景会报错 : 为类 A 定义 有参 构造函数 , 那么 A 无参默认构造函数就失效了...就是 C++ 构造函数 初始化列表 ; 2、错误代码示例 代码示例 : #include "iostream" using namespace std; class A { public: /...========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ========== 二、构造函数初始化列表 ---- 1、构造函数初始化列表语法规则 在 C++ 语言中 , 构造函数初始化列表...是一种用于初始化成员变量方法 ; 构造函数初始化列表 可实现功能 : 为成员变量提供初始值 调用其他 成员变量 构造函数 来初始化成员变量 构造函数初始化列表语法规则 : 构造函数() : 成员变量名称...初始化列表元素由 成员变量名称 和 初始值组成 , 使用等号 = 连接 ; 在下面的代码中 , 为 B 类定义了默认构造函数 , 其中定义了 构造函数 初始化列表 ; 在 初始化列表中 , m_age

43130

C++构造函数体内赋值与初始化列表区别

Linux环境下,使用g++编译以下使用初始化列表代码时出现编译错误error: expected '{' before 'this'。...,不能使用this指针,因为对象完成初始化之前,类对象还未成形,以上问题解决办法就是去掉this。...答案是可以,因为构造函数对成员数据初始化在是在初始化列表中完成,构造函数体内对数据成员所做工作仅仅是赋值操作,在此之前,类成员数据已经完成了初始化工作,是由其默认构造函数完成。...所以,这也是编程原则中尽量使用初始化列表原因。...将上面错误代码类数据成员初始化改为在构造函数体内赋值,则没有问题,代码修改如下: class someClass { int num; string studentNmae; public:

1.4K21

C++中变量自动初始化问题

C++中有一些变量在如果没有赋初值会被编译器自动赋值为0,但有的变量又不会这样,而得到一个随机数,下面具体讨论一下: 首先看一下C++几个存储区: 1、栈区:由编译器自动分配释放 ,存放函数参数值...3、全局区(静态区)(static):全局变量和静态变量存储是放在一块初始化全局变量和静态变量在一块区域, 未初始化全局变量和未初始化静态变量在相邻另一块区域。...在上述几个存储区域中,如果定义在全局区变量没有被用户初始化的话,编译器会自动将其初始化为0。 这里要非常注意定义两个字而不是声明。...结论:一些全局变量(不管用没用static修饰)或者是使用static中修饰局部变量在定义时候都会被编译器自动初始化为0,而在声明时候任何变量都不会被编译器自动初始化。...如static int num;如果放在函数中任何位置都会被隐式初始化为0,但是如果是在类声明中这样写就不会有值。

1.4K70

C++构造函数体内赋值与初始化列表区别

1.C++构造函数初始化列表处提示出现 error: expected ‘{’ before ‘this’ 问题描述下: Linux环境运行,使用g++编译,贴上如下代码出错处已标注于代码中。...在得知网友点拨后,才知道其原因是类对象完成初始化之前,类对象还未成形,不能使用this指针。以上问题解决方案就是去掉this。...---- 2.初始化列表中不能使用this,那构造函数体内是否可以使用this呢?...答案是,当然可以,因为构造函数对成员数据初始化在是在初始化列表中完成,构造函数体内对数据成员所做工作仅仅是赋值操作,在此之前,类成员数据已经完成了初始化工作,是由其默认构造函数完成。...所以,这也是编程原则中尽量使用初始化列表原因。

84220

C++那些事之类成员初始化列表注意事项

C++那些事之类成员初始化列表注意事项 在C++中,类正确初始化是确保程序正常运行关键步骤之一。尤其是在使用初始化列表时,我们需要注意一些潜在陷阱,以避免在代码执行过程中产生意外结果。...初始化列表通常被认为是设置新类实例状态首选方法,因为它提供了一种简洁、高效方式来初始化类成员。然而,有时候在初始化列表中引用其他成员变量可能导致一些令人困惑问题。...length_; int capacity_; int size_; }; int main() { Foo foo(50); foo.print(); } 在这个例子中,我们试图通过初始化列表中引用其他成员变量方式来初始化...然而,由于类成员初始化顺序是按照它们在类中声明顺序进行,可能导致length_与capacity_并没有按照我们期望方式初始化。 如何解决?...为了避免这种问题,应该遵循以下几点: 1.避免在初始化列表中引用其他成员变量 2.顺序一致性:成员变量初始化顺序是按照它们在类中声明顺序 修正示例: #include class

10010

一步步将vim改造成CC++开发环境(IDE)

=4 " (自动) 缩进使用4个空格 set cindent " 使用 C/C++ 语言自动缩进方式 set cinoptions={0,1s,t0,n-...注意,如果没有此选项,将不能对类成员补全 # vim自动补全功能测试 # 为了测试自动补全功能,我们先下载C++一份C++标准库源代码。...在.cpp文件中还可以,在.h文件中这样就不是好做法了。暂时不知道这个问题是由于我自己配置错误还是程序没有实现。...一个打开折叠由一栏来表示,顶端是 '-',其下方是 '|'。这栏在折叠结束地方结束。当折叠嵌套时,嵌套折叠出现在被包含折叠右方一个字符位置。 一个关闭折叠由 '+' 表示。...`"是1左边键) >  增加缩进,"x>"表示增加以下x行缩进 <  减少缩进,"x<"表示减少以下x行缩进

8.8K20

关于Python那点吐槽

这个时候我就深深体会到弱类型语言在后续维护恶心,如果是一个强类型,在定义了类型就不会出现什么类型变了情况。 强制缩进 这也是一个我觉得恶心地方,作者原意是好,希望能写出更规范代码。...但是当时在维护时候我习惯用vim,之前代码不知道用什么写,我习惯用4个空格,之前同事可能习惯用tab键,于是灾难就发生了,从vim里面看,完全看不出那些是空格那些是tab,后来我直接使用替换将所有...强制缩进还有一点就是函数代码一旦很长,嵌套稍微深一点,从维护上看完全看不出来哪块是哪个语句块东西,而且它不支持{},一般根据{}可以很方便判断。...还有一个问题就是嵌套层数深了对于我们这些空格党来说敲字符也就变多了,有的地方不明确还得数着敲,一层嵌套是4个,两层8个,三层12个,用不了多久你就崩溃了 独立特性加载方式 相比于C/C++include...,Python采用import来加载所需要使用库,对于C/C++来说加载库就仅仅是将库中代码加载到进程地址空间中,什么时候执行什么操作完全由用户自己控制,但是Python在你加载库时候会默默帮你执行初始化函数

89730

【细品C++】类和对象一些细节(初始化列表、友元、static成员等)

int n;//定义,但并未初始化,此时是随机值 n = 0;//赋值,不是初始化 int x = 0;//定义并初始化为0 而对于由const修饰类型以及引用类型,定义时初始化是其唯一赋值机会,所以需要初始化列表来解决像这样问题...(也许设计C++大佬一开始在设计构造函数时并没有考虑到这)。...而你想自己写一个构造函数处理这个问题时,发现如果你想解决这个问题,你就必须手动调用这个自定义类型成员构造函数,而你想调用这个构造函数就必须要在这个自定义类型成员定义初始化时调用。...而你是无法在构造函数函数体内解决这个问题。...,希望能帮助到你C++学习。

32620

googl中java、c++编程风格

类内连续成员之间:字段,构造函数,方法,嵌套类,静态初始化块,实例初始化块。 例外:两个连续字段之间空行是可选,用于字段空行主要用来对字段进行逻辑分组。   2....C++是一门包吨大量高级特性巨型诧言,某些情冴下,我们会 限制甚至禁止使用某些特性使代码简化,避免可能导致各种问题,挃南中列丼了返类特性,幵解释说为 什么返些特性是被限制使用。 ...因此,禁止使用 class 类型全尿发量(包括 STL string, vector 等等),因为它们初始化顺序有可能 导致极造出现问题。...定义:在极造函数中执行初始化操作。 优点:排版方便,无需担心类是否初始化。 缺点:在极造函数中执行操作引起问题有:   1) 极造函数中丌易报告错诨,丌能使用异常。  ...缺点:C++中对象隐式拷贝是导致徆多性能问题和 bugs 根源。拷贝极造函数降低了代码可诺性,相 比挄引用传递,跟踪挄值传递对象更加困难,对象修改地方发得难以捉摸。  5.

1K20

C++最佳实践 | 2. 代码风格

Include保护符 头文件必须包含名称清晰include保护符,从而避免同一头文件被多次include问题,并防止与其他项目的头文件发生冲突。...#include #include "MyHeader.hpp" 初始化成员变量 ...使用成员初始化列表。...对于POD类型,初始化列表性能与手动初始化相同,但对于其他类型,有明显性能提升,见下文。...因此,这是一个务实选择。具体来说,Visual Studio只自动识别.cpp和.cxx为C++文件,而Vim不一定会把.cc识别为C++文件。...不要混用tab和空格 某些编辑器喜欢在默认情况下使用tab和空格混合缩进,这使得没有使用完全相同tab缩进设置的人很难阅读代码。请配置好编辑器,确保不会发生这种情况。

1.1K10

VIM编辑命令技巧

用 “>” 来解决这个问题:         :%s//4/g 如果你在编码,你可能只想替换注释中 “four”,而保留代码中。...= 备注:   gg   ——  到达文件最开始   =  ——  要求缩进   G     ——  直到文件尾 注释代码:(这个原理上就是使用VIM正则替换)   以C++和Python为例。   ...,那么在/etc目录下profile文件中添加以下语句: export TERM=xterm-color        3 、设置 Windows 风格 C/C++ 自动缩进(添加以下 set...: set autoindent               4)设置 使用 C/C++ 语言自动缩进方式:                           set cindent              ...5)设置C/C++语言具体缩进方式(以我windows风格为例):                             set cinoptions={0,1s,t0,n-2,p2s,(03s,

92120
领券