Я хотел бы добавить карту ключей к VI.Идея состоит в том, чтобы набрать текст и передать его в код Python.Впоследствии этот код Python может быть использован для предварительной обработки некоторых манипуляций с дерганным текстом, содержащимся в буфере @"
. Для этого я добавил следующую строку в .vimrc
:map <F2> :echo system("python /tmp/t.py ".shellescape(@")) <Enter>
При нажатии F2 скрипт python запускает код с @"
в качестве ввода.Проблема заключается в том, что в восстановленном буфере есть конечная строка \
, а в столбце - янк <C-r>V
.Буфер выглядит так для ввода столбца
1.233\
1.111\
1.222
Я хотел бы выполнить следующее
1) Не включать \
в буфер янки возможно
2) сделать скрипт pyhon глобально видимым изнутри VI.Прямо сейчас он должен находиться в той же папке, что и файл VI, или необходим абсолютный путь
Последний можно правильно сделать, поместив скрипт в пакеты сайта python и импортировав его, но ядумаю, у более знающих людей могут быть лучшие идеи.Я помню, как сделал это, поместив скрипт python в специальную папку Vi.
код питона:
import sys
def to_float(v):
if len(v)>0 and v != "":
try:
return float(v)
except ValueError:
#print('yanked wrong text 1 "%s" '%v)
try:
return float(v[:-1])
except ValueError:
#print('yanked wrong text 2 "%s" '%v)
return 0.
else :
return 0.
def func(v):
s=0.
for i in v[1].split():
#print('from py >> %s <<'%i)
s=s+to_float(i)
print(">>>Summ: %17.8E"%s)
func(sys.argv)