Skip to content

Instantly share code, notes, and snippets.

@martin-braun
Last active October 26, 2022 23:44
Embed
What would you like to do?
8vim keymap to text list
#!/usr/bin/env python3
from fileinput import input as fileinput
from xml.etree import ElementTree
root = ElementTree.fromstring("".join(list(fileinput())))
for keyboardAction in root.findall('.//keyboardAction'):
keyboardActionType = keyboardAction.find('keyboardActionType')
movementSequence = keyboardAction.find('movementSequence')
inputString = keyboardAction.find('inputString')
inputCapsLockString = keyboardAction.find('inputCapsLockString')
if keyboardActionType != None and movementSequence != None and inputString != None and inputCapsLockString != None and keyboardActionType.text == 'INPUT_TEXT':
movementSequenceList = str(movementSequence.text).split(';')
if inputString.text != None and inputCapsLockString.text != None:
inputStringText = inputString.text
inputCapsLockStringText = inputCapsLockString.text
movementSequenceList.pop()
movementSequenceStringText = ""
for movement in movementSequenceList:
if movement == "INSIDE_CIRCLE": movementSequenceStringText += " C"
elif movement == "TOP": movementSequenceStringText += " T"
elif movement == "RIGHT": movementSequenceStringText += " R"
elif movement == "BOTTOM": movementSequenceStringText += " B"
elif movement == "LEFT": movementSequenceStringText += " L"
print(f'{inputStringText} ({inputCapsLockStringText}) ={movementSequenceStringText}')
@martin-braun
Copy link
Author

Context: flide/8VIM#280

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment