LINUX.ORG.RU

Vim и простые вычисления с сохранением контекста

 , , , ,


1

2

Во первых строках сего письма обозначу - про bc знаю, ищется что-то требующее меньше запоминать, читай с лучшим синтаксисом и умеющее в контекст и многосточность.

Итак, есть NaSC, calcpad и подобные решения которые позволяют вычислить текст в духе:

a = 42
b = 11 + a
c = a in to cm

Душа желает либо готовый плагин для vim, либо cli тул который так умеет с произвольным буфером.

Ожидаемый выход - обновление буфера при записи или по выполнении команды через разделитель(например 3 tab) до такого состояния:

a = 42                42
b = 11 + a            53
c = a in to cm        106,68cm

В идеале - ещё и visual mode для любых буферов.

★★★★★

Есть мнение, что тебе придется самому писать такой плагин, состоящий из [принципиально] простой-как-пень задачи взаимодействовать с твоим nasc или calcpad'ом. Когда начнешь, позови, вместе поржем над твоими вимскриптовыми потугами и диким подсознательным желанием уже давно перейти на емакс, где имеются рельсы для всего, что твоя больная фантазия способна нагенерировать (и где тоже наверное придется писать такой плагин самому, хе-хе, но можешь поискать в melpa.org или на всягих гитхабах).

anonymous
()
Ответ на: комментарий от anonymous

К сожалению конкретно эти два поделия херовасто спроектированны и не умеют в произвольный транспорт.

pon4ik ★★★★★
() автор топика

попробуй начать с этого:

"
function! MathLineCalc()
   let s:line    = getline('.')
   let s:value   = string(eval(s:line))
   execute "call setline ('.', s:line . ' = ' . s:value)"
endfunction
map <C-F9> :call MathLineCalc()<CR>
" 2 + 2 / 2
" 2+len("Hello!")/log10(1000)
anonymous
()
Ответ на: комментарий от anonymous

Это мы всё видали и практикуем иногда на колене. Но юзабилити гавно, сложные вычисления тоже так себе, контекст мимо. Это удобно выделение посчитать или её чего в таком духе, а не расчёт с кучей переменных строить (даже простой расчёт может иметь много переменных да).

Надо начинать с поиска cli альтернативы вышеупомянутых инструментов или её написания/выковыривания из уже готовых инструментов.

Но самом писать сильно не хочется - ведь придётся ещё и поддерживать. Приделать такое к виму - полчаса с перерывами на просмотр порно.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

грустьпечаль чо, ну тред по поиску альтернатив ты уже создавал. могу еще предложить посмотреть в сторону julia, там с repl'ом и со скоростью должно быть все в порядке, просто хз какие требования у тебя к языку и почему нельзя сделать все хоть на питоне или на gnu octave.

anonymous
()
Ответ на: комментарий от anonymous

Достаточно - не значит комфортно. В общем и целом я могу и на питончике поиграться разумеется, но для этого надо будет скриптец писать либо смотреть в слишком временный и не очень удобный интерактивный шелл. Иногда полезно посмотреть в динамике как меняются разные переменный в зависимости от одной и друг от друга.

pon4ik ★★★★★
() автор топика

Может arecarn/crunch.vim подойдет? Сам я им давно не пользовался и уже забыл все его возможности.

andreyu ★★★★★
()

кстати, vim уже умеет интерпретировать питон и еще несколько языков. Я думаю это именно то что тебе нужно

cvv ★★★★★
()
Ответ на: комментарий от andreyu

Как минимум - имеет смысл посмотреть, спасибо.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Звучит круто, надо тыкать. А сама математика эта - бабок стоит?

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Да блин, всё не то - интерактивную сессию я могу и правда в пайтоне сделать.

В общем и целом мысль с python уже не кажется такой дикой, ибо готового явно нет.

pon4ik ★★★★★
() автор топика
6 ноября 2019 г.

Да, это некропост.

Увидел codi.vim, вспомнил про эту тему. У меня он чего-то не работает, но мне и не нужно, я попробовал просто.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Спасибо, некрофилы оценили.

pon4ik ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.