Wie kann ich die Kontrolle über die Sprünge "Ctrl-O" und "Ctrl-I" in Vimscript übernehmen?

886
Annis Monadjem

Gibt es eine Möglichkeit, Vimscript durch die Liste der Sprünge gehen nutzen könnte Ctrl-O, Ctrl-Iund die vorherigen Sprung Puffer / Positionen zu holen?

Jeder Vorschlag wird sehr geschätzt.

2
Wie ich unten erwähnt habe, besteht das Problem darin, dass ": normal" ausgeführt wird."` tut nicht das, was ich will, weil es nur zu "puffiged" -Puffern zurückspringt und keine "nobuflisted" -Puffer enthält. Ich wäre dankbar, wenn mir jemand einen Hinweis auf eine eingebaute Funktion oder zumindest geben könnte Weg, um `Ctrl-0` oder` Ctrl-I` in Vim-Skript wiedergeben zu können, so dass es durch alle Puffer springt, egal ob gelistet oder nicht gelistet? Annis Monadjem vor 9 Jahren 0

1 Antwort auf die Frage

2
garyjohn

Sie können die Befehle Ctrl-Ound Ctrl-Iinnerhalb eines Skripts ausführen, indem Sie die Befehle :executeund verwenden :normal.

:execute "normal \<C-O>" :execute "normal \<C-I>" 

Sehen

:help :normal :help :execute :help jump-motions 
Werde es versuchen, scheint sehr hilfreich zu sein. Danke vielmals! Annis Monadjem vor 9 Jahren 0
Eigentlich funktioniert es nicht so, wie ich es mir gewünscht hätte, weil `Ctrl-O`` Ctrl-I` nur für 'buflisted' funktioniert, aber nicht für 'nobuflisted' Puffer und nicht für jeden 'nobuflisted' Puffer, den ich 'buflisted' möchte. Wie würden Sie mir dann vorschlagen, die `Ctrl-O` über nicht aufgelisteten Puffern zu finden? Oder gibt es vielleicht eine Vim-Liste oder ein Dikt, von dem ich die Liste aller Sprünge bekommen könnte? Annis Monadjem vor 9 Jahren 0
Ich weiß nicht, wie `Ctrl-O` und` Ctrl-I` von den Pufferzuständen beeinflusst werden. Ich habe nicht viel darüber nachgedacht. Sie können eine Liste von Sprüngen erhalten, indem Sie `: Sprünge 'ausführen. Wenn Sie dies für die Verwendung in einem Skript erfassen möchten, finden Sie weitere Informationen unter `: help: redir`. garyjohn vor 9 Jahren 0
garyjon: danke für deine kommentare. Ich bin mir nicht sicher, ob ich verstehe, wie ich ein: redir that dumps: springt in eine Datei? Bitte erläutern Sie, wie ich in einem Vim-Skript eine Datei "übersetzen" kann mit: redir: springt auf etwas, mit dem ich `Ctrl-O`,` Ctrl-I`, `Ctrl-]` und `wiedergeben könnte Ctrl-T`. Anregungen werden sehr geschätzt. Annis Monadjem vor 9 Jahren 0
Ich weiß nicht genau, was Sie erreichen wollen. Ich habe Sie bisher auf die Teile hingewiesen, von denen ich denke, dass Sie möglicherweise eine Lösung entwickeln müssen. Ich denke, dass die Diskussion, die Sie auf der vim_use-Liste begonnen haben, produktiver sein wird, da Ihre Frage nicht direkt beantwortet werden kann und Diskussionen zu vim_use angeregt werden, während sie hier entmutigt wird. garyjohn vor 9 Jahren 0
Hinweis "" \"` ist ein String-Literal für `ctrl-o`, nicht nur etwas, das` exec` 'magisch interpretiert. Ciro Santilli 新疆改造中心 六四事件 法轮功 vor 6 Jahren 0