Kann vim einen gefalteten Abschnitt als Bewegung behandeln?

465
Simon Walker

Ich habe einen gefalteten Abschnitt in einem Textdokument. Kann ich die Falte als Bewegung in vim verwenden, so wie ein Wort oder WORT eine Bewegung ist w/W?

Zum Beispiel dawlöscht man um ein Wort, also

This is a |t|est 

mit dem Cursor in ||, und im normalModus, wenn ich den Befehl ausführen dawwerde

This is |a| 

Kann ich das mit einem gefalteten Abschnitt (mit foldmethod=markerLatex-Code) machen ?

\begin%{{{ a = 10 \end%}}} 

nach dem Faltbewegungsvorgang würde gelöscht. Ist das in anderen foldmethodModi möglich?

Für meine Frage weiß ich, dass ich den Abschnitt einfach falten und dann die "Linie" löschen kann, aber ich habe mich gefragt, ob die Falte selbst als Bewegung behandelt werden kann.

3
Dies wäre eine Bewegung unabhängig davon, ob die Falte gefaltet ist oder nicht Simon Walker vor 11 Jahren 0
Haben Sie "daw" an einer geschlossenen Falte versucht? romainl vor 11 Jahren 0

3 Antworten auf die Frage

4
romainl

Mir ist in Vim so etwas nicht bewusst. Aber man kann mit [zund ]zzum Anfang und Ende einer Falte springen.

Dies scheint den Trick zu tun:

xnoremap iz :<C-U>silent!normal![zV]z<CR> onoremap iz :normal viz<CR> 

Sie können es gerne iwund Freunde benutzen :

ciz diz viz yiz 
1
taketwo

Schauen Sie sich das vim-textobj-fold- Plugin an. Es stellt Textobjekte für Faltvorgänge bereit, die Sie meiner Meinung nach genau so wünschen.

1
gib

Das hier verlinken, da ich es nützlich fand:

https://www.reddit.com/r/vim/comments/10cqgd/looking_for_a_languageaware_block_selection/c6cpyrg

Kurze Antwort ist, dass Sie dies tun können:

" Create text objects using [z and ]z vnoremap if :<C-U>silent!normal![zjV]zk<CR> onoremap if :normal Vif<CR> vnoremap af :<C-U>silent!normal![zV]z<CR> onoremap af :normal Vaf<CR> 

Das gibt dir ifund af, welche Arbeit wie ipund ap.