Ich versuche, eine Zeichenfolge aus einem Register in VIM einzufügen, die Nicht-ASCII-Zeichen wie enthält Ctrlr. Wie kann ich diese Zeichenfolge in eine Datei einfügen, aber die Nicht-ASCII-Zeichen automatisch maskieren?
Im Wesentlichen versuche ich, ein Makro aufzuzeichnen, das einige (nicht-ASCII-)Zeichen enthält, wie CtrlWes beispielsweise von vim als ^W angezeigt wird. Ich möchte das Makro (indem ich die Register untersuche und die Makrozeichenfolge (z. B. @a=^W) nehme) als Tastenzuordnung in eine .vimrc-Datei kopiere, sodass dieses Makro ausgeführt wird, wenn ich die Taste drücke.
Ich möchte dies automatisch (oder so schnell wie möglich) tun, ohne ^W in CtrlWder .vimrc-Datei oder wo auch immer ich es einfüge, ändern zu müssen.
Antwort1
Erstens,Steuersequenzen liegen im ASCII-Bereich( ^W
ist Codepunkt 23), aber sie sind sog.nicht druckbarZeichen. Sie können diese unverändert in Ihre ~/.vimrc
Datei einfügen (solange Sie Vim-Register verwenden und nicht die Terminalauswahl und das Einfügen);kein Entkommen nötig. ( Je nach Dateiformat Ihres können möglicherweise nur mit ^J
und Probleme auftreten .)^M
~/.vimrc
Dennoch gibt es hier eine einfache Ersetzung, mit der Sie diese Steuersequenzen umgehen können:
:echo substitute("example: \<C-A>\<C-Z>", '[\x00-\x1f]', '\="<C-" . nr2char(char2nr(submatch(0)) + 64) . ">"', 'g')