--- /dev/null
+Given markdown;
+# a
+
+## Foo Level 2
+
+### Foo Level 3
+
+#### Foo Level 4
+
+Bar Level 2
+-----------
+
+### Bar Level 3
+
+Execute (InsertToc format):
+ :2
+ :call append('.', '')
+ :InsertToc
+
+Expect (format):
+ # a
+
+ * [Foo Level 2](#foo-level-2)
+ * [Foo Level 3](#foo-level-3)
+ * [Foo Level 4](#foo-level-4)
+ * [Bar Level 2](#bar-level-2)
+ * [Bar Level 3](#bar-level-3)
+
+ ## Foo Level 2
+
+ ### Foo Level 3
+
+ #### Foo Level 4
+
+ Bar Level 2
+ -----------
+
+ ### Bar Level 3
+
+Given markdown;
+# a
+
+## Foo Level 2
+
+### Foo Level 3
+
+#### Foo Level 4
+
+Bar Level 2
+-----------
+
+### Bar Level 3
+
+Execute (InsertToc only h2 headers):
+ :2
+ :call append('.', '')
+ :InsertToc 2
+
+Expect (only h2 headers):
+ # a
+
+ * [Foo Level 2](#foo-level-2)
+ * [Bar Level 2](#bar-level-2)
+
+ ## Foo Level 2
+
+ ### Foo Level 3
+
+ #### Foo Level 4
+
+ Bar Level 2
+ -----------
+
+ ### Bar Level 3
+
+Given markdown;
+# a
+
+## Foo Level 2
+
+### Foo Level 3
+
+#### Foo Level 4
+
+Bar Level 2
+-----------
+
+## Baz Level 2
+
+## Foobar Level 2
+
+## Foobaz Level 2
+
+## Barfoo Level 2
+
+## Barbaz Level 2
+
+## Bazfoo Level 2
+
+## Bazbar Level 2
+
+## Foobarbaz Level 2
+
+Execute (InsertNToc format, and up to h3 headers):
+ :2
+ :call append('.', '')
+ :InsertNToc 3
+
+Expect (format, and up to h3 headers):
+ # a
+
+ 1. [Foo Level 2](#foo-level-2)
+ * [Foo Level 3](#foo-level-3)
+ 2. [Bar Level 2](#bar-level-2)
+ 3. [Baz Level 2](#baz-level-2)
+ 4. [Foobar Level 2](#foobar-level-2)
+ 5. [Foobaz Level 2](#foobaz-level-2)
+ 6. [Barfoo Level 2](#barfoo-level-2)
+ 7. [Barbaz Level 2](#barbaz-level-2)
+ 8. [Bazfoo Level 2](#bazfoo-level-2)
+ 9. [Bazbar Level 2](#bazbar-level-2)
+ 10. [Foobarbaz Level 2](#foobarbaz-level-2)
+
+ ## Foo Level 2
+
+ ### Foo Level 3
+
+ #### Foo Level 4
+
+ Bar Level 2
+ -----------
+
+ ## Baz Level 2
+
+ ## Foobar Level 2
+
+ ## Foobaz Level 2
+
+ ## Barfoo Level 2
+
+ ## Barbaz Level 2
+
+ ## Bazfoo Level 2
+
+ ## Bazbar Level 2
+
+ ## Foobarbaz Level 2