'da python işlevlerinden gelen kayıtlara erişebiliyorsunuz Vims python sripting, vims kayıtlarıyla güzel çalışmak yerine arabelleği ve dosyaları düzenlemek için tasarlanmış görünüyor. Kayıtlara erişebilmek için bazı vim paketleri komutlarını kullanabilirsiniz, ancak hoş değil.vim
Kayıt defteri kullanan python kullanarak bir vim işlevi oluşturmak için kullandığım çözüm buna benzer.
function printUnnamedRegister()
python <<EOF
print vim.eval('@@')
EOF
endfunction
Ayar kayıtlar da Ancak bu biraz hantal hissediyor
function setUnnamedRegsiter()
python <<EOF
s = "Some \"crazy\" string\nwith interesting characters"
vim.command('let @@="%s"' % myescapefn(s))
EOF
endfunction
gibi bir şey kullanarak mümkün olabilir ve ben myescapefn olmalı tam olarak ne olduğundan emin değilim. Bu yüzden, ayar sürümünü düzgün bir şekilde çalıştırabildim.
Yani eğer dahafunction printUnnamedRegister()
python <<EOF
print vim.getRegister('@')
EOF
endfunction
function setUnnamedRegsiter()
python <<EOF
s = "Some \"crazy\" string\nwith interesting characters"
vim.setRegister('@',s)
EOF
endfunction
Veya çok kullanışlı olacağını Sonra kullanabilirsiniz myescapefn bile güzel bir versiyonu gibi bir şey yapmak için bir yolu var.
GÜNCELLEME: Python parçasını kullanıyorum ZYX tarafından çözümüne dayanan
def setRegister(reg, value):
vim.command("let @%s='%s'" % (reg, value.replace("'","''")))
'piton >> EOF' sonuçları. Belki "python << EOF" kullanıyorsunuz? – ZyX
Ve “endfunction” unuzu unuttun. – ZyX
Thx ZyX. Şimdi sabit. –