# Working with str-list options

**URL:** <https://discuss.kakoune.com/t/working-with-str-list-options/2713>\
**Category:** Help\
**Created:** [June 25, 2025, 7:11pm UTC](https://discuss.kakoune.com/t/working-with-str-list-options/2713 "2025-06-25T19:11:54Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![jordan-yee](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/jordan-yee/32/592_2.png) [@jordan-yee](https://discuss.kakoune.com/u/jordan-yee)\
**Post date:** [June 25, 2025, 7:21pm UTC](https://discuss.kakoune.com/t/working-with-str-list-options/2713/2 "2025-06-25T19:21:07Z")

</div>

This post seems like a good reference for implementing pushing/popping to a str-list, but also seems to confirm my suspicion that you’d have to manually manage the format of each item added to the list.

> [@Tag stack](https://discuss.kakoune.com/t/tag-stack/1254):
>
> One feature from Vim that I was missing in Kakoune is the tag stack. Here is a very basic implementation: declare-option str-list tagstack "" declare-option str tagstack\_cmd "ctags-search" define-command -override -params 1 tagstack-push %{ set-option global tagstack "%val{buffile}" "%val{cursor\_line}" \ "%val{cursor\_column}" "%arg{1}" %opt{tagstack} try %{ %opt{tagstack\_cmd} "%arg{1}" } catch %{ tagstack-pop fail "tag not found %arg{1}" } } define-command -override ta…

---

_[View the full topic](https://discuss.kakoune.com/t/working-with-str-list-options/2713)._
