Il semble sripting python de VIMS est conçu pour modifier tampon et les fichiers plutôt que de travailler bien avec les registres de VIMS. Vous pouvez utiliser certaines des commandes de vim packages pour accéder aux registres mais ce n'est pas joli.Pouvez-vous accéder aux registres de fonctions de python dans vim
Ma solution pour créer quelque chose comme une fonction vim en utilisant python qui utilise un registre cela.
function printUnnamedRegister()
python <<EOF
print vim.eval('@@')
EOF
endfunction
registres de réglage peut également être possible d'utiliser quelque chose comme
function setUnnamedRegsiter()
python <<EOF
s = "Some \"crazy\" string\nwith interesting characters"
vim.command('let @@="%s"' % myescapefn(s))
EOF
endfunction
Cependant, cela se sent un peu lourd et je ne sais pas exactement ce que myescapefn devrait être. Donc, je n'ai jamais réussi à faire fonctionner correctement la version du paramètre.
Donc, s'il y a un moyen de faire quelque chose comme
function printUnnamedRegister()
python <<EOF
print vim.getRegister('@')
EOF
endfunction
function setUnnamedRegsiter()
python <<EOF
s = "Some \"crazy\" string\nwith interesting characters"
vim.setRegister('@',s)
EOF
endfunction
Ou même une belle version de myescapefn je pourrais utiliser alors ce serait très pratique.
MISE À JOUR:
Sur la base de la solution par zyx J'utilise ce morceau de python
def setRegister(reg, value):
vim.command("let @%s='%s'" % (reg, value.replace("'","''")))
'python >> Résultats de EOF' en erreur de syntaxe. Peut-être que vous utilisez 'python << EOF'? – ZyX
Et vous avez oublié 'endfunction'. – ZyX
Thx ZyX. Fixé maintenant –