By "folding", I mean condense some part of the codes, and by one click , you can unfold them.
While LyX has not yet "traditional" functionality for general editor folding, it can relatively easy be simulated by using LyX branches. As branches are insets, they can be folded within LyX. (By activating/deactivating them, you could even fold them in the output, but that is another story.)
To fold some content, just select it and then choose Insert->Branch from the menu. If you do this the first time, you have to create the respective branch (e.g., "Folded"); afterwards, you can just put more content into the "Folded" branch. For quick access, it is possible and recommended to bind this function to a keyboard shortcut.
Note that a new branch is deactivated by default, which means that its content will not appear in the output. You can change this by right-clicking on the inset.
Very handy! Could you specify which function to bind to a keyboard shortcut? Is it possible to create a function that inserts a specific branch? I'd love to be able to mark text, press shortcut and then have it in the designated branch (as it is possible with other insets, like footnote, comment, etc.)– RasmusJun 22, 2016 at 14:00
2@Rasmus: At times it is a bit tricky to figure out what LyX commands one actually has to bind to a shortcut to achieve the desired behavior. However, you can investigate it! See tex.stackexchange.com/questions/22938/… for a general approach.– DanielJun 22, 2016 at 22:30
The suggestion worked admirably. The function is 'branch-insert Name-of-Branch' .– RasmusJun 23, 2016 at 8:46
1This thread is very old. I wonder if there has been any updates on this? Native support for folding would be very nice.– a06eSep 3, 2018 at 13:47
@becko: Good point, but unfortunately the release notes of LyX 2.3.x do not show anything new related to folding: wiki.lyx.org/LyX/NewInLyX23– DanielSep 3, 2018 at 18:28
OK, since this have remained unanswered for a while, I will retype my comment here. LyX does have some folding, you can for example fold notes, ERT, tables and other inserts. However, general folding is not implemented at the moment. It is on the wishlist.
As an alternative to (ab)using branches, one can easily define a custom inset by adding the following to Document > Settings > Local Layout:
InsetLayout Flex:Foldable # Define a new "flex" inset called "Foldable" LyxType custom # Add to Insert > Custom Insets LatexType none # Export contents to latex as-is, ignoring the wrapper. Decoration minimalistic # Do not show a label, only the outer box, when not folded. ContentAsLabel true # When folded show truncated contents as label. End
The inset can be inserted from the menu entry Insert > Custom Insets > Foldable of by typing
M-x flex-insert Foldable.
For multi-file documents, the Local Layout has to be manually replicated across all files.